diff --git a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue index 33f7b92..7082d82 100644 --- a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue +++ b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue @@ -125,22 +125,28 @@ - + + + + 否(分配部门经办人) + 是(办结) + + + + - + - - - - - - - 保存经办人 - + + + + + + 保存 @@ -190,6 +196,7 @@ const wrapperCol = { xs: { span: 24 }, sm: { span: 17 } }; const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } }; const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } }; + const wideActionWrapperCol = { xs: { span: 24 }, sm: { span: 21, offset: 3 } }; const feedbackModalRef = ref(); const loading = ref(false); @@ -198,6 +205,7 @@ const showBaseInfoDetail = ref(false); const feedbackList = ref([]); const subApproveUser = ref(''); + const isEnd = ref(0); const mainForm = reactive>({ id: '', @@ -242,6 +250,7 @@ const showProcessHandle = computed(() => props.formBpm && !!props.formData?.taskId); const showAddFeedback = computed(() => String(props.formData?.extendUrlParams?.addfeedback ?? '') === '1'); const showSubApproveUser = computed(() => String(props.formData?.extendUrlParams?.selectuser ?? '') === '1'); + const showSubApproveUserSelector = computed(() => showSubApproveUser.value && String(isEnd.value) !== '1'); const processInfo = computed(() => ({ taskId: props.formData?.taskId, @@ -267,6 +276,14 @@ () => initFormData() ); + watch( + () => props.formData?.vars?.isEnd, + (value) => { + isEnd.value = String(value ?? '0') === '1' ? 1 : 0; + }, + { immediate: true } + ); + async function initFormData() { const dataId = props.formData?.dataId; if (!dataId) { @@ -335,35 +352,48 @@ async function saveSubApproveUserVariable() { const processInstanceId = processInfo.value.processInstanceId; + const isEndValue = String(isEnd.value); const usernameValue = normalizeUsernameList(subApproveUser.value); if (!processInstanceId) { createMessage.warning('流程实例ID不能为空'); return; } - if (!usernameValue) { + if (isEndValue !== '1' && !usernameValue) { createMessage.warning('请选择部门经办人'); return; } savingSubApproveUser.value = true; try { - const res = await setProcessVariable({ - processInstanceId, - taskId: processInfo.value.taskId, - local: true, - varField: 'subApproveUser', - varVal: usernameValue, - }); - if (res.success) { - createMessage.success(res.message || '保存成功'); - } else { - createMessage.warning(res.message || '保存失败'); + const isEndResult = await saveProcessVariable('isEnd', isEndValue); + if (!isEndResult?.success) { + createMessage.warning(isEndResult.message || '保存失败'); + return; } + + if (isEndValue !== '1') { + const subApproveUserResult = await saveProcessVariable('subApproveUser', usernameValue); + if (!subApproveUserResult?.success) { + createMessage.warning(subApproveUserResult.message || '保存失败'); + return; + } + } + createMessage.success('保存成功'); } finally { savingSubApproveUser.value = false; } } + function saveProcessVariable(varField: string, varVal: any) { + return setProcessVariable({ + processInstanceId: processInfo.value.processInstanceId, + taskId: processInfo.value.taskId, + local: true, + varField, + varVal, + }); + } + function normalizeUsernameList(value: string) { return String(value || '') .split(',')