From 5d321660a2f1a4b8756f816283e96481a8c934e4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 28 十月 2026 14:26:30 +0800
Subject: [PATCH] feat(app): 更新应用名称并优化批次绑定功能
---
src/views/mes/pro/batch/data.ts | 74 ++++++++++++++++++++++++++++--------
1 files changed, 57 insertions(+), 17 deletions(-)
diff --git a/src/views/mes/pro/batch/data.ts b/src/views/mes/pro/batch/data.ts
index f32b8f0..4be0fd3 100644
--- a/src/views/mes/pro/batch/data.ts
+++ b/src/views/mes/pro/batch/data.ts
@@ -16,20 +16,58 @@
/** 鏈粦瀹氭墭鐩樹笅鎷夐�夐」 */
export interface PalletOption {
- label: string;
- value: number;
+ disabled?: boolean;
+ itemCode?: string;
itemId?: number;
itemName?: string;
- itemCode?: string;
+ label: string;
+ value: number;
}
export type TonBagOption = PalletOption;
-/** 鎵樼洏銆佸惃琚嬩笅鎷夌殑浜や簰浜嬩欢锛堟敮鎸佹悳绱笌婊氬姩鍒嗘鍔犺浇锛� */
+/** 缁戝畾绫诲瀷锛堟墭鐩�/鍚ㄨ浜掓枼锛岀紪杈戣ˉ褰曟椂鎸夊凡鏈夌粦瀹氶攣瀹氬叾涓竴鏂癸級 */
+export type BindingMode = 'pallet' | 'tonBag';
+
+/** 鎵樼洏銆佸惃琚嬩笅鎷夌殑浜や簰浜嬩欢锛堟敮鎸佽繙绋嬫悳绱笌婊氬姩鍒嗛〉鍔犺浇锛� */
export interface BindingSelectHandlers {
onChange?: (ids: number[]) => void;
onPopupScroll?: (event: Event) => void;
onSearch?: (keyword: string) => void;
+}
+
+/**
+ * 鍒锋柊鎵樼洏閫夐」绂佺敤鎬併��
+ *
+ * 涓嬫媺宸叉敼涓哄垎椤靛姞杞斤紝閫夐」鏁扮粍鏈韩灏辨槸娓叉煋鏁版嵁婧愶紝鍥犳绂佺敤鎬佺洿鎺ュ啓鍒伴�夐」瀵硅薄涓婏紝
+ * 姣忔鍔犺浇鏂颁竴椤垫垨琛ㄥ崟鍊煎彉鍖栨椂閲嶇畻锛岄伩鍏嶄緷璧栨満鍒堕噷鍋氭暟缁勬槧灏勫鑷存柊鍔犺浇鐨勬暟鎹鏃у揩鐓ц鐩栥��
+ */
+export function applyPalletOptionState(
+ options: PalletOption[],
+ values: Record<string, any>,
+ existingBinding?: BindingMode,
+) {
+ options.forEach((option) => {
+ option.disabled =
+ existingBinding === 'tonBag' ||
+ !!values.tonBagIds?.length ||
+ !option.itemId ||
+ (!!values.itemId && option.itemId !== values.itemId);
+ });
+}
+
+/** 鍒锋柊鍚ㄨ閫夐」绂佺敤鎬侊紝瑙勫垯涓� {@link applyPalletOptionState} 瀵圭О */
+export function applyTonBagOptionState(
+ options: TonBagOption[],
+ values: Record<string, any>,
+ existingBinding?: BindingMode,
+) {
+ options.forEach((option) => {
+ option.disabled =
+ existingBinding === 'pallet' ||
+ !!values.palletIds?.length ||
+ (!!values.itemId && option.itemId !== values.itemId);
+ });
}
/** 鏂板/淇敼鐨勮〃鍗� */
@@ -39,7 +77,7 @@
palletHandlers: BindingSelectHandlers = {},
tonBagOptions: TonBagOption[] = [],
tonBagHandlers: BindingSelectHandlers = {},
- existingBinding?: 'pallet' | 'tonBag',
+ existingBinding?: BindingMode,
): VbenFormSchema[] {
const disabled = formType === 'detail';
return [
@@ -180,12 +218,13 @@
dependencies: {
triggerFields: ['itemId', 'tonBagIds'],
show: () => formType !== 'detail',
- componentProps: (values) => ({
- options: palletOptions.map(option => ({ ...option,
- disabled: existingBinding === 'tonBag' || !!values.tonBagIds?.length || !option.itemId || (!!values.itemId && option.itemId !== values.itemId),
- })),
- disabled: disabled || existingBinding === 'tonBag' || !!values.tonBagIds?.length,
- }),
+ componentProps: (values) => {
+ applyPalletOptionState(palletOptions, values, existingBinding);
+ return {
+ options: palletOptions,
+ disabled: disabled || existingBinding === 'tonBag' || !!values.tonBagIds?.length,
+ };
+ },
},
help: '鍙兘缁戝畾鐩稿悓鍝佺鐨勬墭鐩橈紝鍝佺淇℃伅鑷姩甯﹀叆锛涚己灏戝搧绉嶇殑鎵樼洏璇峰厛瑁呰銆傜粦瀹氬悗鎵规鐩存帴杩涘叆鐢熶骇涓細鎵樼洏鐢熸垚姝e紡鎵樼洏鐮侊紝鎵樼洏涓嬫湭褰曟壒娆$殑琚嬬爜鑷姩绾ц仈褰曞叆鏈壒娆★紙琚嬬爜鍝佺椤讳竴鑷达級锛涚紪杈戞椂浠呴渶鍕鹃�夋柊澧炴墭鐩橈紝宸茬粦瀹氱殑涓嶅彲瑙g粦',
},
@@ -210,12 +249,13 @@
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,
- }),
+ componentProps: (values) => {
+ applyTonBagOptionState(tonBagOptions, values, existingBinding);
+ return {
+ options: tonBagOptions,
+ disabled: disabled || existingBinding === 'pallet' || !!values.palletIds?.length,
+ };
+ },
},
help: '浠呭彲缁戝畾璁¢噺鍗曚綅涓哄惃銆佹棤鎵樼洏涓旀湭褰曞叆鎵规鐨勮鐮侊紱涓庣粦瀹氭墭鐩樹簰鏂ャ�傜紪杈戞椂浠呴�夋嫨鏂板鍚ㄨ锛屽凡缁戝畾鐨勪笉鍙В缁�',
},
--
Gitblit v1.9.3