0xD800
195 天前
从后端视角来看,需要表单的有两个接口:
发起流程:startProcessInstanceXX
审核流程:taskService.complete
参数都是 Map<String, Object>,也就是表单形式无所谓,你只需要前端把这个 Map<String, Object>传给你,你再传给流程引擎(Camunda)即可。
举例子:
具体业务要求可能会有表单字段的权限控制,不同节点展现的表单不一样。
此时可以基于 bpmnjs 扩展设计器,在 userTask 上绑定表单标识,然后前端通过表单标识来决定渲染哪个表单即可。
实际运作流程:
1. 流程管理员配置好流程图和启动表单及各个用户任务的表单后
2. 普通业务员发起流程
2.1 通过流程标识去获取启动表单,
2.2 输入表单内容,并提交发起流程接口(runtimeService.startProcessInstanceByXX)
3. 审批人查询待办获取到任务后,通过 taskId 和 processInstanceId 拿到该 userTask 绑定的表单
4. 审批人输入表单内容后提交审批( taskService.complete 接口)