From 2ff1bccbaff7be85c11669247073f27f1ebee329 Mon Sep 17 00:00:00 2001 From: Lesan <1960681385@qq.com> Date: Wed, 26 Feb 2025 09:38:10 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimpleProcessDesignerV2/src/consts.ts | 39 ++++++++++-- .../nodes-config/ChildProcessNodeConfig.vue | 62 ++++++++++++------- 2 files changed, 76 insertions(+), 25 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts index c7285f93..b8d08b79 100644 --- a/src/components/SimpleProcessDesignerV2/src/consts.ts +++ b/src/components/SimpleProcessDesignerV2/src/consts.ts @@ -824,17 +824,48 @@ export type ChildProcessSetting = { } export type IOParameter = { source: string - sourceExpression: string target: string - targetExpression: string } export type StartUserSetting = { - type: number + type: ChildProcessStartUserTypeEnum formField?: string - emptyType?: number + emptyType?: ChildProcessStartUserEmptyTypeEnum } export type TimeoutSetting = { enable: boolean, type?: DelayTypeEnum, timeExpression?: string, } +export enum ChildProcessStartUserTypeEnum { + /** + * 同主流程发起人 + */ + MAIN_PROCESS_START_USER = 1, + /** + * 表单 + */ + FROM_FORM = 2, +} +export const CHILD_PROCESS_START_USER_TYPE = [ + { label: '同主流程发起人', value: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER }, + { label: '表单', value: ChildProcessStartUserTypeEnum.FROM_FORM } +] +export enum ChildProcessStartUserEmptyTypeEnum { + /** + * 同主流程发起人 + */ + MAIN_PROCESS_START_USER = 1, + /** + * 子流程管理员 + */ + CHILD_PROCESS_ADMIN = 2, + /** + * 主流程管理员 + */ + MAIN_PROCESS_ADMIN = 3, +} +export const CHILD_PROCESS_START_USER_EMPTY_TYPE = [ + { label: '同主流程发起人', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER }, + { label: '子流程管理员', value: ChildProcessStartUserEmptyTypeEnum.CHILD_PROCESS_ADMIN }, + { label: '主流程管理员', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_ADMIN } +] diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue index 9e2ce4a2..0289151b 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue @@ -95,7 +95,7 @@ @@ -103,7 +103,6 @@ 添加一行 - @@ -160,11 +159,13 @@ 添加一行 - - 同主流程发起人 - 表单 + + {{ item.label }} - 同主流程发起人 - 子流程管理员 - 主流程管理员 + + {{ item.label }} ({ async: false, calledProcessDefinitionKey: '', skipStartUserNode: false, inVariables: [], outVariables: [], - startUserType: 1, - startUserEmptyType: 1, + startUserType: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER, + startUserEmptyType: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER, startUserFormField: '', timeoutEnable: false, timeoutType: DelayTypeEnum.FIXED_TIME_DURATION, @@ -334,9 +357,8 @@ const saveConfig = async () => { if (!formRef) return false const valid = await formRef.value.validate() if (!valid) return false - // TODO @lesan:这里的 option 黄色告警,也处理下哈 const childInfo = childProcessOptions.value.find( - (option) => option.key === configForm.value.calledProcessDefinitionKey + (option: any) => option.key === configForm.value.calledProcessDefinitionKey ) currentNode.value.name = nodeName.value! if (currentNode.value.childProcessSetting) { @@ -378,7 +400,6 @@ const saveConfig = async () => { return true } // 显示子流程节点配置, 由父组件传过来 -// TODO @lesan:inVariables、outVariables 红色告警 const showChildProcessNodeConfig = (node: SimpleFlowNode) => { nodeName.value = node.name if (node.childProcessSetting) { @@ -421,15 +442,14 @@ const showChildProcessNodeConfig = (node: SimpleFlowNode) => { defineExpose({ openDrawer, showChildProcessNodeConfig }) // 暴露方法给父组件 -// TODO @lesan:这里的 arr 黄色告警,也处理下哈,可以用 cursor quick fix 哈 -const addVariable = (arr) => { - arr.push({ +const addVariable = (arr?: IOParameter[]) => { + arr?.push({ source: '', target: '' }) } -const deleteVariable = (arr, index: number) => { - arr.splice(index, 1) +const deleteVariable = (index: number, arr?: IOParameter[]) => { + arr?.splice(index, 1) } const handleCalledElementChange = () => { configForm.value.inVariables = [] From bad11ff29bb57dd1119a4a16c4c201faa5fd6cea Mon Sep 17 00:00:00 2001 From: Lesan <1960681385@qq.com> Date: Wed, 26 Feb 2025 15:23:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=AD=90=E6=B5=81=E7=A8=8B-?= =?UTF-8?q?=E5=A4=9A=E5=AE=9E=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/NodeHandler.vue | 3 + .../SimpleProcessDesignerV2/src/consts.ts | 27 ++++ .../nodes-config/ChildProcessNodeConfig.vue | 125 +++++++++++++++++- 3 files changed, 148 insertions(+), 7 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue index 25532344..25e4ed74 100644 --- a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue +++ b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue @@ -306,6 +306,9 @@ const addNode = (type: number) => { }, timeoutSetting: { enable: false + }, + multiInstanceSetting: { + enable: false } } } diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts index b8d08b79..e74ad58a 100644 --- a/src/components/SimpleProcessDesignerV2/src/consts.ts +++ b/src/components/SimpleProcessDesignerV2/src/consts.ts @@ -821,6 +821,7 @@ export type ChildProcessSetting = { skipStartUserNode: boolean, startUserSetting: StartUserSetting, timeoutSetting: TimeoutSetting, + multiInstanceSetting: MultiInstanceSetting, } export type IOParameter = { source: string @@ -836,6 +837,13 @@ export type TimeoutSetting = { type?: DelayTypeEnum, timeExpression?: string, } +export type MultiInstanceSetting = { + enable: boolean, + sequential?: boolean, + completeRatio?: number, + sourceType?: ChildProcessMultiInstanceSourceTypeEnum, + source?: string, +} export enum ChildProcessStartUserTypeEnum { /** * 同主流程发起人 @@ -869,3 +877,22 @@ export const CHILD_PROCESS_START_USER_EMPTY_TYPE = [ { label: '子流程管理员', value: ChildProcessStartUserEmptyTypeEnum.CHILD_PROCESS_ADMIN }, { label: '主流程管理员', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_ADMIN } ] +export enum ChildProcessMultiInstanceSourceTypeEnum { + /** + * 固定数量 + */ + FIXED_QUANTITY = 1, + /** + * 数字表单 + */ + DIGITAL_FORM = 2, + /** + * 多项表单 + */ + MULTI_FORM = 3, +} +export const CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE = [ + { label: '固定数量', value: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY }, + { label: '数字表单', value: ChildProcessMultiInstanceSourceTypeEnum.DIGITAL_FORM }, + { label: '多项表单', value: ChildProcessMultiInstanceSourceTypeEnum.MULTI_FORM } +] diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue index 0289151b..b8f3172e 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue @@ -164,8 +164,10 @@ - {{ item.label }} + :value="item.value" + > + {{ item.label }} - {{ item.label }} + :value="item.value" + > + {{ item.label }} 后进入下一节点 + + 多实例设置 + + + +
+ + + + + 完成比例(%) + + + + 多实例来源 + + + + + + + + + + + + + + + + + +
@@ -276,7 +342,9 @@ import { ChildProcessStartUserTypeEnum, CHILD_PROCESS_START_USER_TYPE, ChildProcessStartUserEmptyTypeEnum, - CHILD_PROCESS_START_USER_EMPTY_TYPE + CHILD_PROCESS_START_USER_EMPTY_TYPE, + CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE, + ChildProcessMultiInstanceSourceTypeEnum } from '../consts' import { useWatchNode, useDrawer, useNodeName, useFormFieldsAndStartUser } from '../node' import { parseFormFields } from '@/components/FormCreate/src/utils' @@ -315,7 +383,8 @@ const formRules = reactive({ timeoutEnable: [{ required: true, message: '超时设置是否开启不能为空', trigger: 'change' }], timeoutType: [{ required: true, message: '超时设置时间不能为空', trigger: 'change' }], timeDuration: [{ required: true, message: '超时设置时间不能为空', trigger: 'change' }], - dateTime: [{ required: true, message: '超时设置时间不能为空', trigger: 'change' }] + dateTime: [{ required: true, message: '超时设置时间不能为空', trigger: 'change' }], + multiInstanceEnable: [{ required: true, message: '多实例设置不能为空', trigger: 'change' }] }) type ChildProcessFormType = { async: boolean @@ -331,6 +400,11 @@ type ChildProcessFormType = { timeDuration: number timeUnit: TimeUnitType dateTime: string + multiInstanceEnable: boolean + sequential: boolean + completeRatio: number + multiInstanceSourceType: ChildProcessMultiInstanceSourceTypeEnum + multiInstanceSource: string } const configForm = ref({ async: false, @@ -345,10 +419,21 @@ const configForm = ref({ timeoutType: DelayTypeEnum.FIXED_TIME_DURATION, timeDuration: 1, timeUnit: TimeUnitType.HOUR, - dateTime: '' + dateTime: '', + multiInstanceEnable: false, + sequential: false, + completeRatio: 100, + multiInstanceSourceType: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY, + multiInstanceSource: '' }) const childProcessOptions = ref() const formFieldOptions = useFormFieldsAndStartUser() +const digitalFormFieldOptions = computed(() => { + return formFieldOptions.filter((item) => item.type === 'inputNumber') +}) +const multiFormFieldOptions = computed(() => { + return formFieldOptions.filter((item) => item.type === 'select' || item.type === 'checkbox') +}) const childFormFieldOptions = ref() // 保存配置 @@ -393,6 +478,19 @@ const saveConfig = async () => { configForm.value.dateTime } } + // 8. 多实例设置 + currentNode.value.childProcessSetting.multiInstanceSetting = { + enable: configForm.value.multiInstanceEnable + } + if (configForm.value.multiInstanceEnable) { + currentNode.value.childProcessSetting.multiInstanceSetting.sequential = configForm.value.sequential + currentNode.value.childProcessSetting.multiInstanceSetting.completeRatio = + configForm.value.completeRatio + currentNode.value.childProcessSetting.multiInstanceSetting.sourceType = + configForm.value.multiInstanceSourceType + currentNode.value.childProcessSetting.multiInstanceSetting.source = + configForm.value.multiInstanceSource + } } currentNode.value.showText = `调用子流程:${childInfo.name}` @@ -436,6 +534,16 @@ const showChildProcessNodeConfig = (node: SimpleFlowNode) => { configForm.value.dateTime = node.childProcessSetting.timeoutSetting.timeExpression ?? '' } } + // 8. 多实例设置 + configForm.value.multiInstanceEnable = + node.childProcessSetting.multiInstanceSetting.enable ?? false + if (configForm.value.multiInstanceEnable) { + configForm.value.sequential = node.childProcessSetting.multiInstanceSetting.sequential ?? false + configForm.value.completeRatio = node.childProcessSetting.multiInstanceSetting.completeRatio ?? 100 + configForm.value.multiInstanceSourceType = + node.childProcessSetting.multiInstanceSetting.sourceType ?? ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY + configForm.value.multiInstanceSource = node.childProcessSetting.multiInstanceSetting.source ?? '' + } } loadFormInfo() } @@ -481,6 +589,9 @@ const getIsoTimeDuration = () => { } return strTimeDuration } +const handleMultiInstanceSourceTypeChange = () => { + configForm.value.multiInstanceSource = '' +} onMounted(async () => { childProcessOptions.value = await getModelList(undefined) From 9994059cad9adde3e54968d03bf68efcb21b744c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 26 Feb 2025 21:59:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84?= =?UTF-8?q?=E5=AE=A1=E3=80=91BPM=EF=BC=9A=E5=AD=90=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E5=A4=9A=E5=AE=9E=E4=BE=8B=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimpleProcessDesignerV2/src/consts.ts | 40 +++++++------- .../nodes-config/ChildProcessNodeConfig.vue | 32 ++++++++---- .../src/nodes-config/ConditionNodeConfig.vue | 52 ++++++++++++------- .../create/ProcessDefinitionDetail.vue | 37 +++++++------ 4 files changed, 92 insertions(+), 69 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts index e74ad58a..2535baf9 100644 --- a/src/components/SimpleProcessDesignerV2/src/consts.ts +++ b/src/components/SimpleProcessDesignerV2/src/consts.ts @@ -815,13 +815,13 @@ export const TRIGGER_TYPES: DictDataVO[] = [ export type ChildProcessSetting = { calledProcessDefinitionKey: string calledProcessDefinitionName: string - async: boolean, - inVariables?: IOParameter[], - outVariables?: IOParameter[], - skipStartUserNode: boolean, - startUserSetting: StartUserSetting, - timeoutSetting: TimeoutSetting, - multiInstanceSetting: MultiInstanceSetting, + async: boolean + inVariables?: IOParameter[] + outVariables?: IOParameter[] + skipStartUserNode: boolean + startUserSetting: StartUserSetting + timeoutSetting: TimeoutSetting + multiInstanceSetting: MultiInstanceSetting } export type IOParameter = { source: string @@ -833,16 +833,16 @@ export type StartUserSetting = { emptyType?: ChildProcessStartUserEmptyTypeEnum } export type TimeoutSetting = { - enable: boolean, - type?: DelayTypeEnum, - timeExpression?: string, + enable: boolean + type?: DelayTypeEnum + timeExpression?: string } export type MultiInstanceSetting = { - enable: boolean, - sequential?: boolean, - completeRatio?: number, - sourceType?: ChildProcessMultiInstanceSourceTypeEnum, - source?: string, + enable: boolean + sequential?: boolean + completeRatio?: number + sourceType?: ChildProcessMultiInstanceSourceTypeEnum + source?: string } export enum ChildProcessStartUserTypeEnum { /** @@ -852,7 +852,7 @@ export enum ChildProcessStartUserTypeEnum { /** * 表单 */ - FROM_FORM = 2, + FROM_FORM = 2 } export const CHILD_PROCESS_START_USER_TYPE = [ { label: '同主流程发起人', value: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER }, @@ -870,7 +870,7 @@ export enum ChildProcessStartUserEmptyTypeEnum { /** * 主流程管理员 */ - MAIN_PROCESS_ADMIN = 3, + MAIN_PROCESS_ADMIN = 3 } export const CHILD_PROCESS_START_USER_EMPTY_TYPE = [ { label: '同主流程发起人', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER }, @@ -889,10 +889,10 @@ export enum ChildProcessMultiInstanceSourceTypeEnum { /** * 多项表单 */ - MULTI_FORM = 3, + MULTI_FORM = 3 } export const CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE = [ { label: '固定数量', value: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY }, - { label: '数字表单', value: ChildProcessMultiInstanceSourceTypeEnum.DIGITAL_FORM }, - { label: '多项表单', value: ChildProcessMultiInstanceSourceTypeEnum.MULTI_FORM } + { label: '数字表单', value: ChildProcessMultiInstanceSourceTypeEnum.DIGITAL_FORM }, // TODO @lesan:DIGITAL 改成 NUMBER,和 Element plus 更接近? + { label: '多项表单', value: ChildProcessMultiInstanceSourceTypeEnum.MULTI_FORM } // TODO @lesan:多选表单?multiple 是这个解释。另外 MULTI => MULTIPLE ] diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue index b8f3172e..abd3a310 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue @@ -166,12 +166,12 @@ :key="item.value" :value="item.value" > - {{ item.label }} + {{ item.label }} + @@ -181,8 +181,8 @@ :key="item.value" :value="item.value" > - {{ item.label }} + {{ item.label }} + 多实例来源 - + + @@ -483,7 +488,8 @@ const saveConfig = async () => { enable: configForm.value.multiInstanceEnable } if (configForm.value.multiInstanceEnable) { - currentNode.value.childProcessSetting.multiInstanceSetting.sequential = configForm.value.sequential + currentNode.value.childProcessSetting.multiInstanceSetting.sequential = + configForm.value.sequential currentNode.value.childProcessSetting.multiInstanceSetting.completeRatio = configForm.value.completeRatio currentNode.value.childProcessSetting.multiInstanceSetting.sourceType = @@ -538,11 +544,15 @@ const showChildProcessNodeConfig = (node: SimpleFlowNode) => { configForm.value.multiInstanceEnable = node.childProcessSetting.multiInstanceSetting.enable ?? false if (configForm.value.multiInstanceEnable) { - configForm.value.sequential = node.childProcessSetting.multiInstanceSetting.sequential ?? false - configForm.value.completeRatio = node.childProcessSetting.multiInstanceSetting.completeRatio ?? 100 + configForm.value.sequential = + node.childProcessSetting.multiInstanceSetting.sequential ?? false + configForm.value.completeRatio = + node.childProcessSetting.multiInstanceSetting.completeRatio ?? 100 configForm.value.multiInstanceSourceType = - node.childProcessSetting.multiInstanceSetting.sourceType ?? ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY - configForm.value.multiInstanceSource = node.childProcessSetting.multiInstanceSetting.source ?? '' + node.childProcessSetting.multiInstanceSetting.sourceType ?? + ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY + configForm.value.multiInstanceSource = + node.childProcessSetting.multiInstanceSetting.source ?? '' } } loadFormInfo() diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue index 63d80d60..9020d655 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue @@ -48,7 +48,7 @@ import { getDefaultConditionNodeName } from '../utils' import { useFormFieldsAndStartUser, getConditionShowText } from '../node' import Condition from './components/Condition.vue' import { cloneDeep } from 'lodash-es' -const message = useMessage() // 消息弹窗 + defineOptions({ name: 'ConditionNodeConfig' }) @@ -69,14 +69,18 @@ const condition = ref({ conditionExpression: '', conditionGroups: { and: true, - conditions: [{ - and: true, - rules: [{ - opCode: '==', - leftSide: '', - rightSide: '' - }] - }] + conditions: [ + { + and: true, + rules: [ + { + opCode: '==', + leftSide: '', + rightSide: '' + } + ] + } + ] } }) const open = () => { @@ -90,14 +94,18 @@ const open = () => { conditionExpression: '', conditionGroups: { and: true, - conditions: [{ - and: true, - rules: [{ - opCode: '==', - leftSide: '', - rightSide: '' - }] - }] + conditions: [ + { + and: true, + rules: [ + { + opCode: '==', + leftSide: '', + rightSide: '' + } + ] + } + ] } } } @@ -162,8 +170,14 @@ const saveConfig = async () => { currentNode.value.conditionSetting = cloneDeep({ ...currentNode.value.conditionSetting, conditionType: condition.value?.conditionType, - conditionExpression: condition.value?.conditionType === ConditionType.EXPRESSION ? condition.value?.conditionExpression : undefined, - conditionGroups: condition.value?.conditionType === ConditionType.RULE ? condition.value?.conditionGroups : undefined + conditionExpression: + condition.value?.conditionType === ConditionType.EXPRESSION + ? condition.value?.conditionExpression + : undefined, + conditionGroups: + condition.value?.conditionType === ConditionType.RULE + ? condition.value?.conditionGroups + : undefined }) } settingVisible.value = false diff --git a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue index 5944c253..0bab7d44 100644 --- a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue +++ b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue @@ -157,25 +157,24 @@ const initProcessInfo = async (row: any, formVariables?: any) => { } /** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */ -// TODO @芋艿:这里我执行填写表单的时候不知道为啥一直报错,先注释了 @lesan:可以和群里的小北说下 -// watch( -// detailForm.value, -// (newValue) => { -// if (newValue && Object.keys(newValue.value).length > 0) { -// // 记录之前的节点审批人 -// tempStartUserSelectAssignees.value = startUserSelectAssignees.value -// startUserSelectAssignees.value = {} -// // 加载最新的审批详情 -// getApprovalDetail({ -// id: props.selectProcessDefinition.id, -// processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON -// }) -// } -// }, -// { -// immediate: true -// } -// ) +watch( + detailForm.value, + (newValue) => { + if (newValue && Object.keys(newValue.value).length > 0) { + // 记录之前的节点审批人 + tempStartUserSelectAssignees.value = startUserSelectAssignees.value + startUserSelectAssignees.value = {} + // 加载最新的审批详情 + getApprovalDetail({ + id: props.selectProcessDefinition.id, + processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON + }) + } + }, + { + immediate: true + } +) /** 获取审批详情 */ const getApprovalDetail = async (row: any) => {