From 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期五, 28 八月 2026 10:16:32 +0800
Subject: [PATCH] feat: 综合业务模块页面重构与交互完善

---
 src/views/equipmentManagement/repair/Modal/RepairModal.vue |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/repair/Modal/RepairModal.vue b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
index 4a10071..6a934c9 100644
--- a/src/views/equipmentManagement/repair/Modal/RepairModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -58,6 +58,18 @@
       </el-row>
       <el-row>
         <el-col :span="12">
+          <el-form-item label="鎶ヤ慨绫诲瀷">
+            <el-select v-model="form.repairType"
+                       placeholder="璇烽�夋嫨鎶ヤ慨绫诲瀷"
+                       :disabled="operationType === 'view'">
+              <el-option v-for="dict in device_repair_type"
+                         :key="dict.value"
+                         :label="dict.label"
+                         :value="Number(dict.value)"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
           <el-form-item label="缁翠慨浜�">
             <el-input v-model="form.maintenanceName"
                       placeholder="璇疯緭鍏ョ淮淇汉濮撳悕"
@@ -76,7 +88,26 @@
                          :value="1"></el-option>
               <el-option label="澶辫触"
                          :value="2"></el-option>
+              <el-option label="寰呴獙鏀�"
+                         :value="3"></el-option>
             </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12" v-if="form.status !== 0">
+          <el-form-item label="缁翠慨鏃堕棿">
+            <el-input v-model="form.maintenanceTime"
+                      disabled />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row v-if="form.status !== 0">
+        <el-col :span="24">
+          <el-form-item label="缁翠慨缁撴灉">
+            <el-input v-model="form.maintenanceResult"
+                      :rows="2"
+                      type="textarea"
+                      placeholder="鏆傛棤缁翠慨缁撴灉"
+                      :disabled="operationType === 'view'" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -114,6 +145,37 @@
           </el-form-item>
         </el-col>
       </el-row>
+      <el-row v-if="form.status !== 0">
+        <el-col :span="24">
+          <el-form-item label="鍘熷洜鍒嗘瀽">
+            <el-input v-model="form.reasonAnalysis"
+                      :rows="2"
+                      type="textarea"
+                      placeholder="璇疯緭鍏ュ師鍥犲垎鏋�"
+                      :disabled="operationType === 'view'" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="澶勭悊鎺柦">
+            <el-input v-model="form.handlingMeasures"
+                      :rows="2"
+                      type="textarea"
+                      placeholder="璇疯緭鍏ュ鐞嗘帾鏂�"
+                      :disabled="operationType === 'view'" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <!-- 閰嶄欢浣跨敤鏄庣粏灞曠ず -->
+      <el-row v-if="sparePartsDetails.length > 0">
+        <el-col :span="24">
+          <el-form-item label="閰嶄欢浣跨敤鏄庣粏">
+            <el-table :data="sparePartsDetails" size="small" border style="width: 100%">
+              <el-table-column prop="sparePartName" label="閰嶄欢鍚嶇О" />
+              <el-table-column prop="quantity" label="浣跨敤鏁伴噺" width="100" />
+            </el-table>
+          </el-form-item>
+        </el-col>
+      </el-row>
       <el-row v-if="operationType !== 'view'"
               :gutter="30">
         <el-col :span="24">
@@ -147,6 +209,8 @@
   });
 
   const emits = defineEmits(["ok"]);
+  const { proxy } = getCurrentInstance();
+  const { device_repair_type } = proxy.useDict("device_repair_type");
 
   const id = ref();
   const visible = ref(false);
@@ -163,6 +227,7 @@
   const userStore = useUserStore();
   const deviceOptions = ref([]);
   const fileList = ref([]);
+  const sparePartsDetails = ref([]);
 
   const loadDeviceName = async () => {
     const { data } = await getDeviceLedger();
@@ -174,12 +239,17 @@
     deviceName: undefined, // 璁惧鍚嶇О
     deviceModel: undefined, // 瑙勬牸鍨嬪彿
     repairTime: dayjs().format("YYYY-MM-DD"), // 鎶ヤ慨鏃ユ湡锛岄粯璁ゅ綋澶�
+    repairType: undefined, // 鎶ヤ慨绫诲瀷
     repairName: userStore.nickName, // 鎶ヤ慨浜�
     remark: undefined, // 鏁呴殰鐜拌薄
+    reasonAnalysis: undefined, // 鍘熷洜鍒嗘瀽
+    handlingMeasures: undefined, // 澶勭悊鎺柦
     status: 0, // 鎶ヤ慨鐘舵��
     machineryCategory: undefined,
     storageBlobDTOs: [],
     maintenanceName: undefined, // 缁翠慨浜�
+    maintenanceTime: undefined,
+    maintenanceResult: undefined,
   });
 
   const setDeviceModel = deviceId => {
@@ -192,15 +262,21 @@
     form.deviceName = data.deviceName;
     form.deviceModel = data.deviceModel;
     form.repairTime = data.repairTime;
+    form.repairType = data.repairType;
     form.repairName = data.repairName;
     form.remark = data.remark;
+    form.reasonAnalysis = data.reasonAnalysis;
+    form.handlingMeasures = data.handlingMeasures;
     form.status = data.status;
     form.machineryCategory = data.machineryCategory;
     form.storageBlobDTOs = data.storageBlobVOs || [];
     form.maintenanceName = data.maintenanceName;
+    form.maintenanceTime = data.maintenanceTime;
+    form.maintenanceResult = data.maintenanceResult;
     form.acceptanceName = data.acceptanceName;
     form.acceptanceTime = data.acceptanceTime;
     form.acceptanceRemark = data.acceptanceRemark;
+    sparePartsDetails.value = data.sparePartsUseListDetails || [];
   };
 
   const sendForm = async () => {
@@ -234,6 +310,7 @@
     operationType.value = "add";
     visible.value = true;
     fileList.value = [];
+    sparePartsDetails.value = [];
     await nextTick();
     await loadDeviceName();
   };

--
Gitblit v1.9.3