Browse Source

feat: 审批下一个节点人调整后台需要格式

luoyali 6 months ago
parent
commit
0a2db91e77
1 changed files with 25 additions and 5 deletions
  1. 25 5
      src/views/approve/components/consentOrRefuseDialog.vue

+ 25 - 5
src/views/approve/components/consentOrRefuseDialog.vue

@@ -17,7 +17,13 @@
 				<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"
+				required
+				:rules="[{ required: true, message: '请选择下一节点审批人' }]"
+			>
 				<div v-for="(item, index) in nodeModelsData" :key="index" class="flex">
 					<div v-if="item.selectMode" class="mr-2">
 						<el-tooltip content="添加用户" placement="bottom">
@@ -125,7 +131,8 @@ const datas = reactive({
 	active_selectOpts: {},
 	useSelectRef: null,
 	active_assigneeKey: null,
-	maxSelectedLength: 1
+	maxSelectedLength: 1,
+	nodeTypeData: null
 })
 const {
 	formRef,
@@ -136,7 +143,8 @@ const {
 	active_selectOpts,
 	useSelectRef,
 	active_assigneeKey,
-	maxSelectedLength
+	maxSelectedLength,
+	nodeTypeData
 } = toRefs(datas)
 const $myEmit = defineEmits(['update:modelValue', 'successCb'])
 
@@ -170,8 +178,9 @@ const appendToApprovalComments = label => {
 }
 
 const getNextNodesEv = async params => {
-	const { nodeModels } = await nextNodesApi(params)
+	const { nodeModels, nodeType } = await nextNodesApi(params)
 	nodeModelsData.value = nodeModels || []
+	nodeTypeData.value = nodeType
 	/**
 	 * "nodeModels": [
             {
@@ -181,6 +190,10 @@ const getNextNodesEv = async params => {
                     {
                         "id": "0",
                         "name": "CEO"
+                    },
+										{
+                        "id": "1",
+                        "name": "CEO1"
                     }
                 ],
                 "selectMode": 1
@@ -216,7 +229,7 @@ const selectHandler = (item, type) => {
 
 const submitForm = debounce(() => {
 	const isAgree = props.currentType === 'agree'
-	if (isAgree) {
+	if (isAgree && nodeModelsData.value.length) {
 		const areAllAssigneeListsValid = validateNodeAssigneeLists()
 		form.assigneeMap = !areAllAssigneeListsValid ? null : nodeModelsData.value
 	}
@@ -229,6 +242,13 @@ const submitForm = debounce(() => {
 				let data = null
 				if (isAgree) {
 					// 同意
+					formData.termination = false
+					if (nodeModelsData.value.length) {
+						formData.assigneeMap = nodeModelsData.value.reduce((acc, node) => {
+							acc[node.nodeKey] = { assigneeList: node.nodeAssigneeList, type: nodeTypeData.value }
+							return acc
+						}, {}) // 组装成后台需要的格式
+					}
 					data = await processConsentTaskApi(formData)
 				} else {
 					// 拒绝