From 0e452aa1a7ad4a4c7655b41b5b2b5ddab86fb5e9 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 6 Mar 2025 09:43:22 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E3=80=91BPM=EF=BC=9A=E4=B8=8B=E4=B8=80=E4=B8=AA=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpm/processInstance/create/ProcessDefinitionDetail.vue | 3 +-- .../detail/ProcessInstanceOperationButton.vue | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue index 689c556d..49ce3b05 100644 --- a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue +++ b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue @@ -117,7 +117,6 @@ const activityNodes = ref([]) // 审批 /** 设置表单信息、获取流程图数据 **/ const initProcessInfo = async (row: any, formVariables?: any) => { - // 重置指定审批人 startUserSelectTasks.value = [] startUserSelectAssignees.value = {} @@ -144,7 +143,7 @@ const initProcessInfo = async (row: any, formVariables?: any) => { id: row.id, processVariablesStr: JSON.stringify(formVariables) }) - // } + // 加载流程图 const processDefinitionDetail = await DefinitionApi.getProcessDefinition(row.id) if (processDefinitionDetail) { diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue index 74dfbb32..f69035f9 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue @@ -729,11 +729,12 @@ const initNextAssigneesFormField = async () => { }) if (data && data.length > 0) { data.forEach((node: any) => { - // 如果是发起人自选,并且没有审批人 或者 是审批人自选 if ( + // 情况一:当前节点没有审批人,并且是发起人自选 (isEmpty(node.tasks) && isEmpty(node.candidateUsers) && CandidateStrategy.START_USER_SELECT === node.candidateStrategy) || + // 情况二:当前节点是审批人自选 CandidateStrategy.APPROVE_USER_SELECT === node.candidateStrategy ) { nextAssigneesActivityNode.value.push(node) @@ -748,11 +749,13 @@ const selectNextAssigneesConfirm = (id: string, userList: any[]) => { } /** 审批通过时,校验每个自选审批人的节点是否都已配置了审批人 */ const validateNextAssignees = () => { + // TODO @小北:可以考虑 Object.keys(nextAssigneesActivityNode.value).length === 0) return true;减少括号层级 // 如果需要自选审批人,则校验自选审批人 if (Object.keys(nextAssigneesActivityNode.value).length > 0) { // 校验每个节点是否都已配置审批人 for (const item of nextAssigneesActivityNode.value) { if (isEmpty(approveReasonForm.nextAssignees[item.id])) { + // TODO @小北:可以打印下节点名,嘿嘿。 message.warning('下一个节点的审批人不能为空!') return false }