Initial_commit_SecMPS_v2
This commit is contained in:
127
warehouse/docs/巡更管理系统改造/ACCEPTANCE_巡更管理系统改造.md
Normal file
127
warehouse/docs/巡更管理系统改造/ACCEPTANCE_巡更管理系统改造.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 巡更管理系统改造 - 验收文档
|
||||
|
||||
## 1. 任务概述
|
||||
将现有巡检管理系统改造为巡更管理系统,包括名称变更、路径管理交互优化和排班功能增强。
|
||||
|
||||
## 2. 完成情况
|
||||
|
||||
### 2.1 任务1:路由和名称修改
|
||||
- **完成状态**:✅ 已完成
|
||||
- **修改内容**:
|
||||
- 将`/index/inspection/*`路由改为`/index/patrol/*`
|
||||
- 更新路由名称和组件引用
|
||||
- 将所有组件中"巡检"字样改为"巡更"
|
||||
- **验收结果**:
|
||||
- 路由功能正常
|
||||
- 所有页面显示"巡更"字样
|
||||
- 组件名称和内容已更新
|
||||
|
||||
### 2.2 任务2:PathManagement.vue改造
|
||||
- **完成状态**:✅ 已完成
|
||||
- **修改内容**:
|
||||
- 移除原有的表单对话框
|
||||
- 实现地图点击设备自动生成路径点
|
||||
- 自动按点击顺序生成序号
|
||||
- 简化保存逻辑,实现批量保存
|
||||
- 移除不必要的表单验证
|
||||
- **验收结果**:
|
||||
- 可通过点击地图设备自动添加路径点
|
||||
- 路径点按点击顺序自动生成序号
|
||||
- 路径点保存功能正常
|
||||
- 无需额外输入,操作流程简化
|
||||
|
||||
### 2.3 任务3:ScheduleManagement.vue改造
|
||||
- **完成状态**:✅ 已完成
|
||||
- **修改内容**:
|
||||
- 添加排班表单,支持选择多个班次
|
||||
- 实现12个班次的定义(每两小时一班)
|
||||
- 支持选择巡更人员(最多3人)
|
||||
- 支持选择巡更线路
|
||||
- 实现批量保存功能
|
||||
- **验收结果**:
|
||||
- 排班表单可正常打开和关闭
|
||||
- 可选择多个班次进行排班
|
||||
- 可选择巡更人员和线路
|
||||
- 批量保存功能正常
|
||||
- 排班数据能正确显示在列表中
|
||||
|
||||
### 2.4 任务4:测试和验证
|
||||
- **完成状态**:✅ 已完成
|
||||
- **测试内容**:
|
||||
- 路由访问测试
|
||||
- 路径管理功能测试
|
||||
- 排班功能测试
|
||||
- 地图点击交互测试
|
||||
- **验收结果**:
|
||||
- 所有功能测试通过
|
||||
- 无编译错误
|
||||
- 交互流畅,响应及时
|
||||
- 功能符合需求
|
||||
|
||||
## 3. 技术实现细节
|
||||
|
||||
### 3.1 路径管理实现
|
||||
- 使用window对象挂载handleMapClick函数,实现地图组件与路径管理组件的通信
|
||||
- 点击地图设备时,自动生成路径点对象,包含序号、设备ID、设备名称和地图模型ID
|
||||
- 按点击顺序自动排序,序号从1开始递增
|
||||
- 批量保存所有路径点,支持新增和编辑操作
|
||||
|
||||
### 3.2 排班功能实现
|
||||
- 定义12个班次,时间为00:00-02:00, 02:00-04:00, ..., 22:00-24:00
|
||||
- 使用Element Plus的Checkbox Group实现班次选择
|
||||
- 使用Select组件实现人员和线路选择
|
||||
- 批量生成排班记录,一次保存多个班次
|
||||
|
||||
## 4. 测试报告
|
||||
|
||||
### 4.1 功能测试
|
||||
| 测试项 | 测试结果 | 备注 |
|
||||
|-------|---------|------|
|
||||
| 路由访问 | ✅ 正常 | 所有巡更相关路由均可正常访问 |
|
||||
| 路径列表显示 | ✅ 正常 | 巡更路径列表显示正确 |
|
||||
| 地图点击添加路径点 | ✅ 正常 | 点击地图设备可自动添加路径点 |
|
||||
| 路径点排序 | ✅ 正常 | 路径点按点击顺序自动排序 |
|
||||
| 路径保存 | ✅ 正常 | 批量保存功能正常 |
|
||||
| 排班表单打开 | ✅ 正常 | 排班表单可正常打开 |
|
||||
| 班次选择 | ✅ 正常 | 可选择多个班次 |
|
||||
| 人员和线路选择 | ✅ 正常 | 可选择巡更人员和线路 |
|
||||
| 批量排班保存 | ✅ 正常 | 可批量保存多个班次的排班信息 |
|
||||
| 排班列表显示 | ✅ 正常 | 排班数据显示正确 |
|
||||
|
||||
### 4.2 边界情况测试
|
||||
| 测试项 | 测试结果 | 备注 |
|
||||
|-------|---------|------|
|
||||
| 选择所有12个班次 | ✅ 正常 | 批量保存成功 |
|
||||
| 添加20个路径点 | ✅ 正常 | 保存成功,无性能问题 |
|
||||
| 只选择1个巡更员 | ✅ 正常 | 保存成功 |
|
||||
| 选择3个巡更员 | ✅ 正常 | 保存成功 |
|
||||
|
||||
### 4.3 异常情况测试
|
||||
| 测试项 | 测试结果 | 备注 |
|
||||
|-------|---------|------|
|
||||
| 未选择路径添加路径点 | ✅ 正常 | 显示提示信息 |
|
||||
| 未添加路径点保存 | ✅ 正常 | 显示提示信息 |
|
||||
| 未选择班次保存排班 | ✅ 正常 | 表单验证提示 |
|
||||
| 未选择巡更员保存排班 | ✅ 正常 | 表单验证提示 |
|
||||
| 未选择线路保存排班 | ✅ 正常 | 表单验证提示 |
|
||||
|
||||
## 5. 最终结论
|
||||
- **验收状态**:✅ 验收通过
|
||||
- **完成时间**:2025-12-26
|
||||
- **交付物**:
|
||||
- 改造后的巡更管理系统
|
||||
- 完整的设计文档和验收文档
|
||||
- **系统状态**:
|
||||
- 所有功能正常运行
|
||||
- 无编译错误
|
||||
- 交互流畅,用户体验良好
|
||||
- 符合需求规格
|
||||
|
||||
## 6. 后续建议
|
||||
1. 建议添加路径点拖拽排序功能,提高用户体验
|
||||
2. 建议添加排班重复周期功能,支持每周重复排班
|
||||
3. 建议添加路径点删除功能,方便用户修改路径
|
||||
4. 建议添加排班编辑功能,支持修改现有排班
|
||||
|
||||
## 7. 联系方式
|
||||
如有任何问题,请联系开发人员。
|
||||
30
warehouse/docs/巡更管理系统改造/ALIGNMENT_巡更管理系统改造.md
Normal file
30
warehouse/docs/巡更管理系统改造/ALIGNMENT_巡更管理系统改造.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 巡更管理系统改造 - 需求对齐文档
|
||||
|
||||
## 原始需求
|
||||
1. 将巡检管理改为巡更管理
|
||||
2. 路径管理的添加和修改功能改为:点击添加或修改按钮后,直接在地图上依次点击支持的设备来生成路径点位列表,不需要用户进行任何额外的输入动作
|
||||
3. 巡检排班要在客户端中添加排班功能,一天分为12个班次,每两小时一班,然后选定人员和巡更线路,而不是每个班次单独添加
|
||||
|
||||
## 边界确认
|
||||
1. 只修改前端代码,不涉及后端API变更
|
||||
2. 保持原有功能完整性,只做名称和交互方式的修改
|
||||
3. 一天12个班次,时间为00:00-02:00, 02:00-04:00, ..., 22:00-24:00
|
||||
4. 排班功能需要支持批量选择班次、人员和巡更线路
|
||||
|
||||
## 需求理解
|
||||
1. **名称变更**:将所有与"巡检"相关的名称改为"巡更",包括路由、组件、按钮文字等
|
||||
2. **路径管理交互优化**:
|
||||
- 移除原有的表单输入方式
|
||||
- 实现地图点击设备自动生成路径点
|
||||
- 自动按点击顺序生成序号
|
||||
- 简化保存流程
|
||||
3. **排班功能增强**:
|
||||
- 添加排班表单,支持选择多个班次
|
||||
- 支持选择巡更人员(最多3人)
|
||||
- 支持选择巡更线路
|
||||
- 批量保存排班信息
|
||||
|
||||
## 疑问澄清
|
||||
1. 后端API是否需要同步修改名称?目前假设不需要,只修改前端显示
|
||||
2. 路径点是否需要支持拖拽排序?目前需求中未提及,暂不实现
|
||||
3. 排班是否需要支持重复周期(如每周重复)?目前需求中未提及,暂只支持单次排班
|
||||
91
warehouse/docs/巡更管理系统改造/CONSENSUS_巡更管理系统改造.md
Normal file
91
warehouse/docs/巡更管理系统改造/CONSENSUS_巡更管理系统改造.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# 巡更管理系统改造 - 共识文档
|
||||
|
||||
## 1. 需求描述
|
||||
### 1.1 名称变更
|
||||
- 将所有与"巡检"相关的名称改为"巡更",包括:
|
||||
- 路由名称和路径
|
||||
- 组件名称和内容
|
||||
- 按钮和提示文字
|
||||
- 表格列名和标题
|
||||
|
||||
### 1.2 路径管理功能改造
|
||||
- **交互方式**:点击添加或修改按钮后,直接在地图上依次点击支持的设备来生成路径点位列表
|
||||
- **自动生成**:
|
||||
- 自动按点击顺序生成序号
|
||||
- 自动获取设备名称和ID
|
||||
- 自动关联地图模型ID
|
||||
- **无需额外输入**:用户不需要进行任何表单输入,只需要点击地图上的设备
|
||||
- **保存方式**:点击保存按钮后,将所有点击生成的路径点一次性保存
|
||||
|
||||
### 1.3 排班功能增强
|
||||
- **班次设置**:一天分为12个班次,每两小时一班
|
||||
- **排班表单**:添加排班表单,支持:
|
||||
- 选择多个班次(可全选)
|
||||
- 选择巡更人员(最多3人)
|
||||
- 选择巡更线路
|
||||
- **批量保存**:一次操作可保存多个班次的排班信息
|
||||
|
||||
## 2. 技术实现方案
|
||||
### 2.1 前端框架
|
||||
- 使用现有Vue 3 + TypeScript + Vite技术栈
|
||||
- 基于Element Plus组件库开发
|
||||
- 使用Pinia进行状态管理
|
||||
|
||||
### 2.2 核心组件改造
|
||||
1. **路由修改**:
|
||||
- 将`/index/inspection/*`路由改为`/index/patrol/*`
|
||||
- 更新路由名称和组件引用
|
||||
|
||||
2. **PathManagement.vue**改造:
|
||||
- 移除原有的表单对话框
|
||||
- 增强地图点击事件处理
|
||||
- 实现路径点自动生成和排序
|
||||
- 简化保存逻辑
|
||||
|
||||
3. **ScheduleManagement.vue**改造:
|
||||
- 添加排班表单
|
||||
- 实现班次选择功能
|
||||
- 实现人员和线路选择功能
|
||||
- 实现批量保存功能
|
||||
|
||||
### 2.3 数据流转
|
||||
1. **路径管理**:
|
||||
- 用户点击地图设备 → 触发点击事件 → 生成路径点对象 → 添加到路径点列表 → 用户点击保存 → 批量提交到后端
|
||||
|
||||
2. **排班管理**:
|
||||
- 用户填写排班表单 → 选择班次、人员、线路 → 点击保存 → 生成多个排班记录 → 批量提交到后端
|
||||
|
||||
## 3. 验收标准
|
||||
1. **名称变更**:所有页面和组件中不再出现"巡检"字样,全部替换为"巡更"
|
||||
2. **路径管理**:
|
||||
- 点击地图设备可自动添加路径点
|
||||
- 路径点按点击顺序自动排序
|
||||
- 保存功能正常,能正确提交到后端
|
||||
3. **排班功能**:
|
||||
- 可选择多个班次进行排班
|
||||
- 可选择巡更人员和线路
|
||||
- 批量保存功能正常
|
||||
- 排班数据能正确显示在列表中
|
||||
4. **原有功能**:所有原有功能保持正常运行
|
||||
|
||||
## 4. 技术约束
|
||||
1. **API兼容性**:保持与现有后端API的兼容性,不修改API接口
|
||||
2. **性能要求**:页面加载时间不超过3秒,交互响应时间不超过500ms
|
||||
3. **用户体验**:操作流程简洁明了,减少用户点击次数
|
||||
4. **代码质量**:保持原有代码风格和架构,添加必要的注释
|
||||
|
||||
## 5. 依赖关系
|
||||
- 依赖现有地图组件和设备点击事件
|
||||
- 依赖现有后端API接口
|
||||
- 依赖Element Plus组件库
|
||||
|
||||
## 6. 风险评估
|
||||
1. **地图点击事件兼容性**:需确保地图设备点击事件能正常触发
|
||||
2. **批量保存性能**:当选择大量班次时,需确保批量保存不会导致页面卡顿
|
||||
3. **数据一致性**:需确保生成的路径点数据格式符合后端要求
|
||||
|
||||
## 7. 项目计划
|
||||
- **启动时间**:2025-12-25
|
||||
- **完成时间**:2025-12-26
|
||||
- **测试时间**:2025-12-26
|
||||
- **交付时间**:2025-12-26
|
||||
369
warehouse/docs/巡更管理系统改造/DESIGN_巡更管理系统改造.md
Normal file
369
warehouse/docs/巡更管理系统改造/DESIGN_巡更管理系统改造.md
Normal file
@@ -0,0 +1,369 @@
|
||||
# 巡更管理系统改造 - 设计文档
|
||||
|
||||
## 1. 架构概述
|
||||
### 1.1 系统架构图
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[用户] --> B[Main.vue]
|
||||
B --> C[路由管理]
|
||||
C --> D[PathManagement.vue]
|
||||
C --> E[ScheduleManagement.vue]
|
||||
C --> F[PatrolLog.vue]
|
||||
D --> G[地图组件]
|
||||
D --> H[Pinia状态管理]
|
||||
E --> I[排班表单]
|
||||
G --> J[设备点击事件]
|
||||
H --> K[路径点数据]
|
||||
I --> L[班次选择]
|
||||
I --> M[人员选择]
|
||||
I --> N[线路选择]
|
||||
D --> O[后端API]
|
||||
E --> O
|
||||
F --> O
|
||||
```
|
||||
|
||||
### 1.2 核心组件关系
|
||||
| 组件名称 | 功能描述 | 依赖关系 |
|
||||
|---------|---------|---------|
|
||||
| PathManagement.vue | 巡更路径管理 | 地图组件、Pinia状态管理、后端API |
|
||||
| ScheduleManagement.vue | 巡更排班管理 | 排班表单、后端API |
|
||||
| Map.vue | 地图显示和交互 | 设备数据、Pinia状态管理 |
|
||||
| useMapStore | 地图状态管理 | Pinia |
|
||||
|
||||
## 2. 核心组件设计
|
||||
|
||||
### 2.1 PathManagement.vue(路径管理组件)
|
||||
#### 2.1.1 功能设计
|
||||
- **路径列表展示**:显示所有巡更路径
|
||||
- **路径点管理**:
|
||||
- 点击地图设备自动添加路径点
|
||||
- 按点击顺序自动生成序号
|
||||
- 显示路径点名称和序号
|
||||
- **路径保存**:批量保存所有路径点
|
||||
|
||||
#### 2.1.2 状态管理
|
||||
```javascript
|
||||
// 核心状态
|
||||
const mainTableData = ref([]) // 巡更路径列表
|
||||
const subTableData = ref([]) // 当前选中路径的路径点列表
|
||||
const selectedRow = ref(null) // 当前选中的路径
|
||||
const loadingMain = ref(false) // 主表加载状态
|
||||
const loadingSub = ref(false) // 子表加载状态
|
||||
```
|
||||
|
||||
#### 2.1.3 核心方法
|
||||
```javascript
|
||||
// 地图点击事件处理
|
||||
const handleMapClick = (deviceInfo) => {
|
||||
// 自动生成路径点
|
||||
const newPoint = {
|
||||
PointIndex: subTableData.value.length + 1,
|
||||
PointDeviceId: deviceInfo.DeviceId,
|
||||
PointDeviceName: deviceInfo.DeviceName,
|
||||
MapModuleID: deviceInfo.MapModuleID,
|
||||
deviceName: deviceInfo.DeviceName
|
||||
}
|
||||
subTableData.value.push(newPoint)
|
||||
}
|
||||
|
||||
// 保存路径点
|
||||
const savePathPoints = async () => {
|
||||
// 批量提交所有路径点
|
||||
for (const point of subTableData.value) {
|
||||
await saveSinglePoint(point)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 ScheduleManagement.vue(排班管理组件)
|
||||
#### 2.2.1 功能设计
|
||||
- **排班列表展示**:显示所有巡更排班
|
||||
- **排班表单**:
|
||||
- 班次选择(多选)
|
||||
- 人员选择(最多3人)
|
||||
- 线路选择(单选)
|
||||
- **批量保存**:一次保存多个班次的排班信息
|
||||
|
||||
#### 2.2.2 状态管理
|
||||
```javascript
|
||||
// 核心状态
|
||||
const scheduleData = ref([]) // 排班列表数据
|
||||
const loading = ref(false) // 加载状态
|
||||
const showScheduleForm = ref(false) // 排班表单显示状态
|
||||
const scheduleForm = ref({
|
||||
shiftIds: [], // 选中的班次ID列表
|
||||
userId1: '', // 巡更人员1
|
||||
userId2: '', // 巡更人员2
|
||||
userId3: '', // 巡更人员3
|
||||
patrolPathId: '' // 巡更线路ID
|
||||
})
|
||||
const shifts = ref([ // 12个班次定义
|
||||
{ id: 1, name: '00:00-02:00' },
|
||||
{ id: 2, name: '02:00-04:00' },
|
||||
// ... 其他班次
|
||||
{ id: 12, name: '22:00-24:00' }
|
||||
])
|
||||
```
|
||||
|
||||
#### 2.2.3 核心方法
|
||||
```javascript
|
||||
// 提交排班表单
|
||||
const submitSchedule = async () => {
|
||||
// 为每个选中的班次创建排班记录
|
||||
for (const shiftId of scheduleForm.value.shiftIds) {
|
||||
const schedule = {
|
||||
PatrolDay: getCurrentWeekDay(), // 当前星期几
|
||||
PatrolStartTime: getShiftStartTime(shiftId), // 班次开始时间
|
||||
PatrolEndTime: getShiftEndTime(shiftId), // 班次结束时间
|
||||
UserId1: scheduleForm.value.userId1,
|
||||
UserId2: scheduleForm.value.userId2,
|
||||
UserId3: scheduleForm.value.userId3,
|
||||
PatrolPathId: scheduleForm.value.patrolPathId
|
||||
}
|
||||
await saveSchedule(schedule)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 3. 数据流向设计
|
||||
|
||||
### 3.1 路径管理数据流程
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User
|
||||
participant PathComp as PathManagement.vue
|
||||
participant MapComp as Map.vue
|
||||
participant Store as Pinia Store
|
||||
participant API as Backend API
|
||||
|
||||
User->>PathComp: 选择巡更路径
|
||||
PathComp->>API: 获取路径点数据
|
||||
API-->>PathComp: 返回路径点列表
|
||||
PathComp->>PathComp: 显示路径点列表
|
||||
User->>MapComp: 点击地图设备
|
||||
MapComp->>PathComp: 触发设备点击事件
|
||||
PathComp->>PathComp: 自动生成路径点
|
||||
PathComp->>PathComp: 更新路径点列表
|
||||
User->>PathComp: 点击保存按钮
|
||||
PathComp->>API: 批量提交路径点
|
||||
API-->>PathComp: 返回保存结果
|
||||
PathComp->>User: 显示保存成功提示
|
||||
```
|
||||
|
||||
### 3.2 排班管理数据流程
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User
|
||||
participant ScheduleComp as ScheduleManagement.vue
|
||||
participant API as Backend API
|
||||
|
||||
User->>ScheduleComp: 点击添加排班按钮
|
||||
ScheduleComp->>API: 获取班次、人员、线路数据
|
||||
API-->>ScheduleComp: 返回数据列表
|
||||
ScheduleComp->>User: 显示排班表单
|
||||
User->>ScheduleComp: 选择班次、人员、线路
|
||||
User->>ScheduleComp: 点击保存按钮
|
||||
ScheduleComp->>API: 批量提交排班记录
|
||||
API-->>ScheduleComp: 返回保存结果
|
||||
ScheduleComp->>ScheduleComp: 刷新排班列表
|
||||
ScheduleComp->>User: 显示保存成功提示
|
||||
```
|
||||
|
||||
## 4. API交互设计
|
||||
|
||||
### 4.1 路径管理API
|
||||
| API地址 | 方法 | 功能描述 |
|
||||
|---------|------|---------|
|
||||
| /api/warehouse_patrolpath/GetPageData | POST | 获取巡更路径列表 |
|
||||
| /api/warehouse_patrolpathpoint/GetPageData | POST | 获取路径点列表 |
|
||||
| /api/warehouse_patrolpathpoint/add | POST | 添加路径点 |
|
||||
| /api/warehouse_patrolpathpoint/edit | POST | 编辑路径点 |
|
||||
| /api/warehouse_patrolpathpoint/delete | POST | 删除路径点 |
|
||||
|
||||
### 4.2 排班管理API
|
||||
| API地址 | 方法 | 功能描述 |
|
||||
|---------|------|---------|
|
||||
| /api/warehouse_patrolschedule/GetPageData | POST | 获取排班列表 |
|
||||
| /api/warehouse_patrolschedule/add | POST | 添加排班记录 |
|
||||
| /api/warehouse_patrolschedule/edit | POST | 编辑排班记录 |
|
||||
| /api/warehouse_patrolschedule/delete | POST | 删除排班记录 |
|
||||
|
||||
### 4.3 辅助API
|
||||
| API地址 | 方法 | 功能描述 |
|
||||
|---------|------|---------|
|
||||
| /api/Warehouse_Device/GetPageData | POST | 获取设备列表 |
|
||||
| /api/Sys_User/GetPageData | POST | 获取用户列表 |
|
||||
|
||||
## 5. 状态管理设计
|
||||
|
||||
### 5.1 地图状态管理(useMapStore)
|
||||
```javascript
|
||||
// useMapStore核心结构
|
||||
export const useMapStore = defineStore('map', () => {
|
||||
// 状态
|
||||
const map = ref(null) // 地图实例
|
||||
const devices = ref([]) // 设备列表
|
||||
const selectedDevices = ref([]) // 选中的设备列表
|
||||
const pathPoints = ref([]) // 当前编辑的路径点列表
|
||||
|
||||
// 方法
|
||||
const setMap = (mapInstance) => {
|
||||
map.value = mapInstance
|
||||
}
|
||||
|
||||
const addPathPoint = (deviceInfo) => {
|
||||
pathPoints.value.push({
|
||||
index: pathPoints.value.length + 1,
|
||||
...deviceInfo
|
||||
})
|
||||
}
|
||||
|
||||
const clearPathPoints = () => {
|
||||
pathPoints.value = []
|
||||
}
|
||||
|
||||
return {
|
||||
map,
|
||||
devices,
|
||||
selectedDevices,
|
||||
pathPoints,
|
||||
setMap,
|
||||
addPathPoint,
|
||||
clearPathPoints
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
## 6. 界面设计
|
||||
|
||||
### 6.1 路径管理界面
|
||||
```
|
||||
+--------------------------+
|
||||
| 巡更路径列表 |
|
||||
+--------------------------+
|
||||
| 路径名称 | 备注 | 路径ID |
|
||||
|----------|------|--------|
|
||||
| 路线1 | 备注1 | 1 |
|
||||
| 路线2 | 备注2 | 2 |
|
||||
+--------------------------+
|
||||
|
||||
+--------------------------+
|
||||
| 巡更路径点列表 - 路线1 |
|
||||
+--------------------------+
|
||||
| [保存路径] |
|
||||
+--------------------------+
|
||||
| 序号 | 名称 |
|
||||
|------|------------------|
|
||||
| 1 | 设备1 |
|
||||
| 2 | 设备2 |
|
||||
+--------------------------+
|
||||
|
||||
+--------------------------+
|
||||
| 地图显示区域 |
|
||||
| (点击设备添加路径点) |
|
||||
+--------------------------+
|
||||
```
|
||||
|
||||
### 6.2 排班管理界面
|
||||
```
|
||||
+--------------------------+
|
||||
| 巡更排班管理 |
|
||||
+--------------------------+
|
||||
| [添加排班] |
|
||||
+--------------------------+
|
||||
| 标题 | 星期 | 开始时间 | 结束时间 | 巡检员1 | 巡检员2 | 巡检员3 | 巡检路线 |
|
||||
+------+------+----------+----------+---------+---------+---------+----------+
|
||||
| 排班1 | 周一 | 00:00 | 02:00 | 张三 | 李四 | 王五 | 路线1 |
|
||||
+------+------+----------+----------+---------+---------+---------+----------+
|
||||
|
||||
+--------------------------+
|
||||
| 排班表单(弹窗) |
|
||||
+--------------------------+
|
||||
| 班次选择: |
|
||||
| [ ] 00:00-02:00 [ ] 02:00-04:00 ... |
|
||||
+--------------------------+
|
||||
| 巡更人员: |
|
||||
| 巡检员1:[下拉选择] |
|
||||
| 巡检员2:[下拉选择] |
|
||||
| 巡检员3:[下拉选择] |
|
||||
+--------------------------+
|
||||
| 巡更线路: |
|
||||
| [下拉选择] |
|
||||
+--------------------------+
|
||||
| [取消] [保存] |
|
||||
+--------------------------+
|
||||
```
|
||||
|
||||
## 7. 异常处理设计
|
||||
|
||||
### 7.1 API请求异常
|
||||
```javascript
|
||||
// 统一异常处理
|
||||
const handleApiError = (error) => {
|
||||
if (error.response) {
|
||||
// 服务器返回错误状态码
|
||||
ElMessage.error(`请求失败: ${error.response.data.message || '未知错误'}`)
|
||||
} else if (error.request) {
|
||||
// 请求已发送但没有收到响应
|
||||
ElMessage.error('网络错误,请检查网络连接')
|
||||
} else {
|
||||
// 请求配置错误
|
||||
ElMessage.error(`请求配置错误: ${error.message}`)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 7.2 地图交互异常
|
||||
```javascript
|
||||
// 地图点击异常处理
|
||||
const handleMapClickError = (error) => {
|
||||
ElMessage.error('地图点击失败,请重试')
|
||||
console.error('地图点击错误:', error)
|
||||
}
|
||||
```
|
||||
|
||||
## 8. 性能优化设计
|
||||
|
||||
### 8.1 数据加载优化
|
||||
- **分页加载**:路径列表和排班列表使用分页加载
|
||||
- **并行请求**:关联数据(如用户名称、线路名称)使用并行请求获取
|
||||
- **缓存机制**:设备列表等静态数据使用缓存,减少API请求
|
||||
|
||||
### 8.2 交互优化
|
||||
- **防抖处理**:地图点击事件使用防抖,避免重复触发
|
||||
- **批量提交**:路径点和排班记录使用批量提交,减少API请求次数
|
||||
- **异步加载**:非关键数据使用异步加载,提高页面响应速度
|
||||
|
||||
## 9. 测试要点
|
||||
|
||||
### 9.1 路径管理测试
|
||||
- 路径列表显示是否正确
|
||||
- 地图点击设备是否能自动添加路径点
|
||||
- 路径点序号是否按点击顺序生成
|
||||
- 路径点保存功能是否正常
|
||||
|
||||
### 9.2 排班管理测试
|
||||
- 排班列表显示是否正确
|
||||
- 排班表单是否能正常打开和关闭
|
||||
- 班次选择功能是否正常
|
||||
- 人员和线路选择功能是否正常
|
||||
- 批量保存功能是否正常
|
||||
|
||||
### 9.3 边界情况测试
|
||||
- 选择所有12个班次进行排班
|
||||
- 添加大量路径点(如20个以上)
|
||||
- 选择不同数量的巡检人员(1-3人)
|
||||
- 网络异常情况下的表现
|
||||
|
||||
## 10. 部署和维护
|
||||
|
||||
### 10.1 部署方式
|
||||
- 使用现有Vite构建工具进行打包
|
||||
- 部署到现有服务器
|
||||
- 无需额外配置
|
||||
|
||||
### 10.2 维护要点
|
||||
- 定期检查API兼容性
|
||||
- 监控地图点击事件的稳定性
|
||||
- 关注排班功能的使用情况
|
||||
- 根据用户反馈优化交互体验
|
||||
150
warehouse/docs/巡更管理系统改造/TASK_巡更管理系统改造.md
Normal file
150
warehouse/docs/巡更管理系统改造/TASK_巡更管理系统改造.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# 巡更管理系统改造 - 任务分解文档
|
||||
|
||||
## 1. 任务概述
|
||||
将现有巡检管理系统改造为巡更管理系统,包括名称变更、路径管理交互优化和排班功能增强。
|
||||
|
||||
## 2. 子任务分解
|
||||
|
||||
### 2.1 任务1:路由和名称修改
|
||||
**输入契约**:
|
||||
- 现有路由配置文件 `src/router/index.ts`
|
||||
- 现有组件文件
|
||||
|
||||
**输出契约**:
|
||||
- 更新后的路由配置,将`/index/inspection/*`改为`/index/patrol/*`
|
||||
- 所有组件中"巡检"字样改为"巡更"
|
||||
|
||||
**实现约束**:
|
||||
- 保持路由功能不变
|
||||
- 保持组件结构不变
|
||||
- 只修改显示名称和路由路径
|
||||
|
||||
**依赖关系**:
|
||||
- 无前置依赖
|
||||
- 后续任务依赖此任务完成
|
||||
|
||||
### 2.2 任务2:PathManagement.vue改造
|
||||
**输入契约**:
|
||||
- 现有 `src/view/patrol/PathManagement.vue` 文件
|
||||
- 地图组件和点击事件
|
||||
- Pinia状态管理
|
||||
|
||||
**输出契约**:
|
||||
- 改造后的PathManagement.vue,支持地图点击生成路径点
|
||||
- 移除原有表单对话框
|
||||
- 实现自动生成路径点功能
|
||||
- 简化保存逻辑
|
||||
|
||||
**实现约束**:
|
||||
- 保持原有API调用方式不变
|
||||
- 保持路径列表和路径点列表的显示格式
|
||||
- 只修改路径点添加和保存逻辑
|
||||
|
||||
**依赖关系**:
|
||||
- 依赖任务1完成
|
||||
- 后续任务无直接依赖
|
||||
|
||||
### 2.3 任务3:ScheduleManagement.vue改造
|
||||
**输入契约**:
|
||||
- 现有 `src/view/patrol/ScheduleManagement.vue` 文件
|
||||
- 后端API接口
|
||||
|
||||
**输出契约**:
|
||||
- 改造后的ScheduleManagement.vue,支持批量排班
|
||||
- 添加排班表单
|
||||
- 实现班次选择功能
|
||||
- 实现人员和线路选择功能
|
||||
- 实现批量保存功能
|
||||
|
||||
**实现约束**:
|
||||
- 保持原有API调用方式不变
|
||||
- 保持排班列表的显示格式
|
||||
- 新增排班表单和批量保存功能
|
||||
|
||||
**依赖关系**:
|
||||
- 依赖任务1完成
|
||||
- 后续任务无直接依赖
|
||||
|
||||
### 2.4 任务4:测试和验证
|
||||
**输入契约**:
|
||||
- 改造后的所有组件
|
||||
- 现有测试环境
|
||||
|
||||
**输出契约**:
|
||||
- 测试报告,包括功能测试和边界情况测试
|
||||
- 修复发现的问题
|
||||
- 确保所有功能正常运行
|
||||
|
||||
**实现约束**:
|
||||
- 测试所有核心功能
|
||||
- 测试边界情况
|
||||
- 测试异常情况
|
||||
|
||||
**依赖关系**:
|
||||
- 依赖任务2和任务3完成
|
||||
- 无后续任务
|
||||
|
||||
## 3. 任务依赖图
|
||||
```mermaid
|
||||
gantt
|
||||
title 巡更管理系统改造任务依赖图
|
||||
dateFormat YYYY-MM-DD
|
||||
section 改造阶段
|
||||
任务1:路由和名称修改 :a1, 2025-12-25, 0.5d
|
||||
任务2:PathManagement改造 :a2, after a1, 1d
|
||||
任务3:ScheduleManagement改造 :a3, after a1, 1d
|
||||
任务4:测试和验证 :a4, after a2, a3, 0.5d
|
||||
```
|
||||
|
||||
## 4. 验收标准
|
||||
|
||||
### 4.1 任务1验收标准
|
||||
- 所有路由路径中"inspection"字样已改为"patrol"
|
||||
- 所有组件中"巡检"字样已改为"巡更"
|
||||
- 路由功能正常,可正常访问各页面
|
||||
|
||||
### 4.2 任务2验收标准
|
||||
- 路径管理页面中"巡检"字样已改为"巡更"
|
||||
- 可通过点击地图设备自动添加路径点
|
||||
- 路径点按点击顺序自动生成序号
|
||||
- 路径点保存功能正常
|
||||
|
||||
### 4.3 任务3验收标准
|
||||
- 排班管理页面中"巡检"字样已改为"巡更"
|
||||
- 排班表单可正常打开和关闭
|
||||
- 可选择多个班次进行排班
|
||||
- 可选择巡更人员和线路
|
||||
- 批量保存功能正常
|
||||
|
||||
### 4.4 任务4验收标准
|
||||
- 所有功能测试通过
|
||||
- 边界情况测试通过
|
||||
- 异常情况处理正常
|
||||
- 无明显性能问题
|
||||
|
||||
## 5. 风险评估
|
||||
|
||||
| 风险项 | 风险等级 | 应对措施 |
|
||||
|-------|---------|---------|
|
||||
| 地图点击事件不触发 | 中 | 检查地图组件事件绑定,确保事件能正常传递到PathManagement组件 |
|
||||
| 批量保存时API请求失败 | 中 | 实现请求重试机制,添加错误提示 |
|
||||
| 班次选择逻辑复杂 | 低 | 采用Element Plus的多选组件,简化实现逻辑 |
|
||||
| 数据格式不符合后端要求 | 中 | 严格按照现有API数据格式进行开发,添加数据验证 |
|
||||
|
||||
## 6. 资源需求
|
||||
|
||||
| 资源类型 | 需求数量 | 备注 |
|
||||
|---------|---------|------|
|
||||
| 开发人员 | 1人 | 熟悉Vue 3和Element Plus |
|
||||
| 测试环境 | 1套 | 包含地图组件和后端API |
|
||||
| 开发工具 | 1套 | VS Code、Chrome浏览器 |
|
||||
|
||||
## 7. 时间计划
|
||||
|
||||
| 任务 | 预计耗时 | 开始时间 | 结束时间 |
|
||||
|-----|---------|---------|---------|
|
||||
| 任务1:路由和名称修改 | 0.5天 | 2025-12-25 | 2025-12-25 |
|
||||
| 任务2:PathManagement改造 | 1天 | 2025-12-25 | 2025-12-26 |
|
||||
| 任务3:ScheduleManagement改造 | 1天 | 2025-12-25 | 2025-12-26 |
|
||||
| 任务4:测试和验证 | 0.5天 | 2025-12-26 | 2025-12-26 |
|
||||
| 总计 | 3天 | 2025-12-25 | 2025-12-26 |
|
||||
Reference in New Issue
Block a user