From 71a9eef518f2f2f1a1eb2fb90f2eb8ab7b155bc8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 一月 2026 14:57:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_天津军泰伟业' into dev_天津军泰伟业

---
 src/views/equipmentManagement/defectManagement/index.vue |  332 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 179 insertions(+), 153 deletions(-)

diff --git a/src/views/equipmentManagement/defectManagement/index.vue b/src/views/equipmentManagement/defectManagement/index.vue
index f35454f..6456d71 100644
--- a/src/views/equipmentManagement/defectManagement/index.vue
+++ b/src/views/equipmentManagement/defectManagement/index.vue
@@ -2,27 +2,34 @@
   <div class="defect-management">
     <!-- 鎿嶄綔鎸夐挳 -->
     <div class="actions">
-      <el-button type="primary" @click="showRegisterDialog = true">鐧昏缂洪櫡</el-button>
+      <el-button type="primary"
+                 @click="showRegisterDialog = true">鐧昏缂洪櫡</el-button>
     </div>
-
     <!-- 缂洪櫡鍒楄〃 -->
-    <el-table :data="defectList" style="width: 100%; margin-top: 10px;" border>
-      <el-table-column prop="deviceName" label="璁惧鍚嶇О" width="180"></el-table-column>
-      <el-table-column prop="defectDescription" label="缂洪櫡鎻忚堪" win-width="300"></el-table-column>
-      <el-table-column prop="status" label="鐘舵��" width="220">
+    <el-table :data="defectList"
+              style="width: 100%; margin-top: 10px;"
+              border>
+      <el-table-column prop="deviceName"
+                       label="璁惧鍚嶇О"
+                       width="180"></el-table-column>
+      <el-table-column prop="defectDescription"
+                       label="缂洪櫡鎻忚堪"
+                       win-width="300"></el-table-column>
+      <el-table-column prop="status"
+                       label="鐘舵��"
+                       width="220">
         <template #default="{ row }">
           <el-tag :type="row.status === '涓ラ噸缂洪櫡' ? 'danger' : 'success'">
             {{ row.status }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="鎿嶄綔" width="220">
+      <el-table-column label="鎿嶄綔"
+                       width="220">
         <template #default="{ row }">
-          <el-button
-            v-if="row.status === '涓ラ噸缂洪櫡' || row.status === '涓�鑸己闄�'"
-            type="text"
-            @click="eliminateDefect(row)"
-          >
+          <el-button v-if="row.status === '涓ラ噸缂洪櫡' || row.status === '涓�鑸己闄�'"
+                     type="text"
+                     @click="eliminateDefect(row)">
             娑堥櫎缂洪櫡
           </el-button>
           <!-- <el-button
@@ -32,30 +39,38 @@
           >
             杞淮淇崟
           </el-button> -->
-          <el-button type="text" @click="getLedger(row.deviceLedgerId)">
+          <el-button type="text"
+                     @click="getLedger(row.deviceLedgerId)">
             鏌ョ湅鍙拌处
           </el-button>
         </template>
       </el-table-column>
     </el-table>
-
     <!-- 缂洪櫡鐧昏瀵硅瘽妗� -->
-    <el-dialog title="鐧昏璁惧缂洪櫡" v-model="showRegisterDialog" width="50%">
-      <el-form :model="defectForm" :rules="defectRules" ref="defectFormRef" label-width="100px">
-        <el-form-item label="璁惧鍚嶇О" prop="deviceName">
-          <el-select v-model="defectForm.deviceLedgerId" @change="setDeviceModel">
-            <el-option
-              v-for="(item, index) in deviceOptions"
-              :key="index"
-              :label="item.deviceName"
-              :value="item.id"
-            ></el-option>
+    <el-dialog title="鐧昏璁惧缂洪櫡"
+               v-model="showRegisterDialog"
+               width="50%">
+      <el-form :model="defectForm"
+               :rules="defectRules"
+               ref="defectFormRef"
+               label-width="100px">
+        <el-form-item label="璁惧鍚嶇О"
+                      prop="deviceName">
+          <el-select v-model="defectForm.deviceLedgerId"
+                     @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-form-item label="缂洪櫡鎻忚堪" prop="defectDescription">
-          <el-input type="textarea" v-model="defectForm.defectDescription"></el-input>
+        <el-form-item label="缂洪櫡鎻忚堪"
+                      prop="defectDescription">
+          <el-input type="textarea"
+                    v-model="defectForm.defectDescription"></el-input>
         </el-form-item>
-        <el-form-item label="璁惧鐘舵��" prop="status">
+        <el-form-item label="璁惧鐘舵��"
+                      prop="status">
           <el-radio-group v-model="defectForm.status">
             <el-radio label="姝e父">姝e父</el-radio>
             <el-radio label="涓�鑸己闄�">涓�鑸己闄�</el-radio>
@@ -65,157 +80,168 @@
       </el-form>
       <template #footer>
         <span class="dialog-footer">
+          <el-button type="primary"
+                     @click="submitDefectForm">纭畾</el-button>
           <el-button @click="showRegisterDialog = false">鍙栨秷</el-button>
-          <el-button type="primary" @click="submitDefectForm">纭畾</el-button>
         </span>
       </template>
     </el-dialog>
-
     <!-- 缂洪櫡璁惧鍙拌处瀵硅瘽妗� -->
-    <el-dialog title="缂洪櫡璁惧鍙拌处" v-model="showLedgerDialog" width="80%">
-      <el-table :data="ledgerList" style="width: 100%; margin-top: 10px;" border>
-        <el-table-column prop="deviceName" label="璁惧鍚嶇О"></el-table-column>
-        <el-table-column prop="defectDescription" label="缂洪櫡鎻忚堪"></el-table-column>
-        <el-table-column prop="status" label="鐘舵��"></el-table-column>
-        <el-table-column prop="eliminateTime" label="娑堢己鏃堕棿"></el-table-column>
+    <el-dialog title="缂洪櫡璁惧鍙拌处"
+               v-model="showLedgerDialog"
+               width="80%">
+      <el-table :data="ledgerList"
+                style="width: 100%; margin-top: 10px;"
+                border>
+        <el-table-column prop="deviceName"
+                         label="璁惧鍚嶇О"></el-table-column>
+        <el-table-column prop="defectDescription"
+                         label="缂洪櫡鎻忚堪"></el-table-column>
+        <el-table-column prop="status"
+                         label="鐘舵��"></el-table-column>
+        <el-table-column prop="eliminateTime"
+                         label="娑堢己鏃堕棿"></el-table-column>
       </el-table>
     </el-dialog>
   </div>
 </template>
 
 <script setup>
-import { ref, reactive } from 'vue';
-import { ElMessage } from 'element-plus';
-import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
-// 鍋囪浠ヤ笅鏄悗绔帴鍙�
-import {
-  registerDefect,
-  getDefectList,
-  eliminateDefect as apiEliminateDefect, 
-  getDefectLedger,
-  deleteDefect
-} from '@/api/equipmentManagement/defectManagement';
+  import { ref, reactive } from "vue";
+  import { ElMessage } from "element-plus";
+  import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
+  // 鍋囪浠ヤ笅鏄悗绔帴鍙�
+  import {
+    registerDefect,
+    getDefectList,
+    eliminateDefect as apiEliminateDefect,
+    getDefectLedger,
+    deleteDefect,
+  } from "@/api/equipmentManagement/defectManagement";
 
-// 缂洪櫡鍒楄〃
-const defectList = ref([]);
-// 鐧昏瀵硅瘽妗嗘樉绀虹姸鎬�
-const showRegisterDialog = ref(false);
-// 鍙拌处瀵硅瘽妗嗘樉绀虹姸鎬�
-const showLedgerDialog = ref(false);
-// 缂洪櫡琛ㄥ崟
-const defectForm = reactive({
-  deviceLedgerId: '',
-  defectDescription: '',
-  status: '',
-});
-const deviceOptions = ref([]);
-// 琛ㄥ崟楠岃瘉瑙勫垯
-const defectRules = reactive({
-  deviceLedgerId: [{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'blur' }],
-  defectDescription: [{ required: true, message: '璇疯緭鍏ョ己闄锋弿杩�', trigger: 'blur' }]
-});
-// 琛ㄥ崟寮曠敤
-const defectFormRef = ref(null);
-// 鍙拌处鍒楄〃
-const ledgerList = ref([]);
+  // 缂洪櫡鍒楄〃
+  const defectList = ref([]);
+  // 鐧昏瀵硅瘽妗嗘樉绀虹姸鎬�
+  const showRegisterDialog = ref(false);
+  // 鍙拌处瀵硅瘽妗嗘樉绀虹姸鎬�
+  const showLedgerDialog = ref(false);
+  // 缂洪櫡琛ㄥ崟
+  const defectForm = reactive({
+    deviceLedgerId: "",
+    defectDescription: "",
+    status: "",
+  });
+  const deviceOptions = ref([]);
+  // 琛ㄥ崟楠岃瘉瑙勫垯
+  const defectRules = reactive({
+    deviceLedgerId: [
+      { required: true, message: "璇疯緭鍏ヨ澶囧悕绉�", trigger: "blur" },
+    ],
+    defectDescription: [
+      { required: true, message: "璇疯緭鍏ョ己闄锋弿杩�", trigger: "blur" },
+    ],
+  });
+  // 琛ㄥ崟寮曠敤
+  const defectFormRef = ref(null);
+  // 鍙拌处鍒楄〃
+  const ledgerList = ref([]);
 
-const loadDeviceName = async () => {
-  const { data } = await getDeviceLedger();
-  // console.log(data);
-  deviceOptions.value = data;
-};
+  const loadDeviceName = async () => {
+    const { data } = await getDeviceLedger();
+    // console.log(data);
+    deviceOptions.value = data;
+  };
 
-// 鑾峰彇缂洪櫡鍒楄〃
-const fetchDefectList = async () => {
-  try {
-    const res = await getDefectList();
-    if (res.code === 200) {
-      defectList.value = res.data.records;
-    } else {
-      ElMessage.error(res.message || '鑾峰彇缂洪櫡鍒楄〃澶辫触');
+  // 鑾峰彇缂洪櫡鍒楄〃
+  const fetchDefectList = async () => {
+    try {
+      const res = await getDefectList();
+      if (res.code === 200) {
+        defectList.value = res.data.records;
+      } else {
+        ElMessage.error(res.message || "鑾峰彇缂洪櫡鍒楄〃澶辫触");
+      }
+    } catch (error) {
+      ElMessage.error("鑾峰彇缂洪櫡鍒楄〃澶辫触");
     }
-  } catch (error) {
-    ElMessage.error('鑾峰彇缂洪櫡鍒楄〃澶辫触');
-  }
-};
+  };
 
-// 鎻愪氦缂洪櫡鐧昏琛ㄥ崟
-const submitDefectForm = async () => {
-  if (!defectFormRef.value) return;
-  try {
-    await defectFormRef.value.validate();
-    const res = await registerDefect(defectForm);
-    if (res.code === 200) {
-      ElMessage.success('缂洪櫡鐧昏鎴愬姛');
-      showRegisterDialog.value = false;
-      fetchDefectList();
-    } else {
-      ElMessage.error(res.message || '缂洪櫡鐧昏澶辫触');
+  // 鎻愪氦缂洪櫡鐧昏琛ㄥ崟
+  const submitDefectForm = async () => {
+    if (!defectFormRef.value) return;
+    try {
+      await defectFormRef.value.validate();
+      const res = await registerDefect(defectForm);
+      if (res.code === 200) {
+        ElMessage.success("缂洪櫡鐧昏鎴愬姛");
+        showRegisterDialog.value = false;
+        fetchDefectList();
+      } else {
+        ElMessage.error(res.message || "缂洪櫡鐧昏澶辫触");
+      }
+    } catch (error) {
+      ElMessage.error("璇峰~鍐欏畬鏁磋〃鍗曚俊鎭�");
     }
-  } catch (error) {
-    ElMessage.error('璇峰~鍐欏畬鏁磋〃鍗曚俊鎭�');
-  }
-};
+  };
 
-// 娑堥櫎缂洪櫡
-const eliminateDefect = async (row) => {
-
-  try {
-    const res = await apiEliminateDefect(row);
-    if (res.code === 200) {
-      ElMessage.success('缂洪櫡娑堥櫎鎴愬姛');
-      fetchDefectList();
-    } else {
-      ElMessage.error(res.message || '缂洪櫡娑堥櫎澶辫触');
+  // 娑堥櫎缂洪櫡
+  const eliminateDefect = async row => {
+    try {
+      const res = await apiEliminateDefect(row);
+      if (res.code === 200) {
+        ElMessage.success("缂洪櫡娑堥櫎鎴愬姛");
+        fetchDefectList();
+      } else {
+        ElMessage.error(res.message || "缂洪櫡娑堥櫎澶辫触");
+      }
+    } catch (error) {
+      ElMessage.error("缂洪櫡娑堥櫎澶辫触");
     }
-  } catch (error) {
-    ElMessage.error('缂洪櫡娑堥櫎澶辫触');
-  }
-};
+  };
 
-// // 杞淮淇伐鍗�
-// const transferToRepairOrder = async (id) => {
-//   try {
-//     const res = await transferToRepair(id);
-//     if (res.code === 200) {
-//       ElMessage.success('杞淮淇伐鍗曟垚鍔�');
-//     } else {
-//       ElMessage.error(res.message || '杞淮淇伐鍗曞け璐�');
-//     }
-//   } catch (error) {
-//     ElMessage.error('杞淮淇伐鍗曞け璐�');
-//   }
-// };
+  // // 杞淮淇伐鍗�
+  // const transferToRepairOrder = async (id) => {
+  //   try {
+  //     const res = await transferToRepair(id);
+  //     if (res.code === 200) {
+  //       ElMessage.success('杞淮淇伐鍗曟垚鍔�');
+  //     } else {
+  //       ElMessage.error(res.message || '杞淮淇伐鍗曞け璐�');
+  //     }
+  //   } catch (error) {
+  //     ElMessage.error('杞淮淇伐鍗曞け璐�');
+  //   }
+  // };
 
-// 鑾峰彇缂洪櫡璁惧鍙拌处
-const getLedger = async (deviceLedgerId) => {
-  try {
-    const res = await getDefectLedger(deviceLedgerId);
-    if (res.code === 200) {
-      ledgerList.value = res.data.records;
-      showLedgerDialog.value = true;
-    } else {
-      ElMessage.error(res.message || '鑾峰彇缂洪櫡璁惧鍙拌处澶辫触');
+  // 鑾峰彇缂洪櫡璁惧鍙拌处
+  const getLedger = async deviceLedgerId => {
+    try {
+      const res = await getDefectLedger(deviceLedgerId);
+      if (res.code === 200) {
+        ledgerList.value = res.data.records;
+        showLedgerDialog.value = true;
+      } else {
+        ElMessage.error(res.message || "鑾峰彇缂洪櫡璁惧鍙拌处澶辫触");
+      }
+    } catch (error) {
+      ElMessage.error("鑾峰彇缂洪櫡璁惧鍙拌处澶辫触");
     }
-  } catch (error) {
-    ElMessage.error('鑾峰彇缂洪櫡璁惧鍙拌处澶辫触');
-  }
-};
+  };
 
-// 缁勪欢鎸傝浇鏃惰幏鍙栫己闄峰垪琛�
-const onMounted = () => {
-  fetchDefectList();
-  loadDeviceName();
-};
-onMounted();
+  // 缁勪欢鎸傝浇鏃惰幏鍙栫己闄峰垪琛�
+  const onMounted = () => {
+    fetchDefectList();
+    loadDeviceName();
+  };
+  onMounted();
 </script>
 
 <style scoped>
-.defect-management {
-  padding: 20px;
-}
+  .defect-management {
+    padding: 20px;
+  }
 
-.actions {
-  margin-bottom: 10px;
-}
+  .actions {
+    margin-bottom: 10px;
+  }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3