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 = {}