From 346a988f537228ae44731cd31007f1412b482e83 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 16:32:10 +0800
Subject: [PATCH] refactor(mdm): 移除物料主数据中废弃的字段配置

---
 src/views/mes/pro/batch/data.ts |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/src/views/mes/pro/batch/data.ts b/src/views/mes/pro/batch/data.ts
index 408d018..579f7ba 100644
--- a/src/views/mes/pro/batch/data.ts
+++ b/src/views/mes/pro/batch/data.ts
@@ -23,11 +23,16 @@
   itemCode?: string;
 }
 
+export type TonBagOption = PalletOption;
+
 /** 鏂板/淇敼鐨勮〃鍗� */
 export function useFormSchema(
   formType: FormType,
   palletOptions: PalletOption[] = [],
   onPalletChange?: (ids: number[]) => void,
+  tonBagOptions: TonBagOption[] = [],
+  onTonBagChange?: (ids: number[]) => void,
+  existingBinding?: 'pallet' | 'tonBag',
 ): VbenFormSchema[] {
   const disabled = formType === 'detail';
   return [
@@ -141,11 +146,11 @@
     },
     {
       fieldName: 'itemName', label: '鍝佺鍚嶇О', component: 'Input',
-      componentProps: { disabled: true, placeholder: '閫夋嫨鎵樼洏鍚庤嚜鍔ㄥ甫鍏�' },
+      componentProps: { disabled: true, placeholder: '閫夋嫨鎵樼洏鎴栧惃琚嬪悗鑷姩甯﹀叆' },
     },
     {
       fieldName: 'itemCode', label: '鍝佺缂栫爜', component: 'Input',
-      componentProps: { disabled: true, placeholder: '閫夋嫨鎵樼洏鍚庤嚜鍔ㄥ甫鍏�' },
+      componentProps: { disabled: true, placeholder: '閫夋嫨鎵樼洏鎴栧惃琚嬪悗鑷姩甯﹀叆' },
     },
     {
       fieldName: 'palletIds',
@@ -165,17 +170,47 @@
         showSearch: true,
       },
       dependencies: {
-        triggerFields: ['itemId'],
+        triggerFields: ['itemId', 'tonBagIds'],
         show: () => formType !== 'detail',
         componentProps: (values) => ({
           options: palletOptions.map(option => ({ ...option,
-            disabled: !option.itemId || (!!values.itemId && option.itemId !== values.itemId),
+            disabled: existingBinding === 'tonBag' || !!values.tonBagIds?.length || !option.itemId || (!!values.itemId && option.itemId !== values.itemId),
           })),
+          disabled: disabled || existingBinding === 'tonBag' || !!values.tonBagIds?.length,
         }),
       },
       help: '鍙兘缁戝畾鐩稿悓鍝佺鐨勬墭鐩橈紝鍝佺淇℃伅鑷姩甯﹀叆锛涚己灏戝搧绉嶇殑鎵樼洏璇峰厛瑁呰銆傜粦瀹氬悗鎵规鐩存帴杩涘叆鐢熶骇涓細鎵樼洏鐢熸垚姝e紡鎵樼洏鐮侊紝鎵樼洏涓嬫湭褰曟壒娆$殑琚嬬爜鑷姩绾ц仈褰曞叆鏈壒娆★紙琚嬬爜鍝佺椤讳竴鑷达級锛涚紪杈戞椂浠呴渶鍕鹃�夋柊澧炴墭鐩橈紝宸茬粦瀹氱殑涓嶅彲瑙g粦',
     },
     {
+      fieldName: 'tonBagIds',
+      label: '缁戝畾鍚ㄨ',
+      component: 'Select',
+      componentProps: {
+        allowClear: true,
+        disabled,
+        maxTagCount: 3,
+        dropdownMatchSelectWidth: false,
+        dropdownStyle: { minWidth: '380px', maxWidth: 'calc(100vw - 32px)' },
+        mode: 'multiple',
+        optionFilterProp: 'label',
+        options: tonBagOptions,
+        onChange: onTonBagChange,
+        placeholder: '璇烽�夋嫨鐩稿悓鍝佺鐨勫惃琚�',
+        showSearch: true,
+      },
+      dependencies: {
+        triggerFields: ['itemId', 'palletIds'],
+        show: () => formType !== 'detail',
+        componentProps: (values) => ({
+          options: tonBagOptions.map(option => ({ ...option,
+            disabled: existingBinding === 'pallet' || !!values.palletIds?.length || (!!values.itemId && option.itemId !== values.itemId),
+          })),
+          disabled: disabled || existingBinding === 'pallet' || !!values.palletIds?.length,
+        }),
+      },
+      help: '浠呭彲缁戝畾璁¢噺鍗曚綅涓哄惃銆佹棤鎵樼洏涓旀湭褰曞叆鎵规鐨勮鐮侊紱涓庣粦瀹氭墭鐩樹簰鏂ャ�傜紪杈戞椂浠呴�夋嫨鏂板鍚ㄨ锛屽凡缁戝畾鐨勪笉鍙В缁�',
+    },
+    {
       fieldName: 'remark',
       label: '澶囨敞',
       component: 'Textarea',

--
Gitblit v1.9.3