From fa4a8a332b2b60b7b94b1f763091c1daf8927710 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 22 四月 2026 14:18:35 +0800
Subject: [PATCH] 优化选择数据逻辑,仅保留具有子项的行以便于删除操作

---
 src/views/procurementManagement/procurementLedger/index.vue |   68 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 163d88d..9a76e2a 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -33,6 +33,20 @@
                       prefix-icon="Search"
                       @change="handleQuery" />
           </el-form-item>
+          <el-form-item label="鍏ュ簱鐘舵�侊細">
+            <el-select v-model="searchForm.stockStatus"
+                       placeholder="璇烽�夋嫨"
+                       clearable
+                       style="width: 140px"
+                       @change="handleQuery">
+              <el-option label="鏈叆搴�"
+                         :value="0" />
+              <el-option label="閮ㄥ垎鍏ュ簱"
+                         :value="1" />
+              <el-option label="宸插叆搴�"
+                         :value="2" />
+            </el-select>
+          </el-form-item>
           <el-form-item label="褰曞叆鏃ユ湡锛�">
             <el-date-picker v-model="searchForm.entryDate"
                             value-format="YYYY-MM-DD"
@@ -96,6 +110,16 @@
                                prop="availableQuality" />
               <el-table-column label="閫�璐ф暟閲�"
                                prop="returnQuality" />
+              <el-table-column label="鍏ュ簱鐘舵��"
+                               width="100px"
+                               align="center">
+                <template #default="scope">
+                  <el-tag :type="getProductStockStatusType(scope.row.productStockStatus)"
+                          size="small">
+                    {{ stockStatusText[scope.row.productStockStatus] || '鏈叆搴�' }}
+                  </el-tag>
+                </template>
+              </el-table-column>
               <el-table-column label="绋庣巼(%)"
                                prop="taxRate" />
               <el-table-column label="鍚◣鍗曚环(鍏�)"
@@ -154,6 +178,16 @@
                          width="200"
                          show-overflow-tooltip
                          :formatter="formattedNumber" />
+        <el-table-column label="鍏ュ簱鐘舵��"
+                         width="120"
+                         align="center">
+          <template #default="scope">
+            <el-tag :type="getStockStatusType(scope.row.stockStatus)"
+                    size="small">
+              {{ stockStatusText[scope.row.stockStatus] || '鏈叆搴�' }}
+            </el-tag>
+          </template>
+        </el-table-column>
         <el-table-column label="褰曞叆浜�"
                          prop="recorderName"
                          width="120"
@@ -808,6 +842,33 @@
     return typeMap[status] || "";
   };
 
+  // 鍏ュ簱鐘舵�佹樉绀烘枃鏈�
+  const stockStatusText = {
+    0: "鏈叆搴�",
+    1: "閮ㄥ垎鍏ュ簱",
+    2: "宸插叆搴�",
+  };
+
+  // 鑾峰彇涓昏〃鍏ュ簱鐘舵�佹爣绛剧被鍨�
+  const getStockStatusType = status => {
+    const typeMap = {
+      0: "info",
+      1: "success",
+      2: "success",
+    };
+    return typeMap[status] || "info";
+  };
+
+  // 鑾峰彇浜у搧鍏ュ簱鐘舵�佹爣绛剧被鍨�
+  const getProductStockStatusType = status => {
+    const typeMap = {
+      0: "info",
+      1: "warning",
+      2: "success",
+    };
+    return typeMap[status] || "info";
+  };
+
   const templateName = ref("");
   const filterInputValue = ref("");
   const templateList = ref([]);
@@ -919,6 +980,7 @@
       purchaseContractNumber: "", // 閲囪喘鍚堝悓缂栧彿
       salesContractNo: "", // 閿�鍞悎鍚岀紪鍙�
       projectName: "", // 椤圭洰鍚嶇О
+      stockStatus: undefined, // 鍏ュ簱鐘舵��
       entryDate: null, // 褰曞叆鏃ユ湡
       entryDateStart: undefined,
       entryDateEnd: undefined,
@@ -1253,7 +1315,7 @@
   };
   // 琛ㄦ牸閫夋嫨鏁版嵁
   const handleSelectionChange = selection => {
-    selectedRows.value = selection;
+    selectedRows.value = selection.filter(item => Array.isArray(item.children));
   };
   const productSelected = selectedRows => {
     productSelectedRows.value = selectedRows;
@@ -1725,7 +1787,9 @@
   const handleDelete = () => {
     let ids = [];
     if (selectedRows.value.length > 0) {
-      ids = selectedRows.value.map(item => item.id);
+      ids = selectedRows.value
+        .filter(item => Array.isArray(item.children))
+        .map(item => item.id);
     } else {
       proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
       return;

--
Gitblit v1.9.3