From b8de520fa696d8a95393aa3ff544c5a6f5c36001 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 30 九月 2026 15:33:41 +0800
Subject: [PATCH] 宁夏万通需求:出库单行支持主/辅单位录入;物料型号维护;考勤节假日配置时间段;设备批量删除;质检导出按筛选条件

---
 src/views/basicData/mdm/modules/form.vue |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/src/views/basicData/mdm/modules/form.vue b/src/views/basicData/mdm/modules/form.vue
index 5d82e00..7aa7c27 100644
--- a/src/views/basicData/mdm/modules/form.vue
+++ b/src/views/basicData/mdm/modules/form.vue
@@ -13,11 +13,13 @@
 
 import { useFormSchema, clearUnitListCache, buildCategoryTree } from '../data';
 import { getItemTypeSimpleList } from '#/api/mes/md/item/type';
+import ItemModelConfig from '../components/item-model-config.vue';
 
 defineOptions({ name: "ItemForm" });
 
 const emit = defineEmits(['success']);
 const formData = ref<MdmItemApi.Item>();
+const itemModelRef = ref<InstanceType<typeof ItemModelConfig>>();
 
 const [Form, formApi] = useVbenForm({
   commonConfig: {
@@ -38,10 +40,20 @@
     if (!valid) {
       return;
     }
+    // 鍨嬪彿鍏堟牎楠岋紝閬垮厤鐗╂枡宸蹭繚瀛樿�屽瀷鍙锋湭淇濆瓨
+    const modelError = itemModelRef.value?.validate();
+    if (modelError) {
+      message.error(modelError);
+      return;
+    }
     modalApi.lock();
     const data = (await formApi.getValues()) as MdmItemApi.Item;
     try {
-      await (formData.value?.id ? updateItem(data) : createItem(data));
+      const itemId = formData.value?.id ?? (await createItem(data));
+      if (formData.value?.id) {
+        await updateItem(data);
+      }
+      await itemModelRef.value?.save(itemId);
       await modalApi.close();
       emit('success');
       message.success($t('ui.actionMessage.operationSuccess'));
@@ -52,6 +64,7 @@
   async onOpenChange(isOpen: boolean) {
     if (!isOpen) {
       formData.value = undefined;
+      itemModelRef.value?.reset();
       return;
     }
     const data = modalApi.getData<MdmItemApi.Item>();
@@ -70,6 +83,7 @@
         // 鍚屾鐘舵�佹槧灏勶細璇︽儏鎺ュ彛杩斿洖 syncedMes锛岃〃鍗曞瓧娈典负 syncMes
         formData.value.syncMes = formData.value.syncedMes ?? true;
         await formApi.setValues(formData.value);
+        await itemModelRef.value?.load(data.id);
       } finally {
         modalApi.unlock();
       }
@@ -77,6 +91,7 @@
       // 鏂板妯″紡
       formData.value = undefined;
       await formApi.resetForm();
+      itemModelRef.value?.reset();
     }
   },
 });
@@ -85,5 +100,6 @@
 <template>
   <Modal class="w-[1000px]" :title="formData?.id ? $t('ui.actionTitle.edit', ['鐗╂枡']) : $t('ui.actionTitle.create', ['鐗╂枡'])">
     <Form class="mx-4" />
+    <ItemModelConfig ref="itemModelRef" />
   </Modal>
 </template>

--
Gitblit v1.9.3