tuqin
2 天以前 8806274c84a5fa0a9fa9147139cf231d0b774c32
feat(bpm): 流程设计默认生成「发起人 → 审批人 → 结束」三节点

问题:新建/修改流程模型时,第三步「流程设计」默认只有「发起人 → 结束」两个节点,
中间没有审批人,画布看着是空的,无法直接配置审批。

改动:updateModel() 初始化默认节点树时,在发起人与结束之间插入一个「审批人」节点
(type=USER_TASK_NODE(11)),审批人默认指定为超级管理员
(candidateStrategy=30 指定成员,candidateParam=admin 的 userId,showText 显示指定成员:xxx)。

效果:
- 新建模型时直接看到 发起人 → 审批人 → 结束 三节点,开箱即可保存发布
- 修改 simple_model 为空的旧模型时同样生效
- 已配置过 simple_model 的模型保持原样,不会被覆盖
- 用户可随时点开审批人节点改选实际审批人
已修改1个文件
28 ■■■■■ 文件已修改
src/views/bpm/components/simple-process-design/components/simple-process-designer.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/bpm/components/simple-process-design/components/simple-process-designer.vue
@@ -122,11 +122,15 @@
// 添加更新模型的方法
function updateModel() {
  if (!processNodeTree.value) {
    processNodeTree.value = {
      name: '发起人',
      type: BpmNodeTypeEnum.START_USER_NODE,
      id: NodeId.START_USER_NODE_ID,
      // 默认为空,需要进行配置
    // 默认流程结构:发起人 → 审批人 → 结束
    // 审批人默认指定为超级管理员,保证新建/修改后三节点齐全且可直接保存(用户可自行调整审批人)
    const adminUser = userOptions.value.find(
      (user: SystemUserApi.User) => user.username === 'admin',
    );
    const approveNode: SimpleFlowNode = {
      id: `Activity_${Date.now()}_${Math.floor(Math.random() * 10000)}`,
      name: '审批人',
      type: BpmNodeTypeEnum.USER_TASK_NODE,
      showText: '',
      childNode: {
        id: NodeId.END_EVENT_NODE_ID,
@@ -134,6 +138,20 @@
        type: BpmNodeTypeEnum.END_EVENT_NODE,
      },
    };
    if (adminUser) {
      // candidateStrategy 30 = 指定成员,指向超级管理员
      approveNode.candidateStrategy = 30;
      approveNode.candidateParam = String(adminUser.id);
      approveNode.showText = `指定成员:${adminUser.nickname || adminUser.username}`;
    }
    processNodeTree.value = {
      name: '发起人',
      type: BpmNodeTypeEnum.START_USER_NODE,
      id: NodeId.START_USER_NODE_ID,
      // 默认为空,需要进行配置
      showText: '',
      childNode: approveNode,
    };
    // 初始化时也触发一次保存
    saveSimpleFlowModel(processNodeTree.value);
  }