From 1c0863efe062af3ebcdecb8c10568d779f5c8295 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 26 一月 2026 15:10:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev_New' into dev_tide_mis_xindao

---
 src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue |   53 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
index 42aebd1..167a921 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -6,7 +6,7 @@
       width="700px"
       @close="closeDia"
     >
-			<el-form :model="form" label-width="140px" label-position="top" ref="formRef">
+			<el-form :model="form" :rules="rules" label-width="140px" label-position="top" ref="formRef">
 				<el-row>
 					<el-col :span="24">
 						<el-form-item label="娴佺▼缂栧彿锛�" prop="approveId">
@@ -178,7 +178,7 @@
 </template>
 
 <script setup>
-import { computed, getCurrentInstance, reactive, ref, toRefs } from "vue";
+import { computed, getCurrentInstance, nextTick, reactive, ref, toRefs } from "vue";
 import {
 	approveProcessDetails,
 	getDept,
@@ -218,8 +218,12 @@
 		approveReason: "",
 		checkResult: "",
 	},
+  rules: {
+    // 浣跨敤閮ㄩ棬ID鍋氬繀濉牎楠岋紝閬垮厤鍚嶇О鏈悓姝ュ鑷磋鎶�
+    approveDeptId: [{ required: true, message: "璇烽�夋嫨鐢宠閮ㄩ棬", trigger: "change" }],
+  },
 });
-const { form } = toRefs(data);
+const { form, rules } = toRefs(data);
 
 // 鑺傜偣鏍囬
 const getNodeTitle = (index, len) => {
@@ -251,7 +255,31 @@
 		userList.value = res.data;
 	});
 	form.value = {...row}
-	getProductOptions()
+	// 绔嬪嵆娓呴櫎琛ㄥ崟楠岃瘉鐘舵�侊紙鍥犱负瀛楁鏄痙isabled鐨勶紝涓嶉渶瑕侀獙璇侊級
+	nextTick(() => {
+		if (formRef.value) {
+			formRef.value.clearValidate();
+		}
+	});
+	// 纭繚閫夐」鍔犺浇瀹屾垚鍚庡啀鍖归厤鍊肩被鍨�
+	getProductOptions().then(() => {
+		// 纭繚鍊肩被鍨嬪尮閰嶏紙濡傛灉閫夐」宸插姞杞斤級
+		if (productOptions.value.length > 0 && form.value.approveDeptId) {
+			const matchedOption = productOptions.value.find(opt =>
+				opt.deptId == form.value.approveDeptId ||
+				String(opt.deptId) === String(form.value.approveDeptId)
+			);
+			if (matchedOption) {
+				form.value.approveDeptId = matchedOption.deptId;
+			}
+		}
+		// 鍐嶆娓呴櫎楠岃瘉锛岀‘淇濋�夐」鍔犺浇鍚庡�煎尮閰嶆纭�
+		nextTick(() => {
+			if (formRef.value) {
+				formRef.value.clearValidate();
+			}
+		});
+	});
 
   // 鎶ヤ环瀹℃壒锛氱敤瀹℃壒浜嬬敱瀛楁鎵胯浇鐨勨�滄姤浠峰崟鍙封�濆幓鏌ユ姤浠峰垪琛�
   if (isQuotationApproval.value) {
@@ -287,17 +315,26 @@
   })
 }
 const getProductOptions = () => {
-	getDept().then((res) => {
+	return getDept().then((res) => {
 		productOptions.value = res.data;
 	});
 };
 // 鎻愪氦瀹℃壒
 const submitForm = (status) => {
   const filteredActivities = activities.value.filter(activity => activity.isShen);
-  filteredActivities[0].approveNodeStatus = status;
+  if (!filteredActivities || filteredActivities.length === 0) {
+    proxy.$modal.msgError("鏈壘鍒板緟瀹℃壒鐨勮妭鐐�");
+    return;
+  }
+  const currentActivity = filteredActivities[0];
+  if (!currentActivity) {
+    proxy.$modal.msgError("鏈壘鍒板緟瀹℃壒鐨勮妭鐐�");
+    return;
+  }
+  currentActivity.approveNodeStatus = status;
   // 鍒ゆ柇鏄惁涓烘渶鍚庝竴姝�
   const isLast = activities.value.findIndex(a => a.isShen) === activities.value.length-1;
-  updateApproveNode({ ...filteredActivities[0], isLast }).then(() => {
+  updateApproveNode({ ...currentActivity, isLast }).then(() => {
     proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
     closeDia();
   });
@@ -346,4 +383,4 @@
 	width: 200px;
 	height: 60px;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3