From b7eb1da8220f5b72f6891c3c6471ca386604cce4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 10:38:21 +0800
Subject: [PATCH] feat(dashboard): 添加一袋一码首页并重构相关枚举常量

---
 src/views/mes/md/item/components/select-dialog.vue |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/src/views/mes/md/item/components/select-dialog.vue b/src/views/mes/md/item/components/select-dialog.vue
index 30622bf..f30fedb 100644
--- a/src/views/mes/md/item/components/select-dialog.vue
+++ b/src/views/mes/md/item/components/select-dialog.vue
@@ -5,7 +5,7 @@
 
   import { nextTick, ref } from "vue";
 
-  import { CommonStatusEnum } from "../../../../../packages/constants/src";
+  import { CommonStatusEnum } from "@vben/constants";
 
   import { Card, message, Modal } from "ant-design-vue";
 
@@ -23,10 +23,11 @@
 
   const open = ref(false); // 寮圭獥鏄惁鎵撳紑
   const multiple = ref(true); // 鏄惁澶氶��
-  const selectedRows = ref<MesMdItemApi.Item[]>([]); // 宸查�夌墿鏂欏垪琛�
+  const selectedRows = ref<MesMdItemApi.Item[]>([]); // 宸查�夊搧绉嶅垪琛�
   const selectedItemTypeId = ref<number>(); // 褰撳墠绛涢�夊垎绫荤紪鍙�
-  const preSelectedIds = ref<number[]>([]); // 棰勯�夌墿鏂欑紪鍙峰垪琛�
-  const typeTreeRef = ref<InstanceType<typeof MdItemTypeTree>>(); // 鐗╂枡鍒嗙被鏍�
+  const preSelectedIds = ref<number[]>([]); // 棰勯�夊搧绉嶇紪鍙峰垪琛�
+  const productIds = ref<number[]>([]); // 闄愬畾鍙�夌殑鍝佺缂栧彿鍒楄〃锛堜负绌哄垯涓嶉檺鍒讹級
+  const typeTreeRef = ref<InstanceType<typeof MdItemTypeTree>>(); // 鍝佺鍒嗙被鏍�
 
   /** 鑾峰彇褰撳墠琛ㄦ牸鏁版嵁 */
   function getTableRows() {
@@ -77,13 +78,13 @@
     handleConfirm();
   }
 
-  /** 鎸夊垎绫荤瓫閫夌墿鏂� */
+  /** 鎸夊垎绫荤瓫閫夊搧绉� */
   function handleItemTypeNodeClick(row: MesMdItemTypeApi.ItemType | undefined) {
     selectedItemTypeId.value = row?.id;
     gridApi.query();
   }
 
-  /** 鍥炴樉棰勯�夌墿鏂� */
+  /** 鍥炴樉棰勯�夊搧绉� */
   async function applyPreSelection() {
     if (preSelectedIds.value.length === 0) {
       return;
@@ -130,13 +131,20 @@
       proxyConfig: {
         ajax: {
           query: async ({ page }, formValues) => {
-            return await getItemPage({
+            const params: Record<string, unknown> = {
               pageNo: page.currentPage,
               pageSize: page.pageSize,
               ...formValues,
               itemTypeId: selectedItemTypeId.value,
               status: CommonStatusEnum.ENABLE,
-            });
+            };
+            // 闄愬畾鍙�夊搧绉嶈寖鍥�
+            if (productIds.value.length > 0) {
+              params.pageSize = 1000;
+              params.ids = productIds.value.join(',');
+            }
+            const result = await getItemPage(params as never);
+            return result;
           },
         },
       },
@@ -170,14 +178,15 @@
     await gridApi.formApi.resetForm();
   }
 
-  /** 鎵撳紑鐗╂枡閫夋嫨寮圭獥 */
+  /** 鎵撳紑鍝佺閫夋嫨寮圭獥 */
   async function openModal(
     selectedIds?: number[],
-    options?: { multiple?: boolean }
+    options?: { multiple?: boolean; productIds?: number[] }
   ) {
     open.value = true;
     multiple.value = options?.multiple ?? true;
     preSelectedIds.value = selectedIds || [];
+    productIds.value = options?.productIds || [];
     await nextTick();
     gridApi.setGridOptions({
       columns: useItemSelectGridColumns(multiple.value),
@@ -188,13 +197,13 @@
     await applyPreSelection();
   }
 
-  /** 鍏抽棴鐗╂枡閫夋嫨寮圭獥 */
+  /** 鍏抽棴鍝佺閫夋嫨寮圭獥 */
   async function closeModal() {
     open.value = false;
     await resetQueryState();
   }
 
-  /** 纭閫夋嫨鐗╂枡 */
+  /** 纭閫夋嫨鍝佺 */
   function handleConfirm() {
     const rows = multiple.value ? getMultipleSelectedRows() : selectedRows.value;
     if (rows.length === 0) {
@@ -210,7 +219,7 @@
 
 <template>
   <Modal v-model:open="open"
-         title="鐗╂枡浜у搧閫夋嫨"
+         title="鍝佺浜у搧閫夋嫨"
          width="80%"
          :destroy-on-close="true"
          @ok="handleConfirm"
@@ -221,7 +230,7 @@
                         @node-click="handleItemTypeNodeClick" />
       </Card>
       <div class="w-4/5">
-        <Grid table-title="鐗╂枡浜у搧鍒楄〃" />
+        <Grid table-title="鍝佺浜у搧鍒楄〃" />
       </div>
     </div>
   </Modal>

--
Gitblit v1.9.3