From 03d3239463702eaf99c52ff477ef8123dcf521bd Mon Sep 17 00:00:00 2001 From: puhui999 Date: Fri, 25 Apr 2025 18:08:24 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E3=80=91INFRA=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=20v?= =?UTF-8?q?ben5=20antd=20=E5=8D=95=E8=A1=A8=E8=A1=A8=E5=8D=95=E6=A8=A1?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vue3_vben5_antd/general/views/form.vue.vm | 76 ++-- .../general/views/index.vue.vm | 419 +++++++++++------- 2 files changed, 305 insertions(+), 190 deletions(-) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm index a090b04588..b6ce3433a2 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm @@ -7,7 +7,10 @@ import { Tinymce as RichTextarea } from '#/components/tinymce'; import { ImageUpload, FileUpload } from "#/components/upload"; import { message, Tabs, Form, Input, Textarea, Select, RadioGroup, Radio, CheckboxGroup, Checkbox, DatePicker } from 'ant-design-vue'; import { DICT_TYPE, getDictOptions } from '#/utils/dict'; - +#if($table.templateType == 2)## 树表需要导入这些 +import { get${simpleClassName}List } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; +import { handleTree } from '#/utils/tree'; +#end ## 特殊:主子表专属逻辑 #if ( $table.templateType == 10 || $table.templateType == 12 ) #foreach ($subSimpleClassName in $subSimpleClassNames) @@ -44,29 +47,19 @@ const rules: Record = { #end #end }; -#if (${table.templateType} == 2)## 树表特有:父ID处理 -const parentId = ref(); // 新增下级时的父级 ID - -const getTitle = computed(() => { - if (formData.value?.id) { - return $t('ui.actionTitle.edit', ['${table.classComment}']); - } - return parentId.value - ? $t('ui.actionTitle.create', ['下级${table.classComment}']) - : $t('ui.actionTitle.create', ['${table.classComment}']); -}); -#else## 标准表标题 +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +const ${classNameVar}Tree = ref([]) // 树形结构 +#end const getTitle = computed(() => { return formData.value?.id ? $t('ui.actionTitle.edit', ['${table.classComment}']) : $t('ui.actionTitle.create', ['${table.classComment}']); }); -#end ## 特殊:主子表专属逻辑 #if ( $table.templateType == 10 || $table.templateType == 12 ) #if ( $subTables && $subTables.size() > 0 ) - /** 子表的表单 */ const subTabsName = ref('$subClassNameVars.get(0)') #foreach ($subClassNameVar in $subClassNameVars) @@ -77,6 +70,34 @@ const getTitle = computed(() => { #end #end +/** 重置表单 */ +const resetForm = () => { + formData.value = { + #foreach ($column in $columns) + #if ($column.createOperation || $column.updateOperation) + #if ($column.htmlType == "checkbox") + $column.javaField: [], + #else + $column.javaField: undefined, + #end + #end + #end + }; + formRef.value?.resetFields(); +} + +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +/** 获得${table.classComment}树 */ +const get${simpleClassName}Tree = async () => { + ${classNameVar}Tree.value = [] + const data = await get${simpleClassName}List() + const root: Tree = { id: 0, name: '顶级${table.classComment}', children: [] } + root.children = handleTree(data, 'id', '${treeParentColumn.javaField}') + ${classNameVar}Tree.value.push(root) +} +#end + const [Modal, modalApi] = useVbenModal({ async onConfirm() { await formRef.value?.validate(); @@ -101,7 +122,7 @@ const [Modal, modalApi] = useVbenModal({ #end modalApi.lock(); // 提交表单 - const data = formData.value; + const data = formData.value as ${simpleClassName}Api.${simpleClassName}; ## 特殊:主子表专属逻辑 #if ( $table.templateType == 10 || $table.templateType == 12 ) #if ( $subTables && $subTables.size() > 0 ) @@ -132,18 +153,7 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { - formData.value = { - #foreach ($column in $columns) - #if ($column.createOperation || $column.updateOperation) - #if ($column.htmlType == "checkbox") - $column.javaField: [], - #else - $column.javaField: undefined, - #end - #end - #end - }; - formRef.value?.resetFields(); + resetForm() return; } @@ -160,8 +170,11 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(false); } } - // 设置到 values formData.value = data; +#if ( $table.templateType == 2 ) + // 加载树数据 + await get${simpleClassName}Tree() +#end }, }); @@ -180,7 +193,6 @@ const [Modal, modalApi] = useVbenModal({ #set ($dictType = $column.dictType) #set ($javaField = $column.javaField) #set ($javaType = $column.javaType) - #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set ($comment = $column.columnComment) #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short") #set ($dictMethod = "number") @@ -224,14 +236,14 @@ const [Modal, modalApi] = useVbenModal({ diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm index bf27df8052..aaaad6b1d8 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm @@ -1,11 +1,16 @@