Browse Source

fix: 流程审批 会签 下一审批人 不为 发起人自选(setType: 4) 规则校验问题

lanceJiang 4 months ago
parent
commit
f4ab225afa
1 changed files with 11 additions and 9 deletions
  1. 11 9
      src/views/approve/components/consentOrRefuseDialog.vue

+ 11 - 9
src/views/approve/components/consentOrRefuseDialog.vue

@@ -17,13 +17,7 @@
 				<el-input v-model="form.content" type="textarea" placeholder="请输入内容" maxlength="64" show-word-limit> </el-input>
 			</el-form-item>
 
-			<el-form-item
-				v-if="nodeModelsData.length"
-				label="下一节点审批人"
-				prop="assigneeMap"
-				required
-				:rules="[{ required: true, message: '请选择下一节点审批人' }]"
-			>
+			<el-form-item v-if="nodeModelsData.length" label="下一节点审批人" prop="assigneeMap" :rules="assigneeMapRules">
 				<el-timeline>
 					<el-timeline-item v-for="(item, index) in nodeModelsData" :key="index" placement="top" :timestamp="item.nodeName">
 						<div class="flex">
@@ -165,8 +159,7 @@ const datas = reactive({
 	useSelectRef: null,
 	active_assigneeKey: null
 })
-const { formRef, uploadLoading, rollbackOptions, btnDisabled, nodeModelsData, active_selectOpts, useSelectRef, active_assigneeKey } =
-	toRefs(datas)
+const { formRef, uploadLoading, rollbackOptions, btnDisabled, nodeModelsData, active_selectOpts, useSelectRef, active_assigneeKey } = toRefs(datas)
 const $myEmit = defineEmits(['update:modelValue', 'successCb'])
 
 const closeDialog = () => {
@@ -222,6 +215,15 @@ const getNextNodesEv = async params => {
         "nodeType": 1
 	 */
 }
+// 下一节点审批人规则
+const assigneeMapRules = computed(() => {
+	const _nodes = nodeModelsData.value || []
+	// 发起人自选(setType: 4) 才需要选择下一节点审批人
+	if (_nodes.find(v => v.setType === 4)) {
+		return [{ required: true, message: '请选择下一节点审批人' }]
+	}
+	return []
+})
 const findNodeByKey = nodeKey => {
 	return nodeModelsData.value.find(node => node.nodeKey === nodeKey)
 }