AIOT智慧哨兵系统
├── build # 构建工具 │ │ ├── cdn.ts # 打包时采用 cdn 模式 │ │ ├── compress.ts # 打包时启用 gzip 压缩或 brotli 压缩 │ │ ├── info.ts # 输出打包信息(大小、用时) │ │ ├── optimize.ts # vite 依赖预构建配置项 │ │ ├── plugins.ts # vite 相关插件存放处 │ │ ├── utils.ts # 构建工具常用方法抽离 ├── locales # 国际化文件存放处 │ │ ├── en.yaml # 英文配置 │ │ ├── zh-CN.yaml # 中文配置 ├── mock # mock 模拟后台数据 │ │ ├── asyncRoutes.ts # 模拟后台返回动态路由 │ │ ├── ... ├── node_modules # 模块依赖 ├── public # 静态资源 │ │ ├── audio # 音频文件 │ │ ├── html # 静态 iframe 页面 │ │ ├── wasm # wasm 文件以及胶水代码 │ │ ├── favicon.ico # favicon │ │ ├── logo.svg # logo │ │ ├── platform-config.json # 全局配置文件(打包后修改也可生效) ├── src │ ├── api # 接口请求统一管理 │ ├── assets # 字体、图片等静态资源 │ ├── components # 自定义通用组件 │ │ ├── ReAuth # 按钮级别权限组件(根据路由meta中的auths字段进行判断) │ │ ├── ReCol # 封装 element-plus 的 el-col 组件 │ │ ├── ReDialog # 基于 element-plus 中 el-dialog 组件开发的函数式弹框 │ │ ├── ReIcon # 图标组件 │ │ ├── RePureTableBar # 配合 `@pureadmin/table` 实现快速便捷的表格操作 https://github.com/pure-admin/pure-admin-table */ │ │ ├── ReSeamlessScroll # 无缝滚动组件 │ │ ├── ReSegmented # 分段控制器组件 │ │ ├── ReText # 支持 Tooltip 提示的文本省略组件 │ ├── config # 获取平台动态全局配置 │ ├── directives # 自定义指令 │ │ ├── auth # 按钮级别权限指令(根据路由meta中的auths字段进行判断) │ │ ├── copy # 文本复制指令(默认双击复制) │ │ ├── longpress # 长按指令 │ │ ├── optimize # 防抖、节流指令 │ │ ├── perms # 按钮级别权限指令(根据登录接口返回的permissions字段进行判断) │ │ ├── ripple # 水波纹效果指令 │ ├── layout # 主要页面布局 │ ├── plugins # 处理一些库或插件,导出更方便的 api │ ├── router # 路由配置 │ ├── store # pinia 状态管理 │ ├── style # 全局样式 │ │ ├── dark.scss # 暗黑模式样式适配文件 │ │ ├── element-plus.scss # 全局覆盖 element-plus 样式文件 │ │ ├── reset.scss # 全局重置样式文件 │ │ ├── sidebar.scss # layout 布局样式文件 │ │ ├── tailwind.css # tailwindcss 自定义样式配置文件 │ │ ├── ... │ ├── utils # 全局工具方法 │ │ ├── http # 封装 axios 文件 │ │ ├── localforage # 二次封装 localforage (https://localforage.docschina.org/) 支持设置过期时间,提供完整的类型提示 │ │ ├── progress # 封装 nprogress │ │ └── auth.ts # 处理用户信息和 token 相关 │ │ └── chinaArea.ts # 汉字转区域码 │ │ └── globalPolyfills.ts # 解决项目可能因为安装某个依赖出现 `global is not defined` 报错 │ │ └── message.ts # 消息提示函数 │ │ ├── mitt.ts # 触发公共事件,类似 EventBus │ │ ├── preventDefault.ts # 阻止键盘F12、浏览器默认右键菜单、页面元素选中、图片默认可拖动的方法 │ │ ├── print.ts # 打印函数 │ │ ├── propTypes.ts # 二次封装 vue 的 propTypes │ │ ├── responsive.ts # 全局响应式 storage 配置 │ │ ├── sso.ts # 前端单点登录逻辑处理 │ │ ├── tree.ts # 树结构相关处理函数 │ ├── views # 存放编写业务代码页面 │ ├── App.vue # 入口页面 │ ├── main.ts # 入口文件 ├── types # 全局 TS 类型配置 │ │ ├── directives.d.ts # 全局自定义指令类型声明 │ │ ├── global-components.d.ts # 自定义全局组件获得 Volar 提示(自定义的全局组件需要在这里声明下才能获得 Volar 类型提示哦) │ │ ├── global.d.ts # 全局类型声明,无需引入直接在 `.vue` 、`.ts` 、`.tsx` 文件使用即可获得类型提示 │ │ ├── index.d.ts # 此文件跟同级目录的 global.d.ts 文件一样也是全局类型声明,只不过这里存放一些零散的全局类型,无需引入直接在 .vue 、.ts 、.tsx 文件使用即可获得类型提示 │ │ ├── router.d.ts # 全局路由类型声明 │ │ ├── shims-tsx.d.ts # 该文件是为了给 .tsx 文件提供类型支持,在编写时能正确识别语法 │ │ └── shims-vue.d.ts # .vue、.scss 文件不是常规的文件类型,typescript 无法识别,所以我们需要通过下图的代码告诉 typescript 这些文件的类型,防止类型报错 ├── .browserslistrc # 配置目标浏览器的环境 ├── .dockerignore # 排除不需要上传到 docker 服务端的文件或目录 ├── .editorconfig # 编辑器读取文件格式及样式定义配置 https://editorconfig.org/ ├── .env # 全局环境变量配置(当 .env 文件与 .env.development、.env.production、.env.staging 这三个文件之一存在相同的配置 key 时,.env 优先级更低) ├── .env.development # 开发环境变量配置 ├── .env.production # 生产环境变量配置 ├── .env.staging # 预发布环境变量配置 ├── .gitattributes # 自定义指定文件属性 ├── .gitignore # git 提交忽略文件 ├── .gitpod.yml # gitpod 部署配置 ├── .lintstagedrc # lint-staged 配置 ├── .markdownlint.json # markdown 格式检查配置 ├── .npmrc # npm 配置文件 ├── .nvmrc # 用于指定在使用 Node Version Manager(NVM)时要使用的特定 Node.js 版本 ├── .prettierignore # prettier 语法检查忽略文件 ├── .prettierrc.js # prettier 插件配置 ├── .stylelintignore # stylelint 语法检查忽略文件 ├── CHANGELOG.en_US.md # 版本更新日志(英文版) ├── CHANGELOG.md # 版本更新日志(英文版) ├── CHANGELOG.zh_CN.md # 版本更新日志(中文版) ├── Dockerfile # 用来构建 docker 镜像 ├── LICENSE # 证书 ├── README.en-US.md # README(英文版) ├── README.md # README ├── commitlint.config.js # git 提交前检查配置 ├── eslint.config.js # eslint 语法检查配置 ├── index.html # html 主入口 ├── package.json # 依赖包管理以及命令配置 ├── pnpm-lock.yaml # 依赖包版本锁定文件 ├── postcss.config.js # postcss 插件配置 ├── stylelint.config.js # stylelint 配置 ├── tailwind.config.ts # tailwindcss 配置 ├── tsconfig.json # typescript 配置 └── vite.config.ts # vite 配置
{ "Version": "1.0.0", // 平台版本号 "Title": "AIOT智慧哨兵系统", // 平台标题 "FixedHeader": true, // 是否固定页头和标签页(true 内容区超出出现纵向滚动条 false 页头、标签页、内容区可纵向滚动) "HiddenSideBar": false, // 隐藏菜单和页头,只显示标签页和内容区 "MultiTagsCache": false, // 是否开启持久化标签 (会缓存) "KeepAlive": true, // 是否开启组件缓存(此处不同于路由的 keepAlive,如果此处为 true 表示设置路由的 keepAlive 起效,反之设置 false 屏蔽平台整体的 keepAlive,即使路由设置了keepAlive 也不再起作用) "Locale": "zh", // 默认国际化语言 (zh 中文、en 英文)(会缓存)(max版本额外配置:tw 繁體中文、ja 日语、ko 韩语) "Layout": "vertical", // 导航菜单模式 (vertical 左侧菜单模式、horizontal 顶部菜单模式、mix 混合菜单模式)(会缓存)(max版本额外配置:double 左侧双栏菜单模式) "Theme": "light", // 主题模式(会缓存) "DarkMode": false, // 是否开启暗黑模式 (会缓存) "OverallStyle": "light", // 整体风格(浅色:light、深色:dark、自动:system)(会缓存)更多详情看 https://github.com/pure-admin/vue-pure-admin/commit/dd783136229da9e291b518df93227111f4216ad0#commitcomment-137027417 "Grey": false, // 灰色模式(会缓存) "Weak": false, // 色弱模式(会缓存) "HideTabs": false, // 是否隐藏标签页(会缓存) "HideFooter": false, // 是否隐藏页脚(会缓存) "SidebarStatus": true, // vertical左侧菜单模式模式下侧边栏状态(true 展开、false 收起)(会缓存) "EpThemeColor": "#409EFF", // 主题色(会缓存) "ShowLogo": true, // 是否显示logo(会缓存) "ShowModel": "smart", // 标签页风格(smart 灵动模式、card 卡片模式)(会缓存) "MenuArrowIconNoTransition": false, // 菜单展开、收起图标是否开启动画,如遇菜单展开、收起卡顿设置成 true 即可(默认 false,开启动画) "CachingAsyncRoutes": false, // 是否开启动态路由缓存本地的全局配置,默认 false "TooltipEffect": "light", // 可配置平台主体所有 el-tooltip 的 effect 属性,默认 light,不会影响业务代码 "ResponsiveStorageNameSpace": "responsive-", // 本地响应式存储的命名空间 "MenuSearchHistory": 6 // 菜单搜索历史的最大条目 }
pnpm install
pnpm dev
# 项目打包
pnpm build