● 太好了!我已经完成了需求变更工单的拆分分配功能实现。让我总结一下完成的工作:
已完成的功能
- 工单列表页增强 (index.vue:171-224)
- ✅ 添加了”拆分分配”按钮,只对待处理状态且非维护保养类型的工单显示
- ✅ 添加了权限控制:只有管理员和项目经理可以拆分分配工单
- ✅ 增加了拆分分配对话框的集成
创建拆分分配对话框组件 (split-assign-dialog.vue)
这是一个全新的组件,具有以下特性:
功能特点:
✅ 显示工单基本信息(工单编码、标题、类型、优先级、客户、项目)
✅ 支持动态添加/删除多个子任务
✅ 每个子任务包含:
- 子任务标题(必填)
- 任务描述
- 优先级(继承工单优先级)
- 预计耗时(默认60分钟)
- 分配技术员(必填,使用TechnicianAssign组件)
- 检查模板(可选)
- 备注
技术实现:
✅ 使用了可复用的 TechnicianAssign 组件进行技术员选择
✅ 表单验证确保所有必填项都已填写
✅ 支持批量创建子任务
✅ 创建子任务时自动设置状态为”已分配”
✅ 创建完成后自动更新工单状态为”已分配”
- 工单处理页面增强 (process.vue:178-249)
✅ 添加了”已分配”状态的处理逻辑
✅ 当工单处于”已分配”状态时,显示提示信息和”查看子任务进度”按钮
✅ 当工单处于”执行中”状态且有子任务时,显示提示信息,引导用户等待所有子任务完成
✅ 添加了检查子任务的功能(checkHasSubtasks)
工作流程
根据需求文档,实现的工作流程如下:
graph TD
A[待处理工单] –>|项目经理点击拆分分配| B[拆分分配对话框]
B –>|添加多个子任务| C[为每个子任务分配技术员]
C –>|提交| D[工单状态变更为已分配]
D –>|技术员接收| E[技术员处理子任务]
E –>|所有子任务完成| F[提交工单处理结论]
F –> G[工单完成]核心功能
只针对非维护保养工单:维护保养工单已有自己的处理流程,拆分分配功能只对其他类型(需求变更、故障报修等)工单生效
权限控制:只有管理员和项目经理可以拆分分配工单
状态流转:
- 待处理 → 已分配(拆分分配后)
- 已分配 → 执行中(技术员接收后)
- 执行中 → 已完成(所有子任务完成后)
技术员分配:使用现有的 TechnicianAssign 组件,支持:
- 查看技术员技能等级
- 查看技术员工作状态
- 查看技术员任务负载
- 自动按负载排序
文件清单
修改的文件:
ui/src/views/business/workOrder/index.vue - 工单列表页
ui/src/views/business/workOrder/process.vue - 工单处理页
新增的文件:
ui/src/views/business/workOrder/components/split-assign-dialog.vue - 拆分分配对话框组件
最后编辑:聂盼盼 更新时间:2025-10-28 19:53