# AR巡检模块前端对接和路由配置

## 完成内容

### 1. 前端API接口对接 ✅

所有8个模块的前端API已完整定义并对接后端:
- `plus-ui/src/api/inspection/device/` - 设备管理API
- `plus-ui/src/api/inspection/region/` - 区域管理API
- `plus-ui/src/api/inspection/point/` - 点位管理API
- `plus-ui/src/api/inspection/task/` - 任务模板API
- `plus-ui/src/api/inspection/step/` - 巡检步骤API (含树形接口)
- `plus-ui/src/api/inspection/stepMedia/` - 步骤媒体API
- `plus-ui/src/api/inspection/execution/` - 执行记录API
- `plus-ui/src/api/inspection/stepRecord/` - 步骤记录API

每个模块包含:
- `index.ts` - API函数定义
- `types.ts` - TypeScript类型定义(VO/Form/Query)

### 2. 前端路由配置 ✅

在 `plus-ui/src/router/index.ts` 中已配置完整路由:
- 一级路由: `/inspection` - AR巡检模块
- 8个子路由对应8个管理页面
- 所有路由支持懒加载和权限控制

### 3. 菜单和权限SQL ✅

生成文件:
- `script/sql/ar-inspection-menu.sql` - 菜单和权限初始化SQL
- `script/sql/ar-inspection-menu-rollback.sql` - 回滚SQL

SQL包含:
- 1个一级菜单 (menu_id: 2000)
- 8个二级菜单 (menu_id: 2001-2008)
- 40个按钮权限 (menu_id: 2101-2175)
- 合计49条权限配置

## 使用说明

### 步骤1: 执行数据库SQL

```bash
# 进入MySQL数据库
mysql -u root -p

# 选择数据库
use ry-vue;

# 执行菜单初始化SQL
source /path/to/script/sql/ar-inspection-menu.sql;

# 验证
SELECT * FROM sys_menu WHERE menu_id >= 2000 AND menu_id < 2200;
```

### 步骤2: 给角色分配权限

1. 登录系统管理后台
2. 进入 **系统管理 > 角色管理**
3. 选择需要授权的角色,点击"修改"
4. 在菜单权限中勾选"AR巡检"及其子菜单
5. 保存设置

### 步骤3: 启动前端项目

```bash
cd plus-ui
npm run dev
```

访问 `http://localhost:80` 即可看到"AR巡检"菜单。

### 步骤4: 测试功能

1. 点击"AR巡检"菜单,展开子菜单
2. 依次测试8个子模块的CRUD功能:
   - 设备管理
   - 区域管理
   - 点位管理
   - 任务模板
   - 巡检步骤
   - 步骤媒体
   - 执行记录
   - 步骤记录

## 权限标识说明

所有权限标识遵循格式: `inspection:模块:操作`

### 菜单权限
- `inspection:device:list` - 设备管理菜单
- `inspection:region:list` - 区域管理菜单
- `inspection:point:list` - 点位管理菜单
- `inspection:task:list` - 任务模板菜单
- `inspection:step:list` - 巡检步骤菜单
- `inspection:stepMedia:list` - 步骤媒体菜单
- `inspection:execution:list` - 执行记录菜单
- `inspection:stepRecord:list` - 步骤记录菜单

### 按钮权限 (每个模块5个)
- `inspection:模块:query` - 查询权限
- `inspection:模块:add` - 新增权限
- `inspection:模块:edit` - 修改权限
- `inspection:模块:remove` - 删除权限
- `inspection:模块:export` - 导出权限

## 后端接口说明

所有后端接口路径格式: `/inspection/模块/操作`

### 标准CRUD接口
```
GET    /inspection/{模块}/list       - 分页查询列表
GET    /inspection/{模块}/{id}       - 查询详情
POST   /inspection/{模块}            - 新增
PUT    /inspection/{模块}            - 修改
DELETE /inspection/{模块}/{ids}      - 删除(支持批量)
POST   /inspection/{模块}/export    - 导出Excel
```

### 特殊接口
```
GET    /inspection/step/tree/{taskId}  - 查询任务的步骤树形结构
```

## 菜单ID分配规则

```
2000      - AR巡检(一级菜单)
2001-2008 - 8个二级菜单(设备/区域/点位/任务/步骤/媒体/执行/记录)
2101-2105 - 设备管理按钮权限
2111-2115 - 区域管理按钮权限
2121-2125 - 点位管理按钮权限
2131-2135 - 任务模板按钮权限
2141-2145 - 巡检步骤按钮权限
2151-2155 - 步骤媒体按钮权限
2161-2165 - 执行记录按钮权限
2171-2175 - 步骤记录按钮权限
```

## 回滚操作

如需清理测试数据:

```bash
mysql -u root -p
use ry-vue;
source /path/to/script/sql/ar-inspection-menu-rollback.sql;
```

## 注意事项

1. **菜单ID冲突**: 本模块使用2000-2199的ID段,请勿在此范围内创建其他菜单
2. **权限标识**: 前端组件中使用 `v-hasPermi` 指令控制按钮显示,需确保权限标识一致
3. **路由懒加载**: 所有页面组件使用懒加载,提高首屏加载速度
4. **多租户支持**: 菜单表自动支持多租户,无需额外配置
5. **图标**: 使用Element Plus内置图标,可在Element Plus官网查看完整图标列表

## 下一步工作

1. **完善前端视图页面**: 参照 `device/index.vue` 完善其他7个页面的功能
2. **添加数据字典**: 在系统管理中添加任务类型、执行状态等字典项
3. **优化步骤管理**: 实现树形结构的拖拽排序功能
4. **媒体文件上传**: 集成OSS文件上传功能
5. **执行记录详情**: 添加执行记录的详情页面,展示完整执行过程

## 技术栈

- **后端**: Spring Boot 3.5.7 + MyBatis-Plus + Sa-Token
- **前端**: Vue 3 + TypeScript + Element Plus + Vite
- **数据库**: MySQL 5.7+
- **权限控制**: 基于RBAC的菜单权限模型

## 联系方式

如有问题,请提交Issue或联系开发团队。
