Sfoglia il codice sorgente

feat: 审批意见

Lesan 7 mesi fa
parent
commit
506d87ec71

+ 2 - 0
src/components/SimpleProcessDesignerV2/src/consts.ts

@@ -120,6 +120,8 @@ export interface SimpleFlowNode {
   defaultFlowId?: string
   // 签名
   signEnable?: boolean
+  // 审批意见
+  reasonRequire?: boolean
 }
 // 候选人策略枚举 ( 用于审批节点。抄送节点 )
 export enum CandidateStrategy {

+ 1 - 0
src/components/SimpleProcessDesignerV2/src/node.ts

@@ -149,6 +149,7 @@ export type UserTaskFormType = {
   taskCompleteListenerHeader?: ListenerParam[]
   taskCompleteListenerBody?: ListenerParam[]
   signEnable: boolean
+  reasonRequire: boolean
 }
 
 export type CopyTaskFormType = {

+ 9 - 0
src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue

@@ -361,6 +361,11 @@
             <el-form-item prop="signEnable">
               <el-switch v-model="configForm.signEnable" active-text="是" inactive-text="否" />
             </el-form-item>
+
+            <el-divider content-position="left">审批意见</el-divider>
+            <el-form-item prop="reasonRequire">
+              <el-switch v-model="configForm.reasonRequire" active-text="必填" inactive-text="非必填" />
+            </el-form-item>
           </el-form>
         </div>
       </el-tab-pane>
@@ -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 }) // 暴露方法给父组件

+ 11 - 5
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue

@@ -548,6 +548,7 @@ const approveForm = ref<any>({}) // 审批通过时,额外的补充信息
 const approveFormFApi = ref<any>({}) // approveForms 的 fAPi
 
 // 审批通过意见表单
+const reasonRequire = ref()
 const approveFormRef = ref<FormInstance>()
 const signRef = ref()
 const approveSignFormRef = ref()
@@ -555,17 +556,21 @@ const approveReasonForm = reactive({
   reason: '',
   signPicUrl: ''
 })
-const approveReasonRule = reactive<FormRules<typeof approveReasonForm>>({
-  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<FormInstance>()
 const rejectReasonForm = reactive({
   reason: ''
 })
-const rejectReasonRule = reactive<FormRules<typeof rejectReasonForm>>({
-  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 = {}