From d48f5076b64aeacad45c0d2cf5ad2188256948f9 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 24 四月 2026 10:22:22 +0800
Subject: [PATCH] fix: 仓储物流新增bug修改

---
 src/views/basicData/product/ProductSelectDialog.vue |   51 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/src/views/basicData/product/ProductSelectDialog.vue b/src/views/basicData/product/ProductSelectDialog.vue
index 6a30381..cdaab57 100644
--- a/src/views/basicData/product/ProductSelectDialog.vue
+++ b/src/views/basicData/product/ProductSelectDialog.vue
@@ -3,7 +3,7 @@
     <el-form :inline="true" :model="query" class="mb-2">
       <el-form-item label="浜у搧澶х被">
         <el-input
-          v-model="query.productName"
+          v-model="query.parentName"
           placeholder="杈撳叆浜у搧澶х被"
           clearable
           :disabled="Boolean(props.fixedProductName)"
@@ -74,7 +74,7 @@
 });
 
 const query = reactive({
-  productName: "",
+  parentName: "",
   model: "",
 });
 
@@ -136,7 +136,7 @@
 }
 
 function onReset() {
-  query.productName = props.fixedProductName ? props.fixedProductName : "";
+  query.parentName = props.fixedProductName ? props.fixedProductName : "";
   query.model = "";
   page.pageNum = 1;
   loadData();
@@ -163,19 +163,40 @@
   loading.value = true;
   try {
     multipleSelection.value = []; // 缈婚〉/鎼滅储鍚庢竻绌洪�夋嫨鏇寸鍚堥鏈�
-    const res: any = await productModelList({
-      productName: query.productName.trim(),
+    const queryParams = {
+      parentName: query.parentName.trim(),
       model: query.model.trim(),
-      current: page.pageNum,
-      size: page.pageSize,
-    });
-    const records = (res?.records || []) as any[];
+    };
     const exclude = (props.excludeParentNames || []).filter(Boolean);
+
+    // 鍏堟媺鍙栧叏閮ㄦ暟鎹紝鍐嶇粺涓�杩囨护锛岄伩鍏嶁�滃彧杩囨护鍒板綋鍓嶉〉鈥濆鑷存紡鏁版嵁
+    const allRecords: any[] = [];
+    const fetchSize = 200;
+    let current = 1;
+    let serverTotal = 0;
+    while (true) {
+      const res: any = await productModelList({
+        ...queryParams,
+        current,
+        size: fetchSize,
+      });
+      const records = (res?.records || []) as any[];
+      serverTotal = Number(res?.total || 0);
+      allRecords.push(...records);
+      if (records.length === 0 || allRecords.length >= serverTotal) {
+        break;
+      }
+      current += 1;
+    }
+
     const filtered = exclude.length
-      ? records.filter((r) => !exclude.includes(String(r?.parentName ?? "")))
-      : records;
-    tableData.value = filtered;
-    total.value = exclude.length ? filtered.length : res.total;
+      ? allRecords.filter((r) => !exclude.includes(String(r?.parentName ?? "")))
+      : allRecords;
+
+    total.value = filtered.length;
+    const start = (page.pageNum - 1) * page.pageSize;
+    const end = start + page.pageSize;
+    tableData.value = filtered.slice(start, end);
   } finally {
     loading.value = false;
   }
@@ -185,9 +206,9 @@
 watch(() => props.modelValue, (visible) => {
   if (visible) {
     multipleSelection.value = [];
-    // 鍙湁浼犱簡 fixedProductName 鎵嶅惎鐢ㄢ�滃浐瀹氬ぇ绫荤瓫閫夆�濈殑鐗规畩閫昏緫锛屽叾瀹冨満鏅繚鎸佸師琛屼负涓嶅彉
+    // 鍙湁浼犱簡 fixedProductName 鎵嶅惎鐢�"鍥哄畾澶х被绛涢��"鐨勭壒娈婇�昏緫锛屽叾瀹冨満鏅繚鎸佸師琛屼负涓嶅彉
     if (props.fixedProductName) {
-      query.productName = props.fixedProductName;
+      query.parentName = props.fixedProductName;
       page.pageNum = 1;
       loadData();
     }

--
Gitblit v1.9.3