From 506d87ec710e99494f31717f93c2b4fc5fa11a03 Mon Sep 17 00:00:00 2001 From: Lesan <1960681385@qq.com> Date: Sun, 19 Jan 2025 10:15:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=A1=E6=89=B9=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimpleProcessDesignerV2/src/consts.ts | 2 ++ .../SimpleProcessDesignerV2/src/node.ts | 1 + .../src/nodes-config/UserTaskNodeConfig.vue | 9 +++++++++ .../detail/ProcessInstanceOperationButton.vue | 16 +++++++++++----- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts index 8aa3859b..243d0cfe 100644 --- a/src/components/SimpleProcessDesignerV2/src/consts.ts +++ b/src/components/SimpleProcessDesignerV2/src/consts.ts @@ -120,6 +120,8 @@ export interface SimpleFlowNode { defaultFlowId?: string // 签名 signEnable?: boolean + // 审批意见 + reasonRequire?: boolean } // 候选人策略枚举 ( 用于审批节点。抄送节点 ) export enum CandidateStrategy { diff --git a/src/components/SimpleProcessDesignerV2/src/node.ts b/src/components/SimpleProcessDesignerV2/src/node.ts index 79bb5d38..af65bcfc 100644 --- a/src/components/SimpleProcessDesignerV2/src/node.ts +++ b/src/components/SimpleProcessDesignerV2/src/node.ts @@ -149,6 +149,7 @@ export type UserTaskFormType = { taskCompleteListenerHeader?: ListenerParam[] taskCompleteListenerBody?: ListenerParam[] signEnable: boolean + reasonRequire: boolean } export type CopyTaskFormType = { diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue index 8e18b756..6a76beeb 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue @@ -361,6 +361,11 @@ + + 审批意见 + + + @@ -698,6 +703,8 @@ const saveConfig = async () => { } // 签名 currentNode.value.signEnable = configForm.value.signEnable + // 审批意见 + currentNode.value.reasonRequire = configForm.value.reasonRequire currentNode.value.showText = showText settingVisible.value = false @@ -767,6 +774,8 @@ const showUserTaskNodeConfig = (node: SimpleFlowNode) => { configForm.value.taskCompleteListenerBody = node.taskCompleteListener?.body ?? [] // 6. 签名 configForm.value.signEnable = node?.signEnable ?? false + // 7. 审批意见 + configForm.value.reasonRequire = node?.reasonRequire ?? false } defineExpose({ openDrawer, showUserTaskNodeConfig }) // 暴露方法给父组件 diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue index 402644e9..84933878 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue @@ -548,6 +548,7 @@ const approveForm = ref({}) // 审批通过时,额外的补充信息 const approveFormFApi = ref({}) // approveForms 的 fAPi // 审批通过意见表单 +const reasonRequire = ref() const approveFormRef = ref() const signRef = ref() const approveSignFormRef = ref() @@ -555,17 +556,21 @@ const approveReasonForm = reactive({ reason: '', signPicUrl: '' }) -const approveReasonRule = reactive>({ - reason: [{ required: true, message: '审批意见不能为空', trigger: 'blur' }], - signPicUrl: [{ required: true, message: '签名不能为空', trigger: 'change' }] +const approveReasonRule = computed(() => { + return { + reason: [{ required: reasonRequire.value, message: '审批意见不能为空', trigger: 'blur' }], + signPicUrl: [{ required: true, message: '签名不能为空', trigger: 'change' }] + } }) // 拒绝表单 const rejectFormRef = ref() const rejectReasonForm = reactive({ reason: '' }) -const rejectReasonRule = reactive>({ - reason: [{ required: true, message: '审批意见不能为空', trigger: 'blur' }] +const rejectReasonRule = computed(() => { + return { + reason: [{ required: reasonRequire.value, message: '审批意见不能为空', trigger: 'blur' }] + } }) // 抄送表单 @@ -966,6 +971,7 @@ const loadTodoTask = (task: any) => { approveForm.value = {} approveFormFApi.value = {} runningTask.value = task + reasonRequire.value = task?.reasonRequire ?? false // 处理 approve 表单. if (task && task.formId && task.formConf) { const tempApproveForm = {}