From c045666cb9bdcacb2aeb2dba4d806db1cd6b3bed Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 20 三月 2026 11:14:18 +0800
Subject: [PATCH] 金鹰黄金 1.新增劳保台账选择岗位刷新人员列表接口修改 2.设备保养、巡检任务要设备可以多选

---
 src/views/equipmentManagement/inspectionManagement/components/formDia.vue |   37 ++++++++++++------
 src/views/equipmentManagement/upkeep/Form/formDia.vue                     |   42 +++++++++++++-------
 2 files changed, 52 insertions(+), 27 deletions(-)

diff --git a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
index c1d75b5..5d33d9e 100644
--- a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
+++ b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -5,8 +5,8 @@
       <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="璁惧鍚嶇О" prop="taskId">
-              <el-select v-model="form.taskId" @change="setDeviceModel" filterable>
+            <el-form-item label="璁惧鍚嶇О" prop="taskIds">
+              <el-select v-model="form.taskIds" @change="setDeviceModel" multiple filterable>
                 <el-option
                   v-for="(item, index) in deviceOptions"
                   :key="index"
@@ -114,7 +114,7 @@
 const deviceOptions = ref([]);
 const data = reactive({
   form: {
-    taskId: undefined,
+    taskIds: [],
     taskName: undefined,
     inspector: '',
     inspectorIds: '',
@@ -125,7 +125,7 @@
     time: ''
   },
   rules: {
-    taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
+    taskIds: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
     inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
   }
 })
@@ -137,10 +137,17 @@
   deviceOptions.value = data;
 };
 
-const setDeviceModel = (id) => {
-  const option = deviceOptions.value.find((item) => item.id === id);
-  if (option) {
-    form.value.taskName = option.deviceName;
+const setDeviceModel = (ids) => {
+  if (!ids || ids.length === 0) {
+    form.value.taskIds = []
+    form.value.taskName = undefined
+    return
+  }
+  
+  const selectedDevices = deviceOptions.value.filter((item) => ids.includes(item.id))
+  if (selectedDevices.length > 0) {
+    form.value.taskIds = ids
+    form.value.taskName = selectedDevices.map(d => d.deviceName).join(',')
   }
 }
 
@@ -164,9 +171,10 @@
     form.value = {...row}
     form.value.inspector = form.value.inspectorIds.split(',').map(Number)
     
-    // 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
-    if (form.value.taskId) {
-      setDeviceModel(form.value.taskId);
+    // 濡傛灉鏈夎澶嘔D鏁扮粍锛岃浆鎹负鏁扮粍骞惰缃澶囦俊鎭�
+    if (row.taskIds) {
+      form.value.taskIds = row.taskIds.split(',').map(id => parseInt(id.trim()))
+      setDeviceModel(form.value.taskIds)
     }
   }
 }
@@ -185,7 +193,7 @@
   }
   // 閲嶇疆琛ㄥ崟鏁版嵁纭繚璁惧淇℃伅姝g‘閲嶇疆
   form.value = {
-    taskId: undefined,
+    taskIds: [],
     taskName: undefined,
     inspector: '',
     inspectorIds: '',
@@ -205,6 +213,11 @@
         form.value.inspectorIds = form.value.inspector.join(',')
         delete form.value.inspector
         
+        // 澶勭悊 taskIds 鍜� taskName
+        if (form.value.taskIds && Array.isArray(form.value.taskIds)) {
+          form.value.taskIds = form.value.taskIds.join(',')
+        }
+        
         if (form.value.frequencyType === 'WEEKLY') {
           let frequencyDetail = ''
           frequencyDetail = form.value.week + ',' + form.value.time
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 5a4d7ef..4592935 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -11,8 +11,8 @@
 		<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
 			<el-row>
 				<el-col :span="12">
-					<el-form-item label="璁惧鍚嶇О" prop="taskId">
-						<el-select v-model="form.taskId" @change="setDeviceModel" filterable>
+					<el-form-item label="璁惧鍚嶇О" prop="taskIds">
+						<el-select v-model="form.taskIds" @change="setDeviceModel" multiple filterable>
 							<el-option
 								v-for="(item, index) in deviceOptions"
 								:key="index"
@@ -169,7 +169,7 @@
 const userStore = useUserStore();
 const data = reactive({
 	form: {
-		taskId: undefined,
+		taskIds: [],
 		taskName: undefined,
 		// 褰曞叆浜猴細鍗曢�変竴涓敤鎴� id
 		inspector: undefined,
@@ -183,7 +183,7 @@
 		registrationDate: ''
 	},
 	rules: {
-		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
+		taskIds: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
 		inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
 		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
     auditName: [{ required: true, message: "璇烽�夋嫨瀹℃壒浜�", trigger: "change" }],
@@ -198,12 +198,19 @@
 };
 
 // 閫夋嫨璁惧鏃讹紝鍥炲~璁惧鍚嶇О(taskName)鍜岃鏍煎瀷鍙�(deviceModel)
-const setDeviceModel = (id) => {
-	const option = deviceOptions.value.find((item) => item.id === id);
-	if (option) {
-		form.value.taskId = option.id;
-		form.value.taskName = option.deviceName;
-		form.value.deviceModel = option.deviceModel;
+const setDeviceModel = (ids) => {
+	if (!ids || ids.length === 0) {
+		form.value.taskIds = []
+		form.value.taskName = undefined
+		form.value.deviceModel = undefined
+		return
+	}
+	
+	const selectedDevices = deviceOptions.value.filter((item) => ids.includes(item.id))
+	if (selectedDevices.length > 0) {
+		form.value.taskIds = ids
+		form.value.taskName = selectedDevices.map(d => d.deviceName).join(',')
+		form.value.deviceModel = selectedDevices.map(d => d.deviceModel).join(',')
 	}
 }
 
@@ -229,10 +236,10 @@
 		if (row.registrantId) {
 			form.value.inspector = row.registrantId
 		}
-
-		// 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
-		if (form.value.taskId) {
-			setDeviceModel(form.value.taskId);
+		// 濡傛灉鏈夎澶嘔D鏁扮粍锛岃浆鎹负鏁扮粍骞惰缃澶囦俊鎭�
+		if (row.taskIds) {
+			form.value.taskIds = row.taskIds.split(',').map(id => parseInt(id.trim()))
+			setDeviceModel(form.value.taskIds)
 		}
 	} else if (type === 'add') {
 		// 鏂板鏃惰缃櫥璁版棩鏈熶负褰撳ぉ
@@ -256,7 +263,7 @@
 	}
 	// 閲嶇疆琛ㄥ崟鏁版嵁纭繚璁惧淇℃伅姝g‘閲嶇疆
 	form.value = {
-		taskId: undefined,
+		taskIds: [],
 		taskName: undefined,
 		inspector: undefined,
 		auditName: undefined,
@@ -290,6 +297,11 @@
 				delete payload.inspector
 				delete payload.inspectorIds
 				
+				// 澶勭悊 taskIds 鍜� taskName
+				if (payload.taskIds && Array.isArray(payload.taskIds)) {
+					payload.taskIds = payload.taskIds.join(',')
+				}
+				
 				if (payload.frequencyType === 'WEEKLY') {
 					let frequencyDetail = ''
 					frequencyDetail = payload.week + ',' + payload.time

--
Gitblit v1.9.3