From b64a0deae5b5d33f9e20671a68936b27f0b9b00b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 21 七月 2026 18:03:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/basicData/mdm/modules/form.vue | 55 +++++++++++++++++++++++++++++++------------------------
1 files changed, 31 insertions(+), 24 deletions(-)
diff --git a/src/views/basicData/mdm/modules/form.vue b/src/views/basicData/mdm/modules/form.vue
index 4d5be9a..c1f5eb7 100644
--- a/src/views/basicData/mdm/modules/form.vue
+++ b/src/views/basicData/mdm/modules/form.vue
@@ -1,39 +1,35 @@
<script lang="ts" setup>
import type { MdmItemApi } from '#/api/mdm/item';
-import { computed, ref } from 'vue';
+import { ref } from 'vue';
-import { useVbenModal } from '@vben/common-ui';
+import { useVbenModal } from "#/packages/effects/common-ui/src";
-import { message } from 'ant-design-vue';
+import { message } from "ant-design-vue";
import { useVbenForm } from '#/adapter/form';
import { createItem, getItem, updateItem } from '#/api/mdm/item';
import { $t } from '#/locales';
-import { useFormSchema } from '../data';
+import { useFormSchema, clearUnitListCache, buildCategoryTree } from '../data';
+import { getItemTypeSimpleList } from '#/api/mes/md/item/type';
-defineOptions({ name: 'ItemForm' });
+defineOptions({ name: "ItemForm" });
const emit = defineEmits(['success']);
const formData = ref<MdmItemApi.Item>();
-const getTitle = computed(() => {
- return formData.value?.id
- ? $t('ui.actionTitle.edit', ['鐗╂枡'])
- : $t('ui.actionTitle.create', ['鐗╂枡']);
-});
const [Form, formApi] = useVbenForm({
commonConfig: {
componentProps: {
class: 'w-full',
},
- formItemClass: 'col-span-1',
- labelWidth: 100,
+ labelWidth: 110,
},
layout: 'horizontal',
- schema: useFormSchema(),
+ schema: [],
showDefaultActions: false,
+ wrapperClass: 'grid-cols-2',
});
const [Modal, modalApi] = useVbenModal({
@@ -59,22 +55,33 @@
return;
}
const data = modalApi.getData<MdmItemApi.Item>();
- if (!data || !data.id) {
- return;
- }
- modalApi.lock();
- try {
- formData.value = await getItem(data.id);
- await formApi.setValues(formData.value);
- } finally {
- modalApi.unlock();
+ // 娓呴櫎鍗曚綅缂撳瓨锛岀‘淇濊幏鍙栨渶鏂版暟鎹�
+ clearUnitListCache();
+ // 鍔犺浇鏈�鏂板垎绫绘暟鎹�
+ const categoryRes = await getItemTypeSimpleList();
+ const categoryTreeData = buildCategoryTree(categoryRes || []);
+ // 璁剧疆 schema锛坒ormApi 宸插垵濮嬪寲锛�
+ formApi.setState({ schema: useFormSchema(formApi, categoryTreeData) });
+ if (data?.id) {
+ // 缂栬緫妯″紡
+ modalApi.lock();
+ try {
+ formData.value = await getItem(data.id);
+ await formApi.setValues(formData.value);
+ } finally {
+ modalApi.unlock();
+ }
+ } else {
+ // 鏂板妯″紡
+ formData.value = undefined;
+ await formApi.resetForm();
}
},
});
</script>
<template>
- <Modal class="w-[800px]" :title="getTitle">
+ <Modal class="w-[1000px]" :title="formData?.id ? $t('ui.actionTitle.edit', ['鐗╂枡']) : $t('ui.actionTitle.create', ['鐗╂枡'])">
<Form class="mx-4" />
</Modal>
-</template>
\ No newline at end of file
+</template>
--
Gitblit v1.9.3