From 400ba2640e9852271f22efbb90943c02ae9f46a2 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 24 九月 2025 14:58:10 +0800
Subject: [PATCH] 巡检上传

---
 src/views/equipmentManagement/inspectionManagement/components/formDia.vue |  135 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 96 insertions(+), 39 deletions(-)

diff --git a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
index 9d9a9fd..79ff5b0 100644
--- a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
+++ b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -2,20 +2,20 @@
   <div>
     <el-dialog :title="operationType === 'add' ? '鏂板宸℃浠诲姟' : '缂栬緫宸℃浠诲姟'"
                v-model="dialogVisitable" width="800px" @close="cancel">
-      <el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
+      <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="浠诲姟鍚嶇О" prop="taskName">
-              <el-input v-model="form.taskName" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" maxlength="30" />
+            <el-form-item label="璁惧鍚嶇О" prop="taskId">
+              <el-select v-model="form.taskId" @change="setDeviceModel">
+                <el-option
+                  v-for="(item, index) in deviceOptions"
+                  :key="index"
+                  :label="item.deviceName"
+                  :value="item.id"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍦扮偣" prop="inspectionLocation">
-              <el-input v-model="form.inspectionLocation" placeholder="璇疯緭鍏ュ湴鐐�" maxlength="30" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="12">
             <el-form-item label="宸℃浜�" prop="inspector">
               <el-select v-model="form.inspector" placeholder="璇烽�夋嫨" multiple clearable>
@@ -23,6 +23,8 @@
               </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" />
@@ -36,7 +38,7 @@
                 <el-option label="姣忔棩" value="DAILY"/>
                 <el-option label="姣忓懆" value="WEEKLY"/>
                 <el-option label="姣忔湀" value="MONTHLY"/>
-                <el-option label="瀛e害" value="QUARTERLY"/>
+                <!-- <el-option label="瀛e害" value="QUARTERLY"/> -->
               </el-select>
             </el-form-item>
           </el-col>
@@ -101,68 +103,123 @@
 import {reactive, ref} from "vue";
 import useUserStore from '@/store/modules/user'
 import {addOrEditTimingTask} from "@/api/inspectionManagement/index.js";
-import {userListAll} from "@/api/publicApi/index.js";
+import {userListNoPageByTenantId} from "@/api/system/user.js";
+import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
 
 const { proxy } = getCurrentInstance()
 const emit = defineEmits()
 const userStore = useUserStore()
 const dialogVisitable = ref(false);
 const operationType = ref('add');
+const deviceOptions = ref([]);
 const data = reactive({
   form: {
-    taskName: '',
-    inspectionLocation: '',
+    taskId: undefined,
+    taskName: undefined,
     inspector: '',
     inspectorIds: '',
     remarks: '',
     frequencyType: '',
     frequencyDetail: '',
+    week: '',
+    time: ''
   },
   rules: {
-    taskName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" },],
-    inspectionLocation: [{ required: true, message: "璇疯緭鍏ュ湴鐐�", trigger: "blur" },],
+    taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
     inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
   }
 })
 const { form, rules } = toRefs(data)
 const userList = ref([])
 
-// 鎵撳紑寮规
-const openDialog = async (type, row) => {
-  dialogVisitable.value = true
-  userListAll().then(res => {
-    userList.value = res.data
-  })
-  if (type === 'edit') {
-    form.value = {...row}
-    form.value.inspector = form.value.inspectorIds.split(',').map(Number)
+const loadDeviceName = async () => {
+  const { data } = await getDeviceLedger();
+  deviceOptions.value = data;
+};
+
+const setDeviceModel = (id) => {
+  const option = deviceOptions.value.find((item) => item.id === id);
+  if (option) {
+    form.value.taskName = option.deviceName;
   }
 }
 
-// 鍏抽棴鍚堝苟琛ㄥ崟
+// 鎵撳紑寮规
+const openDialog = async (type, row) => {
+  dialogVisitable.value = true
+  operationType.value = type
+  
+  // 閲嶇疆琛ㄥ崟
+  resetForm();
+  
+  // 鍔犺浇鐢ㄦ埛鍒楄〃
+  userListNoPageByTenantId().then((res) => {
+    userList.value = res.data;
+  });
+  
+  // 鍔犺浇璁惧鍒楄〃
+  await loadDeviceName();
+  
+  if (type === 'edit' && row) {
+    form.value = {...row}
+    form.value.inspector = form.value.inspectorIds.split(',').map(Number)
+    
+    // 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
+    if (form.value.taskId) {
+      setDeviceModel(form.value.taskId);
+    }
+  }
+}
+
+// 鍏抽棴瀵硅瘽妗�
 const cancel = () => {
-  proxy.resetForm("formRef")
+  resetForm()
   dialogVisitable.value = false
   emit('closeDia')
 }
 
-// 鎻愪氦鍚堝苟琛ㄥ崟
+// 閲嶇疆琛ㄥ崟鍑芥暟
+const resetForm = () => {
+  if (proxy.$refs.formRef) {
+    proxy.$refs.formRef.resetFields()
+  }
+  // 閲嶇疆琛ㄥ崟鏁版嵁纭繚璁惧淇℃伅姝g‘閲嶇疆
+  form.value = {
+    taskId: undefined,
+    taskName: undefined,
+    inspector: '',
+    inspectorIds: '',
+    remarks: '',
+    frequencyType: '',
+    frequencyDetail: '',
+    week: '',
+    time: ''
+  }
+}
+
+// 鎻愪氦琛ㄥ崟
 const submitForm = () => {
   proxy.$refs["formRef"].validate(async valid => {
     if (valid) {
-      form.value.inspectorIds = form.value.inspector.join(',')
-			delete form.value.inspector
-      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
-      addOrEditTimingTask(form.value).then(() => {
+      try {
+        form.value.inspectorIds = form.value.inspector.join(',')
+        delete form.value.inspector
+        
+        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('鎻愪氦鎴愬姛')
-      })
+      } catch (error) {
+        proxy.$modal.msgError('鎻愪氦澶辫触锛岃閲嶈瘯')
+      }
     }
   })
 }

--
Gitblit v1.9.3