From b53bfbd49e37dddab44d205956c33e31295d5228 Mon Sep 17 00:00:00 2001 From: smallNorthLee <18210040298@163.com> Date: Tue, 18 Feb 2025 22:40:47 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E7=9B=91=E5=90=AC=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E5=8F=98=E9=87=8F=E5=80=BC=EF=BC=8C=E9=A2=84=E6=B5=8B?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E8=BD=A8=E8=BF=B9=E3=80=82=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=85=8D=E7=BD=AE=E5=AE=A1=E6=89=B9=E4=BA=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create/ProcessDefinitionDetail.vue | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue index dbecc508..87ee5e84 100644 --- a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue +++ b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue @@ -108,6 +108,7 @@ const fApi = ref() // 指定审批人 const startUserSelectTasks: any = ref([]) // 发起人需要选择审批人或抄送人的任务列表 const startUserSelectAssignees = ref({}) // 发起人选择审批人的数据 +const hisStartUserSelectAssignees = ref({}) // 历史发起人选择审批人的数据 const bpmnXML: any = ref(null) // BPMN 数据 const simpleJson = ref() // Simple 设计器数据 json 格式 @@ -154,13 +155,15 @@ const initProcessInfo = async (row: any, formVariables?: any) => { // 这里暂时无需加载流程图,因为跳出到另外个 Tab; } } + // 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 watch( detailForm.value, (newValue) => { if (newValue && Object.keys(newValue.value).length > 0) { - // startUserSelectTasks.value = [] - // startUserSelectAssignees.value = [] + //记录之前的节点审批人 + hisStartUserSelectAssignees.value = startUserSelectAssignees.value + startUserSelectAssignees.value = {} getApprovalDetail({ id: props.selectProcessDefinition.id, processVariablesStr: newValue.value @@ -186,19 +189,24 @@ const getApprovalDetail = async (row: any) => { message.error('查询不到审批详情信息!') return } + // 获取审批节点,显示 Timeline 的数据 + activityNodes.value = data.activityNodes // 获取发起人自选的任务 startUserSelectTasks.value = data.activityNodes?.filter( (node: ApprovalNodeInfo) => CandidateStrategy.START_USER_SELECT === node.candidateStrategy ) + if (startUserSelectTasks.value?.length > 0) { for (const node of startUserSelectTasks.value) { - startUserSelectAssignees.value[node.id] = [] + if (hisStartUserSelectAssignees.value[node.id] && hisStartUserSelectAssignees.value[node.id].length > 0) { + startUserSelectAssignees.value[node.id] = hisStartUserSelectAssignees.value[node.id] + } else { + startUserSelectAssignees.value[node.id] = [] + } } } - - // 获取审批节点,显示 Timeline 的数据 - activityNodes.value = data.activityNodes + // 获取表单字段权限 const formFieldsPermission = data.formFieldsPermission // 设置表单字段权限 @@ -236,7 +244,6 @@ const submitForm = async () => { } // 流程表单校验 await fApi.value.validate() - // debugger // 如果有指定审批人,需要校验 if (startUserSelectTasks.value?.length > 0) { for (const userTask of startUserSelectTasks.value) {