# AR智能巡检平台 - Web管理端 ## 项目简介 AR智能巡检平台 Web管理端是基于 Vue3 + TypeScript + Element Plus 开发的现代化前端应用,为电力设施巡检管理提供可视化的操作界面。 ## 技术栈 - **框架**: Vue 3.5.13 - **开发语言**: TypeScript 5.8.3 - **构建工具**: Vite 6.3.2 - **UI 框架**: Element Plus 2.9.8 - **状态管理**: Pinia 3.0.2 - **路由管理**: Vue Router 4.5.0 - **HTTP 客户端**: Axios 1.8.4 - **表格组件**: vxe-table 4.13.7 - **图表库**: ECharts 5.6.0 - **CSS 预处理**: Sass 1.87.0 - **样式引擎**: UnoCSS 66.5.2 - **国际化**: Vue I18n 11.1.3 ## 核心功能模块 ### 1. 巡检管理 - 巡检任务列表与详情 - 任务创建与分配 - 巡检进度实时监控 - 巡检路线管理 ### 2. 设备管理 - 设备台账管理 - AR 点位配置 - 设备信息查询 - 设备状态监控 ### 3. 缺陷管理 - 缺陷记录查看 - 缺陷处理流程 - 缺陷统计分析 - 缺陷图片浏览 ### 4. 数据统计 - 巡检完成率图表 - 缺陷趋势分析 - 设备健康度统计 - 可视化报表展示 ### 5. 系统管理 - 用户管理 - 角色权限配置 - 部门组织管理 - 菜单配置 - 字典管理 - 操作日志 ## 快速开始 ### 环境要求 - Node.js >= 18.18.0 - npm >= 8.9.0 推荐使用以下浏览器: - Chrome >= 87 - Edge >= 88 - Safari >= 14 - Firefox >= 78 ### 安装依赖 ```bash # 使用国内镜像源安装依赖(推荐) npm install --registry=https://registry.npmmirror.com # 或使用默认源 npm install ``` ### 开发环境运行 ```bash # 启动开发服务器 npm run dev # 默认访问地址: http://localhost:80 # 后端接口代理: http://localhost:8080 ``` ### 构建部署 ```bash # 构建生产环境 npm run build:prod # 构建开发环境 npm run build:dev # 预览生产构建 npm run preview ``` ## 项目结构 ``` plus-ui/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API 接口定义 │ │ ├── login.ts # 登录接口 │ │ ├── menu.ts # 菜单接口 │ │ ├── system/ # 系统管理接口 │ │ ├── monitor/ # 监控模块接口 │ │ ├── tool/ # 工具模块接口 │ │ └── workflow/ # 工作流接口 │ ├── assets/ # 资源文件 │ │ ├── icons/ # 图标 │ │ ├── images/ # 图片 │ │ └── styles/ # 样式 │ ├── components/ # 全局组件 │ │ ├── IconSelect/ # 图标选择器 │ │ └── ... # 其他组件 │ ├── directive/ # 自定义指令 │ │ ├── permission/ # 权限指令 │ │ └── common/ # 通用指令 │ ├── hooks/ # 组合式函数 │ ├── lang/ # 国际化语言包 │ │ ├── zh_CN.ts # 简体中文 │ │ └── en_US.ts # 英文 │ ├── layout/ # 布局组件 │ ├── plugins/ # 插件封装 │ │ ├── auth.ts # 权限插件 │ │ ├── cache.ts # 缓存插件 │ │ ├── modal.ts # 弹窗插件 │ │ └── tab.ts # 标签页插件 │ ├── router/ # 路由配置 │ │ └── index.ts # 路由主文件 │ ├── store/ # Pinia 状态管理 │ │ ├── modules/ │ │ │ ├── app.ts # 应用配置 │ │ │ ├── user.ts # 用户信息 │ │ │ ├── permission.ts # 权限菜单 │ │ │ ├── settings.ts # 系统设置 │ │ │ └── tagsView.ts # 标签视图 │ │ └── index.ts │ ├── types/ # TypeScript 类型定义 │ │ ├── axios.d.ts # Axios 类型 │ │ ├── global.d.ts # 全局类型 │ │ └── router.d.ts # 路由类型 │ ├── utils/ # 工具函数 │ │ ├── request.ts # Axios 封装 │ │ ├── auth.ts # 认证工具 │ │ └── ... # 其他工具 │ ├── views/ # 页面视图 │ │ ├── index.vue # 首页 │ │ ├── login.vue # 登录页 │ │ ├── system/ # 系统管理 │ │ ├── monitor/ # 监控管理 │ │ └── ... # 其他页面 │ ├── App.vue # 根组件 │ ├── main.ts # 入口文件 │ ├── permission.ts # 路由权限控制 │ └── settings.ts # 全局配置 ├── vite/ # Vite 插件配置 │ └── plugins/ ├── .env.development # 开发环境变量 ├── .env.production # 生产环境变量 ├── eslint.config.ts # ESLint 配置 ├── tsconfig.json # TypeScript 配置 ├── vite.config.ts # Vite 配置 └── package.json # 项目依赖 ``` ## 环境配置 ### 开发环境 (.env.development) ```bash # 应用标题 VITE_APP_TITLE = AR智能巡检平台 # 开发环境标识 VITE_APP_ENV = 'development' # 后端接口地址(通过 Vite 代理) VITE_APP_BASE_API = '/dev-api' # 应用访问路径 VITE_APP_CONTEXT_PATH = '/' # 应用端口 VITE_APP_PORT = 80 # 接口加密功能开关 VITE_APP_ENCRYPT = true # 客户端 ID VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' # WebSocket 开关 VITE_APP_WEBSOCKET = false # SSE 推送开关 VITE_APP_SSE = true ``` ### 生产环境 (.env.production) 修改生产环境配置,确保后端接口地址正确: ```bash VITE_APP_BASE_API = 'https://your-api-domain.com' ``` ## 开发指南 ### API 接口开发 1. 在 `src/api/` 目录下创建对应的接口文件 2. 定义 TypeScript 类型接口 3. 使用 Axios 封装好的 request 方法 示例: ```typescript // src/api/inspection/task.ts import request from '@/utils/request'; import { InspectionTaskVO, InspectionTaskForm } from './types'; // 获取巡检任务列表 export function listInspectionTask(query: any) { return request({ url: '/inspection/task/list', method: 'get', params: query }); } // 创建巡检任务 export function addInspectionTask(data: InspectionTaskForm) { return request({ url: '/inspection/task', method: 'post', data: data }); } ``` ### 页面开发 1. 在 `src/views/` 目录下创建页面组件 2. 使用 Composition API 编写逻辑 3. 使用 Element Plus 组件构建 UI 示例: ```vue ``` ### 状态管理 使用 Pinia 进行状态管理: ```typescript // src/store/modules/inspection.ts import { defineStore } from 'pinia'; export const useInspectionStore = defineStore('inspection', { state: () => ({ currentTask: null, taskList: [] }), actions: { setCurrentTask(task: any) { this.currentTask = task; } } }); ``` ### 权限控制 使用权限指令控制按钮显示: ```vue 新增任务 ``` ## 代码规范 ### ESLint & Prettier ```bash # 代码检查 npm run lint:eslint # 自动修复 npm run lint:eslint:fix # 代码格式化 npm run prettier ``` ### TypeScript 规范 - 所有组件使用 `