From 4a811fb2cd4ee4e1cbfe284bfd1fe3a7d16204ce Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 02 四月 2026 17:35:48 +0800
Subject: [PATCH] fix: 终检表单优化检验用粉剂/液情况字段

---
 src/views/qualityManagement/nonconformingManagement/index.vue |   88 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 65 insertions(+), 23 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index d3ac667..97db7bc 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -4,7 +4,7 @@
       <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 +12,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,21 +21,20 @@
           <span class="search_title">浜у搧鍚嶇О锛�</span>
           <el-input
               v-model="searchForm.productName"
-              style="width: 240px"
-              placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-              @change="handleQuery"
+              style="width: 200px"
               clearable
               :prefix-icon="Search"
           />
         </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>
       <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
+        <!-- <el-button type="primary" @click="openForm('add')">鏂板</el-button> -->
+        <!-- <el-button @click="handleOut">瀵煎嚭</el-button> -->
         <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
       </div>
     </div>
@@ -59,10 +58,10 @@
 
 <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 {qualityUnqualifiedDel, qualityUnqualifiedListPage, downloadReturnRecord} from "@/api/qualityManagement/nonconformingManagement.js";
 import InspectionFormDia from "@/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue";
 import dayjs from "dayjs";
 
@@ -71,12 +70,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);
@@ -146,6 +142,15 @@
     prop: "model",
   },
   {
+    label: "UID鐮�",
+    prop: "uidNo",
+  },
+  {
+    label: "鎵瑰彿",
+    prop: "batchNo",
+    width: 140,
+  },
+  {
     label: "鍗曚綅",
     prop: "unit",
   },
@@ -179,21 +184,23 @@
     label: "鎿嶄綔",
     align: "center",
     fixed: "right",
-    width: 120,
+    width: 180,
     operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openForm("edit", row);
-        },
-      },
       {
         name: "澶勭悊",
         type: "text",
         clickFun: (row) => {
           openInspectionForm("edit", row);
         },
+        disabled: (row) => row.inspectState === 1,
+      },
+      {
+        name: "涓嬭浇杩斿伐闄勪欢",
+        type: "text",
+        clickFun: (row) => {
+          handleDownloadReturnRecord(row);
+        },
+        show: (row) => row.dealResult === "杩斿伐",
       },
     ],
   },
@@ -249,17 +256,52 @@
 
 // 鎵撳紑寮规
 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 handleDownloadReturnRecord = async (row) => {
+  try {
+    const blobData = await downloadReturnRecord(row.id);
+
+    // 鏋勫缓 Blob
+    const blob = new Blob([blobData], {
+      type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+    });
+
+    // 涓嬭浇
+    const url = window.URL.createObjectURL(blob);
+    const link = document.createElement("a");
+    link.href = url;
+    link.download = `杩斿伐闄勪欢.docx`;
+    document.body.appendChild(link);
+    link.click();
+    document.body.removeChild(link);
+    window.URL.revokeObjectURL(url);
+
+    proxy.$modal.msgSuccess("涓嬭浇鎴愬姛");
+  } catch (error) {
+    console.error("涓嬭浇杩斿伐闄勪欢澶辫触:", error);
+    proxy.$modal.msgError("涓嬭浇澶辫触");
+  }
+};
+
 // 鍒犻櫎
 const handleDelete = () => {
   let ids = [];

--
Gitblit v1.9.3