# MES 生产工单审批集成 ## 涉及页面 - 生产工单列表页面 (`views/mes/pro/workorder/index.vue`) - 生产工单详情/编辑页面 (`views/mes/pro/workorder/WorkOrderForm.vue`) ## API | 方法 | 路径 | 说明 | |------|------|------| | PUT | /mes/pro/work-order/submit | 提交工单审批 | **请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工单编号(Query 参数) | **响应:** `{ "code": 200, "msg": "操作成功", "data": true }` ## 工单状态变更说明 | 原状态 | 新状态 | 触发条件 | |--------|--------|----------| | 草稿(0) | 审批中(1) | 提交审批 | | 审批中(1) | 已确认(2) | 审批通过 | | 审批中(1) | 审批不通过(5) | 审批不通过 | | 审批中(1) | 草稿(0) | 审批取消 | ## 前端修改点 ### 1. 列表页面 - 添加"提交审批"按钮 **位置:** `views/mes/pro/workorder/index.vue` ```html ``` ### 2. data 数据 ```js // 状态字典 const statusDict = ref([ { label: '草稿', value: 0, tagType: 'info' }, { label: '审批中', value: 1, tagType: 'warning' }, { label: '已确认', value: 2, tagType: 'success' }, { label: '已完成', value: 3, tagType: 'primary' }, { label: '已取消', value: 4, tagType: 'danger' }, { label: '审批不通过', value: 5, tagType: 'danger' } ]) ``` ### 3. 方法 ```js import { submitWorkOrder } from '@/api/mes/pro/workorder' // 提交审批 const handleSubmit = async (id: number) => { try { await message.confirm('确认提交该工单进行审批?') await submitWorkOrder(id) message.success('提交成功') await getList() } catch (error) { console.error(error) } } ``` ### 4. API 方法 **文件:** `api/mes/pro/workorder/index.ts` ```ts // 提交工单审批 export const submitWorkOrder = (id: number) => { return request.put({ url: '/mes/pro/work-order/submit', params: { id } }) } ``` ### 5. 状态标签显示 ```html ``` ### 6. 表单状态禁用逻辑 **编辑表单:** 只有草稿状态(0)和审批不通过状态(5)才能编辑 ```js // 判断是否可编辑 const isEditable = computed(() => { return formData.value.status === 0 || formData.value.status === 5 }) ``` ```html ``` ## 注意事项 1. **状态流转**:草稿 → 提交审批 → 审批中 → 审批通过(已确认) / 审批不通过 2. **审批不通过后**:工单状态变为"审批不通过"(5),可以重新编辑后再次提交审批 3. **权限控制**:提交审批使用 `mes:pro-work-order:update` 权限,与编辑权限一致 4. **按钮显示**:根据工单状态动态显示操作按钮,避免误操作 5. **字典数据**:确保系统字典 `mes_pro_work_order_status` 已添加审批中(1)和审批不通过(5)状态