From b176162c23294d8d1bfb9f09cf6bb759efb0124a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 15 七月 2026 14:10:26 +0800
Subject: [PATCH] 银川 1.库存现有量添加自定义出库入库功能 2.整理重复文件

---
 src/views/wls/batch/components/detail.vue |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/views/wls/batch/components/detail.vue b/src/views/wls/batch/components/detail.vue
index 2f0dff0..db02e8a 100644
--- a/src/views/wls/batch/components/detail.vue
+++ b/src/views/wls/batch/components/detail.vue
@@ -1,18 +1,58 @@
 <script lang="ts" setup>
+import type { MdmItemApi } from '#/api/mdm/item';
 import type { MesWmBatchApi } from '#/api/mes/wm/batch';
+import type { DescriptionItemSchema } from '#/components/description';
 
 import { ref } from 'vue';
 
 import { useVbenModal } from '@vben/common-ui';
 
+import { getItem } from '#/api/mdm/item';
 import { getBatch } from '#/api/mes/wm/batch';
 import { useDescription } from '#/components/description';
 
 import { useDetailSchema } from '../data';
 
-const detailData = ref<MesWmBatchApi.Batch>(); // 褰撳墠鎵规璇︽儏
+const detailData = ref<MesWmBatchApi.Batch>();
+const itemData = ref<MdmItemApi.Item>();
 
-const [Descriptions] = useDescription({
+/** 鏍规嵁鐗╂枡鎵规灞炴�ч厤缃繃婊よ鎯呭瓧娈� */
+function filterSchemaByItemFlags(
+  schema: DescriptionItemSchema[],
+  item: MdmItemApi.Item | undefined,
+): DescriptionItemSchema[] {
+  // 鍩虹鏁版嵁瀛楁濮嬬粓鏄剧ず
+  const basicFields = new Set([
+    'code',
+    'itemCode',
+    'itemName',
+    'itemSpecification',
+    'unitName',
+  ]);
+
+  // 鎵规灞炴�у瓧娈典笌 flag 鐨勬槧灏�
+  const flagFieldMap: Record<string, keyof MdmItemApi.Item> = {
+    produceDate: 'produceDateFlag',
+    expireDate: 'expireDateFlag',
+    receiptDate: 'receiptDateFlag',
+    vendorName: 'vendorFlag',
+    purchaseOrderCode: 'purchaseOrderCodeFlag',
+    lotNumber: 'lotNumberFlag',
+    qualityStatus: 'qualityStatusFlag',
+  };
+
+  return schema.filter((s) => {
+    if (basicFields.has(s.field!)) return true;
+    const flagField = flagFieldMap[s.field!];
+    if (flagField) {
+      return item?.[flagField] === true;
+    }
+    // 闈炲熀纭�銆侀潪鎵规灞炴�у瓧娈典笉灞曠ず
+    return false;
+  });
+}
+
+const [Descriptions, descApi] = useDescription({
   bordered: true,
   column: 3,
   schema: useDetailSchema(),
@@ -25,6 +65,7 @@
   async onOpenChange(isOpen) {
     if (!isOpen) {
       detailData.value = undefined;
+      itemData.value = undefined;
       return;
     }
     const data = modalApi.getData<{ id?: number }>();
@@ -34,6 +75,15 @@
     modalApi.lock();
     try {
       detailData.value = await getBatch(data.id);
+      // 鑾峰彇鐗╂枡璇︽儏浠ヨ鍙栨壒娆″睘鎬ч厤缃�
+      if (detailData.value?.itemId) {
+        itemData.value = await getItem(detailData.value.itemId);
+        const filtered = filterSchemaByItemFlags(
+          useDetailSchema(),
+          itemData.value,
+        );
+        descApi.setDescProps({ schema: filtered });
+      }
     } finally {
       modalApi.unlock();
     }

--
Gitblit v1.9.3