From a7a9f53ef126659f664f5cbfe4eb10bebdfc4a6a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 19 五月 2026 23:33:56 +0800
Subject: [PATCH] feat: 设备巡检修改

---
 src/views/equipmentManagement/inspectionManagement/components/formDia.vue |  153 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 138 insertions(+), 15 deletions(-)

diff --git a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
index 79ff5b0..722c7a1 100644
--- a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
+++ b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -23,11 +23,29 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="宸℃楠屾敹浜�" prop="inspectionAcceptor">
+              <el-select v-model="form.inspectionAcceptor" placeholder="璇烽�夋嫨" clearable>
+                <el-option v-for="item in userList" :label="item.nickName" :value="item.userId" :key="item.userId"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="澶囨敞" prop="remarks">
               <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="浠诲姟鐘舵��" prop="isActive">
+              <el-switch
+                v-model="form.isActive"
+                :active-value="1"
+                :inactive-value="0"
+                active-text="鍚敤"
+                inactive-text="鍋滅敤"
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -100,7 +118,7 @@
 </template>
 
 <script setup>
-import {reactive, ref} from "vue";
+import {reactive, ref, getCurrentInstance, toRefs} from "vue";
 import useUserStore from '@/store/modules/user'
 import {addOrEditTimingTask} from "@/api/inspectionManagement/index.js";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
@@ -118,16 +136,76 @@
     taskName: undefined,
     inspector: '',
     inspectorIds: '',
+    inspectionAcceptor: undefined,
+    inspectionAcceptorId: undefined,
     remarks: '',
     frequencyType: '',
     frequencyDetail: '',
     week: '',
-    time: ''
+    time: '',
+    isActive: 1  // 榛樿鍚敤
   },
-  rules: {
-    taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
-    inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
-  }
+	rules: {
+		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
+		inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
+		inspectionAcceptor: [{ required: true, message: "璇烽�夋嫨宸℃楠屾敹浜�", trigger: "change" },],
+		dateStr: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
+		frequencyType: [{ required: true, message: "璇烽�夋嫨浠诲姟棰戠巼", trigger: "change" }],
+		frequencyDetail: [
+			{
+				required: true,
+				message: "璇烽�夋嫨鏃ユ湡",
+				trigger: "change",
+				validator: (rule, value, callback) => {
+					if (!form.value.frequencyType) {
+						callback()
+						return
+					}
+					if (form.value.frequencyType === 'WEEKLY') {
+						if (!form.value.week || !form.value.time) {
+							callback(new Error("璇烽�夋嫨鏃ユ湡鍜屾椂闂�"))
+						} else {
+							callback()
+						}
+					} else {
+						if (!value) {
+							callback(new Error("璇烽�夋嫨鏃ユ湡"))
+						} else {
+							callback()
+						}
+					}
+				}
+			}
+		],
+		week: [
+			{
+				required: true,
+				message: "璇烽�夋嫨鏄熸湡",
+				trigger: "change",
+				validator: (rule, value, callback) => {
+					if (form.value.frequencyType === 'WEEKLY' && !value) {
+						callback(new Error("璇烽�夋嫨鏄熸湡"))
+					} else {
+						callback()
+					}
+				}
+			}
+		],
+		time: [
+			{
+				required: true,
+				message: "璇烽�夋嫨鏃堕棿",
+				trigger: "change",
+				validator: (rule, value, callback) => {
+					if (form.value.frequencyType === 'WEEKLY' && !value) {
+						callback(new Error("璇烽�夋嫨鏃堕棿"))
+					} else {
+						callback()
+					}
+				}
+			}
+		]
+	}
 })
 const { form, rules } = toRefs(data)
 const userList = ref([])
@@ -161,9 +239,39 @@
   await loadDeviceName();
   
   if (type === 'edit' && row) {
-    form.value = {...row}
-    form.value.inspector = form.value.inspectorIds.split(',').map(Number)
-    
+    form.value = {
+      ...data.form,  // 鍏堝鍒堕粯璁よ〃鍗�
+      ...row,        // 鍐嶈鐩� row 涓殑鍊�
+    }
+    // 纭繚 inspectorIds 瀛樺湪鎵嶈繘琛� split
+    if (form.value.inspectorIds) {
+      form.value.inspector = form.value.inspectorIds.split(',').map(Number)
+    } else {
+      form.value.inspector = []
+    }
+    // 纭繚楠屾敹鍏D鍜屽鍚嶆纭洖鏄�
+    if (form.value.inspectionAcceptorId) {
+      form.value.inspectionAcceptor = form.value.inspectionAcceptorId
+    }
+    // 纭繚 isActive 鏈夊�硷紝榛樿鍚敤
+    if (form.value.isActive === undefined || form.value.isActive === null) {
+      form.value.isActive = 1
+    }
+
+    if (row.frequencyDetail) {
+      if (row.frequencyType === 'WEEKLY') {
+        const parts = row.frequencyDetail.split(',')
+        if (parts.length === 2) {
+          form.value.week = parts[0]
+          form.value.time = parts[1]
+        }
+      } else if (row.frequencyType === 'DAILY') {
+        form.value.frequencyDetail = row.frequencyDetail
+      } else {
+        form.value.frequencyDetail = row.frequencyDetail
+      }
+    }
+
     // 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
     if (form.value.taskId) {
       setDeviceModel(form.value.taskId);
@@ -189,11 +297,14 @@
     taskName: undefined,
     inspector: '',
     inspectorIds: '',
+    inspectionAcceptor: undefined,
+    inspectionAcceptorId: undefined,
     remarks: '',
     frequencyType: '',
     frequencyDetail: '',
     week: '',
-    time: ''
+    time: '',
+    isActive: 1  // 榛樿鍚敤
   }
 }
 
@@ -202,18 +313,30 @@
   proxy.$refs["formRef"].validate(async valid => {
     if (valid) {
       try {
-        form.value.inspectorIds = form.value.inspector.join(',')
-        delete form.value.inspector
-        
+        // 纭繚 inspector 鏄暟缁勬墠杩涜 join
+        if (form.value.inspector && Array.isArray(form.value.inspector)) {
+          form.value.inspectorIds = form.value.inspector.join(',')
+          delete form.value.inspector
+        }
+
+        // 澶勭悊楠屾敹鍏�
+        if (form.value.inspectionAcceptor) {
+          const selectedUser = userList.value.find(u => u.userId === form.value.inspectionAcceptor)
+          if (selectedUser) {
+            form.value.inspectionAcceptorId = form.value.inspectionAcceptor
+            form.value.inspectionAcceptor = selectedUser.nickName
+          }
+        }
+
         if (form.value.frequencyType === 'WEEKLY') {
           let frequencyDetail = ''
           frequencyDetail = form.value.week + ',' + form.value.time
           form.value.frequencyDetail = frequencyDetail
         }
-        
+
         let res = await userStore.getInfo()
         form.value.registrantId = res.user.userId
-        
+
         await addOrEditTimingTask(form.value)
         cancel()
         proxy.$modal.msgSuccess('鎻愪氦鎴愬姛')

--
Gitblit v1.9.3