# MES 产品项目接入 BPM 审批 - 前端联调方案 ## 涉及页面 - 生产管控-产品设计-产品项目 列表页(`src/views/mes/pd/project/index.vue`) - 产品项目 详情页(`src/views/mes/pd/project/detail/index.vue`) - 产品项目 流程进度组件(`src/views/mes/pd/project/modules/workflow-timeline.vue`) ## 业务流程与数据带入 1. 待审核(2) → 列表/详情点「提交审批」:先调 `GET /mes/pd/project/approve-process-list` 获取可用 BPM 流程 → 打开流程选择弹窗 → 选中流程后调 `PUT /mes/pd/project/submit-approval?id={id}&processDefinitionKey={key}` → 项目状态变为 **审批中(5)** 2. BPM 后台审批通过 → 后端监听器回调 → 项目状态变为 **待归档(3)**;审批驳回/取消 → 状态回到 **待审核(2)**,可重新提交 3. 审批中(5) → 列表/详情显示「查看审批」按钮 → 跳转 BPM 流程详情页查看审批进度 4. 待归档(3) → 点「归档」→ `PUT /mes/pd/project/archive?id={id}` → 状态变为 **已归档(4)** ## API | 方法 | 路径 | 说明 | |------|------|------| | GET | /mes/pd/project/approve-process-list | 获得可用 BPM 审批流程列表 | | PUT | /mes/pd/project/submit-approval | 提交审批(待审核→审批中) | | PUT | /mes/pd/project/archive | 归档(待归档→已归档) | **请求参数(submit-approval):** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 项目编号 | | processDefinitionKey | String | 是 | 选中的 BPM 流程定义 Key | **响应字段变更(/get、/page):** | 字段 | 类型 | 说明 | |------|------|------| | processInstanceId | String | BPM 流程实例编号,审批中及以后有值 | **响应示例(approve-process-list):** ```json { "code": 0, "data": [ { "id": "xxx", "name": "产品项目审批流程", "key": "mes-pd-project-audit" } ] } ``` ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | 状态 | 列表、详情 | 新增字典值「审批中」(value=5),列表 `CellDict` 自动渲染 | | processInstanceId | 列表/详情「查看审批」 | 有值才显示「查看审批」按钮 | ## 页面改动 ### 1. 列表页 index.vue - 「审核」按钮改为「提交审批」:`ifShow` 仍为 `status === PENDING_AUDIT`,点击先查流程列表(空则提示「暂无可用审批流程,请先配置 BPM 流程」),有则打开流程选择弹窗 - 新增「查看审批」按钮:`ifShow` 为 `status === APPROVING` 且 `processInstanceId` 有值,点击跳 BPM 流程详情 - 新增流程选择弹窗组件 `process-select-modal.vue`(Select 下拉选流程,默认选第一个,确认后调 submit-approval) ### 2. 详情页 detail/index.vue - 「审核通过」按钮改为「提交审批」,逻辑同上,成功后刷新详情 - 新增「查看审批」按钮:`ifShow` 为审批中状态,点击跳 BPM 流程详情 - 顶部按钮区新增审批中判断 ### 3. 流程进度组件 workflow-timeline.vue - 步骤由 5 步扩为 6 步:待发布 → 待上传 → 待审核 → **审批中** → 待归档 → 已归档 - 状态值到步骤索引的映射需显式处理(审批中 value=5 插在待审核之后) ## 业务规则说明 | 场景 | 规则 | |------|------| | 提交审批 | 仅待审核(2)状态可提交;若项目下存在未审核的设计资料,后端返回错误「该项目下存在未审核的资料」 | | 审批通过 | 状态 → 待归档(3),可执行归档 | | 审批驳回/取消 | 状态 → 待审核(2),可修改后重新提交 | | 归档 | 仅待归档(3)状态可归档,归档后生成台账记录、项目不可再修改 | ## 注意事项 - 需先在 BPM 后台手工部署审批流程(流程 key=`mes-pd-project-audit`,分类=`mes_pd_project_approve`),否则「提交审批」提示暂无可用流程 - 未提交审批(processInstanceId 为空)时点「查看审批」应提示「该项目尚未提交审批」 - 历史数据 status 0-4 不受影响;时间线组件需兼容状态值到步骤的非连续映射