From 65193cc9b4e27aad36a65eca447e6c62f6ee037f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 17 四月 2026 15:25:07 +0800
Subject: [PATCH] 不合格管理:重构详情展示与操作按钮

---
 src/views/qualityManagement/nonconformingManagement/index.vue |   76 ++++++++++++++++++++++++++++++-------
 1 files changed, 61 insertions(+), 15 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index d3ac667..132921a 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -1,10 +1,11 @@
+// 涓嶅悎鏍肩鐞�
 <template>
   <div class="app-container">
     <div class="search_form">
       <div style="display: flex;flex-direction: row;align-items: center;">
         <div>
           <span class="search_title">绫诲瀷锛�</span>
-          <el-select v-model="searchForm.inspectType" clearable style="width: 240px" @change="handleQuery">
+          <el-select v-model="searchForm.inspectType" clearable style="width: 200px" @change="handleQuery">
             <el-option label="鍘熸潗鏂欐楠�" :value="0" />
             <el-option label="杩囩▼妫�楠�" :value="1" />
             <el-option label="鍑哄巶妫�楠�" :value="2" />
@@ -12,7 +13,7 @@
         </div>
         <div style="margin-left: 10px">
           <span class="search_title">鐘舵�侊細</span>
-          <el-select v-model="searchForm.inspectState" clearable style="width: 240px" @change="handleQuery">
+          <el-select v-model="searchForm.inspectState" clearable style="width: 200px" @change="handleQuery">
             <el-option label="寰呭鐞�" :value="0" />
             <el-option label="宸插鐞�" :value="1" />
           </el-select>
@@ -21,7 +22,7 @@
           <span class="search_title">浜у搧鍚嶇О锛�</span>
           <el-input
               v-model="searchForm.productName"
-              style="width: 240px"
+              style="width: 200px"
               placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
               @change="handleQuery"
               clearable
@@ -30,6 +31,7 @@
         </div>
         <span  style="margin-left: 10px" class="search_title">妫�娴嬫棩鏈燂細</span>
         <el-date-picker  v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
+												 style="width: 300px"
                          placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
         <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
       </div>
@@ -50,8 +52,10 @@
           :tableLoading="tableLoading"
           @pagination="pagination"
           :total="page.total"
-      ></PIMTable>
+      >
+      </PIMTable>
     </div>
+    <DetailDia ref="detailDiaRef" />
     <FormDia ref="formDia" @close="handleQuery"></FormDia>
     <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
   </div>
@@ -59,11 +63,12 @@
 
 <script setup>
 import { Search } from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
+import {onMounted, ref, reactive, toRefs, nextTick, getCurrentInstance} from "vue";
 import FormDia from "@/views/qualityManagement/nonconformingManagement/components/formDia.vue";
 import {ElMessageBox} from "element-plus";
 import {qualityUnqualifiedDel, qualityUnqualifiedListPage} from "@/api/qualityManagement/nonconformingManagement.js";
 import InspectionFormDia from "@/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue";
+import DetailDia from "@/views/qualityManagement/nonconformingManagement/components/detailDia.vue";
 import dayjs from "dayjs";
 
 const data = reactive({
@@ -71,12 +76,9 @@
     inspectType: "",
     inspectState: "",
     productName: "",
-    entryDate: [
-      dayjs().format("YYYY-MM-DD"),
-      dayjs().add(1, "day").format("YYYY-MM-DD"),
-    ], // 褰曞叆鏃ユ湡
-    entryDateStart: dayjs().format("YYYY-MM-DD"),
-    entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"),
+    entryDate: undefined, // 褰曞叆鏃ユ湡
+    entryDateStart: undefined,
+    entryDateEnd: undefined,
   },
 });
 const { searchForm } = toRefs(data);
@@ -175,17 +177,39 @@
     width: 120
   },
   {
+    label: "鍘熷洜鍒嗘瀽",
+    prop: "reasonAnalysis",
+    slot: "reasonAnalysis",
+    width: 120
+  },
+  {
+    label: "棰勯槻涓庣籂姝f帾鏂�",
+    prop: "preventiveCorrective",
+    slot: "preventiveCorrective",
+    width: 120
+  },
+  {
+    label: "宸ユ椂鎹熷け",
+    prop: "lossWorking",
+    width: 140
+  },
+  {
+    label: "鏉愭枡璐规崯澶�",
+    prop: "lossMaterial",
+    width: 140
+  },
+  {
     dataType: "action",
     label: "鎿嶄綔",
     align: "center",
     fixed: "right",
-    width: 120,
+    width: 140,
     operation: [
       {
-        name: "缂栬緫",
+        name: "璇︽儏",
         type: "text",
         clickFun: (row) => {
-          openForm("edit", row);
+          openDetailDialog(row);
         },
       },
       {
@@ -194,6 +218,7 @@
         clickFun: (row) => {
           openInspectionForm("edit", row);
         },
+        disabled: (row) => row.inspectState === 1,
       },
     ],
   },
@@ -208,6 +233,7 @@
 });
 const formDia = ref()
 const inspectionFormDia = ref()
+const detailDiaRef = ref()
 const { proxy } = getCurrentInstance()
 
 const changeDaterange = (value) => {
@@ -249,15 +275,27 @@
 
 // 鎵撳紑寮规
 const openForm = (type, row) => {
+  if (type !== 'add' && row?.inspectState === 1) {
+    proxy.$modal.msgWarning("宸插鐞嗙殑鏁版嵁涓嶈兘鍐嶇紪杈�");
+    return;
+  }
   nextTick(() => {
     formDia.value?.openDialog(type, row)
   })
 };
 // 鎵撳紑澶勭悊寮规
 const openInspectionForm = (type, row) => {
+  if (row?.inspectState === 1) {
+    proxy.$modal.msgWarning("宸插鐞嗙殑鏁版嵁涓嶈兘鍐嶅鐞�");
+    return;
+  }
   nextTick(() => {
     inspectionFormDia.value?.openDialog(type, row)
   })
+};
+// 鎵撳紑璇︽儏寮规
+const openDetailDialog = (row) => {
+  detailDiaRef.value?.openDialog(row);
 };
 
 // 鍒犻櫎
@@ -303,4 +341,12 @@
 });
 </script>
 
-<style scoped></style>
+<style scoped>
+.text-ellipsis {
+  display: inline-block;
+  width: 100%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+</style>

--
Gitblit v1.9.3