From d2fb1300564eaa8166f4db1184c521e468cd2ed3 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 17 四月 2026 14:23:09 +0800
Subject: [PATCH] 不合格处理:增加字段增删改,展示
---
src/views/qualityManagement/nonconformingManagement/index.vue | 104 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 87 insertions(+), 17 deletions(-)
diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index 169a2f3..98a0731 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -1,3 +1,4 @@
+// 涓嶅悎鏍肩鐞�
<template>
<div class="app-container">
<div class="search_form">
@@ -51,8 +52,36 @@
:tableLoading="tableLoading"
@pagination="pagination"
:total="page.total"
- ></PIMTable>
+ >
+ <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>
<FormDia ref="formDia" @close="handleQuery"></FormDia>
<InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
</div>
@@ -60,7 +89,7 @@
<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";
@@ -72,12 +101,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);
@@ -176,25 +202,43 @@
width: 120
},
{
+ label: "鍘熷洜鍒嗘瀽",
+ prop: "reasonAnalysis",
+ dataType: "slot",
+ slot: "reasonAnalysis",
+ width: 160
+ },
+ {
+ label: "棰勯槻涓庣籂姝f帾鏂�",
+ prop: "preventiveCorrective",
+ dataType: "slot",
+ slot: "preventiveCorrective",
+ width: 180
+ },
+ {
+ label: "宸ユ椂鎹熷け",
+ prop: "lossWorking",
+ width: 140
+ },
+ {
+ label: "鏉愭枡璐规崯澶�",
+ prop: "lossMaterial",
+ width: 140
+ },
+ {
dataType: "action",
label: "鎿嶄綔",
align: "center",
fixed: "right",
- width: 120,
+ width: 100,
operation: [
- {
- name: "缂栬緫",
- type: "text",
- clickFun: (row) => {
- openForm("edit", row);
- },
- },
{
name: "澶勭悊",
type: "text",
clickFun: (row) => {
openInspectionForm("edit", row);
},
+ disabled: (row) => row.inspectState === 1,
},
],
},
@@ -202,6 +246,9 @@
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,
@@ -250,15 +297,29 @@
// 鎵撳紑寮规
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 openTextPreviewDialog = (title, content) => {
+ textPreviewTitle.value = title;
+ textPreviewContent.value = content || "";
+ textPreviewDialogVisible.value = true;
};
// 鍒犻櫎
@@ -304,4 +365,13 @@
});
</script>
-<style scoped></style>
+<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;
+}
+</style>
--
Gitblit v1.9.3