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 |   69 +++++++++++-----------------------
 1 files changed, 22 insertions(+), 47 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index 98a0731..132921a 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -53,35 +53,9 @@
           @pagination="pagination"
           :total="page.total"
       >
-        <template #reasonAnalysis="{ row }">
-          <el-button
-              link
-              type="primary"
-              @click="openTextPreviewDialog('鍘熷洜鍒嗘瀽', row?.reasonAnalysis)"
-          >
-            {{ row?.reasonAnalysis}}
-          </el-button>
-        </template>
-        <template #preventiveCorrective="{ row }">
-          <el-button
-              link
-              type="primary"
-              @click="openTextPreviewDialog('棰勯槻涓庣籂姝f帾鏂�', row?.preventiveCorrective)"
-          >
-            {{ row?.preventiveCorrective}}
-          </el-button>
-        </template>
-        <template #lossWorking="{ row }">
-          <span>{{ row?.lossWorking ?? '-' }}</span>
-        </template>
-        <template #lossMaterial="{ row }">
-          <span>{{ row?.lossMaterial ?? '-' }}</span>
-        </template>
       </PIMTable>
     </div>
-    <el-dialog v-model="textPreviewDialogVisible" :title="textPreviewTitle" width="600px">
-      <div class="text-preview-content">{{ textPreviewContent || "鏆傛棤鍐呭" }}</div>
-    </el-dialog>
+    <DetailDia ref="detailDiaRef" />
     <FormDia ref="formDia" @close="handleQuery"></FormDia>
     <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
   </div>
@@ -94,6 +68,7 @@
 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({
@@ -204,16 +179,14 @@
   {
     label: "鍘熷洜鍒嗘瀽",
     prop: "reasonAnalysis",
-    dataType: "slot",
     slot: "reasonAnalysis",
-    width: 160
+    width: 120
   },
   {
     label: "棰勯槻涓庣籂姝f帾鏂�",
     prop: "preventiveCorrective",
-    dataType: "slot",
     slot: "preventiveCorrective",
-    width: 180
+    width: 120
   },
   {
     label: "宸ユ椂鎹熷け",
@@ -230,8 +203,15 @@
     label: "鎿嶄綔",
     align: "center",
     fixed: "right",
-    width: 100,
+    width: 140,
     operation: [
+      {
+        name: "璇︽儏",
+        type: "text",
+        clickFun: (row) => {
+          openDetailDialog(row);
+        },
+      },
       {
         name: "澶勭悊",
         type: "text",
@@ -246,9 +226,6 @@
 const tableData = ref([]);
 const selectedRows = ref([]);
 const tableLoading = ref(false);
-const textPreviewDialogVisible = ref(false);
-const textPreviewTitle = ref("");
-const textPreviewContent = ref("");
 const page = reactive({
   current: 1,
   size: 100,
@@ -256,6 +233,7 @@
 });
 const formDia = ref()
 const inspectionFormDia = ref()
+const detailDiaRef = ref()
 const { proxy } = getCurrentInstance()
 
 const changeDaterange = (value) => {
@@ -315,11 +293,9 @@
     inspectionFormDia.value?.openDialog(type, row)
   })
 };
-// 鏌ョ湅瀛楁璇︽儏
-const openTextPreviewDialog = (title, content) => {
-  textPreviewTitle.value = title;
-  textPreviewContent.value = content || "";
-  textPreviewDialogVisible.value = true;
+// 鎵撳紑璇︽儏寮规
+const openDetailDialog = (row) => {
+  detailDiaRef.value?.openDialog(row);
 };
 
 // 鍒犻櫎
@@ -366,12 +342,11 @@
 </script>
 
 <style scoped>
-.text-preview-content {
-  white-space: pre-wrap;
-  line-height: 1.6;
-  color: #606266;
-  word-break: break-word;
-  max-height: 60vh;
-  overflow-y: auto;
+.text-ellipsis {
+  display: inline-block;
+  width: 100%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
 </style>

--
Gitblit v1.9.3