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