!1339 perf: vben5 代码生成

Merge pull request !1339 from puhui999/master-jdk17
This commit is contained in:
芋道源码 2025-05-12 12:21:06 +00:00 committed by Gitee
commit 47755e9352
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 16 additions and 36 deletions

View File

@ -1,6 +1,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}';
import type { VxeTableInstance } from 'vxe-table'; import type { VxeTableInstance } from '#/adapter/vxe-table';
import { Page, useVbenModal } from '@vben/common-ui'; import { Page, useVbenModal } from '@vben/common-ui';
import { cloneDeep, formatDateTime } from '@vben/utils'; import { cloneDeep, formatDateTime } from '@vben/utils';
@ -9,9 +9,10 @@ import { DictTag } from '#/components/dict-tag';
import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils';
import ${simpleClassName}Form from './modules/form.vue'; import ${simpleClassName}Form from './modules/form.vue';
import { Download, Plus, RefreshCw, Search } from '@vben/icons'; import { Download, Plus, RefreshCw, Search } from '@vben/icons';
import { ContentWrap } from "#/components/content-wrap"; import { ContentWrap } from '#/components/content-wrap';
import { VxeColumn, VxeTable } from 'vxe-table'; import { VxeColumn, VxeTable } from '#/adapter/vxe-table';
import { TableToolbar } from '#/components/table-toolbar'; import { TableToolbar } from '#/components/table-toolbar';
import { useTableToolbar } from '#/hooks';
## 特殊:主子表专属逻辑 ## 特殊:主子表专属逻辑
#if ( $table.templateType == 11 || $table.templateType == 12 ) #if ( $table.templateType == 11 || $table.templateType == 12 )
@ -167,11 +168,6 @@ try {
} }
} }
/** 隐藏搜索栏 */
const hiddenSearchBar = ref(false);
const tableToolbarRef = ref<InstanceType<typeof TableToolbar>>();
const tableRef = ref<VxeTableInstance>();
#if (${table.templateType} == 2) #if (${table.templateType} == 2)
/** 切换树形展开/收缩状态 */ /** 切换树形展开/收缩状态 */
const isExpanded = ref(true); const isExpanded = ref(true);
@ -182,15 +178,9 @@ function toggleExpand() {
#end #end
/** 初始化 */ /** 初始化 */
onMounted(async () => { const { hiddenSearchBar, tableToolbarRef, tableRef } = useTableToolbar();
await getList(); onMounted(() => {
await nextTick(); getList();
// 挂载 toolbar 工具栏
const table = tableRef.value;
const tableToolbar = tableToolbarRef.value;
if (table && tableToolbar) {
await table.connect(tableToolbar.getToolbarRef()!);
}
}); });
</script> </script>

View File

@ -13,9 +13,9 @@
import { DICT_TYPE, getDictOptions } from '#/utils'; import { DICT_TYPE, getDictOptions } from '#/utils';
#if ($subTable.subJoinMany) ## 一对多 #if ($subTable.subJoinMany) ## 一对多
import type { VxeTableInstance } from 'vxe-table'; import type { VxeTableInstance } from '#/adapter/vxe-table';
import { Plus } from "@vben/icons"; import { Plus } from "@vben/icons";
import { VxeColumn, VxeTable } from 'vxe-table'; import { VxeColumn, VxeTable } from '#/adapter/vxe-table';
import { get${subSimpleClassName}ListBy${SubJoinColumnName} } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; import { get${subSimpleClassName}ListBy${SubJoinColumnName} } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}';
#else #else
import type { Rule } from 'ant-design-vue/es/form'; import type { Rule } from 'ant-design-vue/es/form';

View File

@ -7,14 +7,14 @@
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
<script lang="ts" setup> <script lang="ts" setup>
import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}';
import type { VxeTableInstance } from 'vxe-table'; import type { VxeTableInstance } from '#/adapter/vxe-table';
import { DictTag } from '#/components/dict-tag'; import { DictTag } from '#/components/dict-tag';
import { DICT_TYPE, getDictOptions } from '#/utils'; import { DICT_TYPE, getDictOptions } from '#/utils';
import { VxeColumn, VxeTable } from 'vxe-table'; import { VxeColumn, VxeTable } from '#/adapter/vxe-table';
import { reactive,ref, h, nextTick,watch,onMounted } from 'vue'; import { reactive,ref, h, nextTick,watch,onMounted } from 'vue';
import { cloneDeep, formatDateTime } from '@vben/utils'; import { cloneDeep, formatDateTime } from '@vben/utils';
import { ContentWrap } from "#/components/content-wrap"; import { ContentWrap } from '#/components/content-wrap';
#if ($table.templateType == 11) ## erp #if ($table.templateType == 11) ## erp
import { useVbenModal } from '@vben/common-ui'; import { useVbenModal } from '@vben/common-ui';
@ -26,6 +26,7 @@
import { Plus } from '@vben/icons'; import { Plus } from '@vben/icons';
import { $t } from '#/locales'; import { $t } from '#/locales';
import { TableToolbar } from '#/components/table-toolbar'; import { TableToolbar } from '#/components/table-toolbar';
import { useTableToolbar } from '#/hooks';
#end #end
#if ($table.templateType == 11) ## erp #if ($table.templateType == 11) ## erp
@ -165,21 +166,10 @@ const resetQuery = () => {
); );
#if ($table.templateType == 11) ## erp #if ($table.templateType == 11) ## erp
/** 隐藏搜索栏 */
const hiddenSearchBar = ref(false);
const tableToolbarRef = ref<InstanceType<typeof TableToolbar>>();
const tableRef = ref<VxeTableInstance>();
/** 初始化 */ /** 初始化 */
onMounted(async () => { const { hiddenSearchBar, tableToolbarRef, tableRef } = useTableToolbar();
await getList(); onMounted(() => {
await nextTick(); getList();
// 挂载 toolbar 工具栏
const table = tableRef.value;
const tableToolbar = tableToolbarRef.value;
if (table && tableToolbar) {
await table.connect(tableToolbar.getToolbarRef()!);
}
}); });
#end #end
</script> </script>