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)
业务流程与数据带入
- 待审核(2) → 列表/详情点「提交审批」:先调
GET /mes/pd/project/approve-process-list 获取可用 BPM 流程 → 打开流程选择弹窗 → 选中流程后调 PUT /mes/pd/project/submit-approval?id={id}&processDefinitionKey={key} → 项目状态变为 审批中(5)
- BPM 后台审批通过 → 后端监听器回调 → 项目状态变为 待归档(3);审批驳回/取消 → 状态回到 待审核(2),可重新提交
- 审批中(5) → 列表/详情显示「查看审批」按钮 → 跳转 BPM 流程详情页查看审批进度
- 待归档(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):
{
"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 不受影响;时间线组件需兼容状态值到步骤的非连续映射