From 9648963e54f4d9f0d2bba06dd2ef7c9c37a3c3d9 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 28 八月 2026 21:59:08 +0800
Subject: [PATCH] feat: 质检不合格详情

---
 src/views/qualityManagement/nonconformingManagement/components/detailModal.vue |   98 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/api/qualityManagement/nonconformingManagement.js                           |    8 ++++
 src/views/qualityManagement/nonconformingManagement/index.vue                  |   12 +++++
 3 files changed, 117 insertions(+), 1 deletions(-)

diff --git a/src/api/qualityManagement/nonconformingManagement.js b/src/api/qualityManagement/nonconformingManagement.js
index 50a1b74..22a1ac9 100644
--- a/src/api/qualityManagement/nonconformingManagement.js
+++ b/src/api/qualityManagement/nonconformingManagement.js
@@ -48,3 +48,11 @@
     data: query,
   });
 }
+
+// 鏌ヨ涓嶅悎鏍艰鎯�
+  return request({
+    url: "/quality/qualityUnqualified/detail/" + query,
+    method: "get",
+    data: query,
+  });
+}
diff --git a/src/views/qualityManagement/nonconformingManagement/components/detailModal.vue b/src/views/qualityManagement/nonconformingManagement/components/detailModal.vue
new file mode 100644
index 0000000..4622796
--- /dev/null
+++ b/src/views/qualityManagement/nonconformingManagement/components/detailModal.vue
@@ -0,0 +1,98 @@
+<template>
+  <el-dialog
+    v-model="visible"
+    title="涓嶅悎鏍煎鐞嗚鎯�"
+    width="70%"
+    @close="handleClose"
+  >
+    <el-descriptions border :column="2" class="detail-descriptions">
+      <el-descriptions-item label="绫诲埆">
+        {{ getInspectTypeName(form.inspectType) }}
+      </el-descriptions-item>
+      <el-descriptions-item label="浜у搧鍚嶇О">
+        {{ form.productName }}
+      </el-descriptions-item>
+      <el-descriptions-item label="瑙勬牸鍨嬪彿">
+        {{ form.model }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍗曚綅">
+        {{ form.unit }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鏁伴噺">
+        {{ form.quantity }}
+      </el-descriptions-item>
+      <el-descriptions-item label="妫�娴嬫棩鏈�">
+        {{ form.checkTime }}
+      </el-descriptions-item>
+      <el-descriptions-item label="宸ュ簭">
+        {{ form.process }}
+      </el-descriptions-item>
+      <el-descriptions-item label="妫�楠屽憳">
+        {{ form.checkName }}
+      </el-descriptions-item>
+      <el-descriptions-item label="妫�娴嬪崟浣�">
+        {{ form.checkCompany }}
+      </el-descriptions-item>
+      <el-descriptions-item label="涓嶅悎鏍肩幇璞�" :span="2">
+        {{ form.defectivePhenomena }}
+      </el-descriptions-item>
+      <el-descriptions-item label="澶勭悊缁撴灉">
+        {{ form.dealResult }}
+      </el-descriptions-item>
+      <el-descriptions-item label="澶勭悊浜�">
+        {{ form.dealName }}
+      </el-descriptions-item>
+      <el-descriptions-item label="澶勭悊鏃ユ湡">
+        {{ form.dealTime }}
+      </el-descriptions-item>
+    </el-descriptions>
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button @click="handleClose">鍏抽棴</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import { ref } from "vue";
+import { getQualityUnqualifiedDetail } from "@/api/qualityManagement/nonconformingManagement.js";
+
+const visible = ref(false);
+const form = ref({});
+
+const getInspectTypeName = (type) => {
+  if (type === 0) return "鍘熸潗鏂欐楠�";
+  if (type === 1) return "杩囩▼妫�楠�";
+  if (type === 2) return "鍑哄巶妫�楠�";
+  return "";
+};
+
+const openDialog = (row) => {
+  visible.value = true;
+  form.value = { ...row };
+  if (row.id) {
+    getQualityUnqualifiedDetail(row.id).then((res) => {
+      if (res.data) {
+        form.value = { ...res.data };
+      }
+    });
+  }
+};
+
+const handleClose = () => {
+  visible.value = false;
+  form.value = {};
+};
+
+defineExpose({
+  openDialog,
+});
+</script>
+
+<style scoped>
+.detail-descriptions :deep(.el-descriptions__label) {
+  width: 120px;
+  justify-content: flex-end;
+}
+</style>
diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index fc9d5d2..7f9feb6 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -55,6 +55,7 @@
     </div>
     <FormDia ref="formDia" @close="handleQuery"></FormDia>
     <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
+    <DetailModal ref="detailModal"></DetailModal>
   </div>
 </template>
 
@@ -65,6 +66,7 @@
 import {ElMessageBox} from "element-plus";
 import {qualityUnqualifiedDel, qualityUnqualifiedListPage} from "@/api/qualityManagement/nonconformingManagement.js";
 import InspectionFormDia from "@/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue";
+import DetailModal from "@/views/qualityManagement/nonconformingManagement/components/detailModal.vue";
 import dayjs from "dayjs";
 
 const data = reactive({
@@ -177,7 +179,7 @@
     label: "鎿嶄綔",
     align: "center",
     fixed: "right",
-    width: 100,
+    width: 150,
     operation: [
       {
         name: "澶勭悊",
@@ -186,6 +188,13 @@
           openInspectionForm("edit", row);
         },
         disabled: (row) => row.inspectState === 1,
+      },
+      {
+        name: "璇︽儏",
+        type: "text",
+        clickFun: (row) => {
+          detailModal.value?.openDialog(row);
+        },
       },
     ],
   },
@@ -200,6 +209,7 @@
 });
 const formDia = ref()
 const inspectionFormDia = ref()
+const detailModal = ref()
 const { proxy } = getCurrentInstance()
 
 const changeDaterange = (value) => {

--
Gitblit v1.9.3