tuqin
2 天以前 adffcb4ac80fdf736bde01eb56711c161bf602ba
fix(bpm): 属性面板补上「审批人」配置,解决流程无法发布

现象:流程模型保存后点「发布」报
「部署流程失败,原因:用户任务(王)未配置审批人」

排查:
- 查库确认「合同审批」模型里 userTask=1(节点名「王」),但 candidateStrategy 配置数为 0,
即节点确实没配审批人。
- 再看前端属性面板 PropertiesPanel.vue,面板里挂了 base/form/task/multiInstance/
listeners/extensions/customConfig/other/timeEvent,**唯独没有挂载 UserTask.vue**。
而「规则类型 / 指定成员 / 指定角色 / 指定岗位 / 部门负责人 / 发起人本人…」这些
审批人配置项全在 UserTask.vue 里。
结论:客户在设计器里根本看不到审批人配置项,怎么操作都配不上,发布必然失败。

修复:在 PropertiesPanel.vue 中新增 CollapsePanel「审批人」(key=candidate,
仅 elementType === 'UserTask' 时显示),挂载 UserTask 组件。
依赖已核对:UserTask 只 inject('prefix'),而 PropertiesPanel 已有 provide('prefix');
其使用的 useFormFieldsPermission 对 formType/formFields 都有默认值兜底,不会因缺失报错。

产物校验:
PropertiesPanel-*.js 含「审批人」面板且引用 UserTask
UserTask-*.js 含「规则类型」
部署后入口 index-index-DHlLXts3.js
已修改1个文件
15 ■■■■■ 文件已修改
src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/bpm/components/bpmn-process-designer/package/penal/PropertiesPanel.vue
@@ -20,6 +20,10 @@
import SignalAndMassage from './signal-message/SignalAndMessage.vue';
import { getTaskCollapseItemName, isTaskCollapseItemShow } from './task/data';
import ElementTask from './task/ElementTask.vue';
// 审批人配置(规则类型:指定成员/角色/岗位/部门负责人/发起人本人…)
// 注意:这个组件此前没有被挂到面板上,导致流程设计里根本看不到审批人配置项,
// 保存后在「发布」时必然报「用户任务(xxx)未配置审批人」。
import UserTask from './task/task-components/UserTask.vue';
import TimeEventConfig from './time-event-config/TimeEventConfig.vue';
defineOptions({ name: 'MyPropertiesPanel' });
@@ -329,6 +333,17 @@
        </template>
        <ElementTask :id="elementId" :type="elementType" />
      </CollapsePanel>
      <!-- 审批人:用户任务必须配置,否则「发布」时报「用户任务(xxx)未配置审批人」 -->
      <CollapsePanel
        key="candidate"
        header="审批人"
        v-if="elementType === 'UserTask'"
      >
        <template #extra>
          <IconifyIcon icon="ep:user-filled" />
        </template>
        <UserTask :id="elementId" :type="elementType" />
      </CollapsePanel>
      <CollapsePanel
        key="multiInstance"
        header="多人审批方式"