Commit 8193e9801cec249d57bcba26203cee6f716f8b97

Authored by YunaiV
1 parent f29abe85

reactor:【infra 基础设施】优化 vben5 + antd 的 schema 模版

yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/api/api.ts.vm
1 -import type { PageParam, PageResult } from '@vben/request';  
2 -import type { Dayjs } from 'dayjs';  
3 -  
4 -import { requestClient } from '#/api/request';  
5 -#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")  
6 -  
7 -export namespace ${simpleClassName}Api {  
8 -## 特殊:主子表专属逻辑  
9 -#foreach ($subTable in $subTables)  
10 - #set ($index = $foreach.count - 1)  
11 - #set ($subSimpleClassName = $subSimpleClassNames.get($index))  
12 - #set ($subColumns = $subColumnsList.get($index))##当前字段数组  
13 - /** ${subTable.classComment}信息 */  
14 - export interface ${subSimpleClassName} {  
15 - #foreach ($column in $subColumns)  
16 - #if ($column.createOperation || $column.updateOperation)  
17 - #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")  
18 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: number; // ${column.columnComment}  
19 - #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime")  
20 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: string | Dayjs; // ${column.columnComment}  
21 - #else  
22 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: ${column.javaType.toLowerCase()}; // ${column.columnComment}  
23 - #end  
24 - #end  
25 - #end  
26 - }  
27 -  
28 -#end  
29 - /** ${table.classComment}信息 */  
30 - export interface ${simpleClassName} {  
31 -#foreach ($column in $columns)  
32 -#if ($column.createOperation || $column.updateOperation)  
33 -#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")  
34 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: number; // ${column.columnComment}  
35 -#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime")  
36 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: string | Dayjs; // ${column.columnComment}  
37 -#else  
38 - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: ${column.javaType.toLowerCase()}; // ${column.columnComment}  
39 -#end  
40 -#end  
41 -#end  
42 -#if ( $table.templateType == 2 )  
43 - children?: ${simpleClassName}[];  
44 -#end  
45 -## 特殊:主子表专属逻辑  
46 -#if ( $table.templateType == 10 || $table.templateType == 12 )  
47 - #foreach ($subTable in $subTables)  
48 - #set ($index = $foreach.count - 1)  
49 - #set ($subSimpleClassName = $subSimpleClassNames.get($index))  
50 - #if ( $subTable.subJoinMany )  
51 - ${subSimpleClassName.toLowerCase()}s?: ${subSimpleClassName}[]  
52 - #else  
53 - ${subSimpleClassName.toLowerCase()}?: ${subSimpleClassName}  
54 - #end  
55 - #end  
56 -#end  
57 - }  
58 -}  
59 -  
60 -#if ( $table.templateType != 2 )  
61 -/** 查询${table.classComment}分页 */  
62 -export function get${simpleClassName}Page(params: PageParam) {  
63 - return requestClient.get<PageResult<${simpleClassName}Api.${simpleClassName}>>('${baseURL}/page', { params });  
64 -}  
65 -#else  
66 -/** 查询${table.classComment}列表 */  
67 -export function get${simpleClassName}List(params: any) {  
68 - return requestClient.get<${simpleClassName}Api.${simpleClassName}[]>('${baseURL}/list', { params });  
69 -}  
70 -#end  
71 -  
72 -/** 查询${table.classComment}详情 */  
73 -export function get${simpleClassName}(id: number) {  
74 - return requestClient.get<${simpleClassName}Api.${simpleClassName}>(`${baseURL}/get?id=${id}`);  
75 -}  
76 -  
77 -/** 新增${table.classComment} */  
78 -export function create${simpleClassName}(data: ${simpleClassName}Api.${simpleClassName}) {  
79 - return requestClient.post('${baseURL}/create', data);  
80 -}  
81 -  
82 -/** 修改${table.classComment} */  
83 -export function update${simpleClassName}(data: ${simpleClassName}Api.${simpleClassName}) {  
84 - return requestClient.put('${baseURL}/update', data);  
85 -}  
86 -  
87 -/** 删除${table.classComment} */  
88 -export function delete${simpleClassName}(id: number) {  
89 - return requestClient.delete(`${baseURL}/delete?id=${id}`);  
90 -}  
91 -  
92 -#if ( $table.templateType != 2 && $deleteBatchEnable)  
93 -/** 批量删除${table.classComment} */  
94 -export function delete${simpleClassName}List(ids: number[]) {  
95 - return requestClient.delete(`${baseURL}/delete-list?ids=${ids.join(',')}`)  
96 -}  
97 -#end  
98 -  
99 -/** 导出${table.classComment} */  
100 -export function export${simpleClassName}(params: any) {  
101 - return requestClient.download('${baseURL}/export-excel', { params });  
102 -}  
103 -  
104 -## 特殊:主子表专属逻辑  
105 -#foreach ($subTable in $subTables)  
106 -#set ($index = $foreach.count - 1)  
107 -#set ($subSimpleClassName = $subSimpleClassNames.get($index))  
108 -#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段  
109 -#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段  
110 -#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写  
111 -#set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index))  
112 -#set ($subJoinColumn_strikeCase = $subJoinColumn_strikeCases.get($index))  
113 -#set ($subClassNameVar = $subClassNameVars.get($index))  
114 -  
115 -// ==================== 子表($subTable.classComment) ====================  
116 -  
117 -## 情况一:MASTER_ERP 时,需要分查询页子表  
118 -#if ( $table.templateType == 11 )  
119 -/** 获得${subTable.classComment}分页 */  
120 -export function get${subSimpleClassName}Page(params: PageParam) {  
121 - return requestClient.get<PageResult<${simpleClassName}Api.${subSimpleClassName}>>(`${baseURL}/${subSimpleClassName_strikeCase}/page`, { params });  
122 -}  
123 -## 情况二:非 MASTER_ERP 时,需要列表查询子表  
124 -#else  
125 - #if ( $subTable.subJoinMany )  
126 -/** 获得${subTable.classComment}列表 */  
127 -export function get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaField}: number) {  
128 - return requestClient.get<${simpleClassName}Api.${subSimpleClassName}[]>(`${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=${${subJoinColumn.javaField}}`);  
129 -}  
130 - #else  
131 -/** 获得${subTable.classComment} */  
132 -export function get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaField}: number) {  
133 - return requestClient.get<${simpleClassName}Api.${subSimpleClassName}>(`${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=${${subJoinColumn.javaField}}`);  
134 -}  
135 - #end  
136 -#end  
137 -## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作  
138 -#if ( $table.templateType == 11 )  
139 -/** 新增${subTable.classComment} */  
140 -export function create${subSimpleClassName}(data: ${simpleClassName}Api.${subSimpleClassName}) {  
141 - return requestClient.post(`${baseURL}/${subSimpleClassName_strikeCase}/create`, data);  
142 -}  
143 -  
144 -/** 修改${subTable.classComment} */  
145 -export function update${subSimpleClassName}(data: ${simpleClassName}Api.${subSimpleClassName}) {  
146 - return requestClient.put(`${baseURL}/${subSimpleClassName_strikeCase}/update`, data);  
147 -}  
148 -  
149 -/** 删除${subTable.classComment} */  
150 -export function delete${subSimpleClassName}(id: number) {  
151 - return requestClient.delete(`${baseURL}/${subSimpleClassName_strikeCase}/delete?id=${id}`);  
152 -}  
153 -  
154 -#if ($deleteBatchEnable)  
155 -/** 批量删除${subTable.classComment} */  
156 -export function delete${subSimpleClassName}List(ids: number[]) {  
157 - return requestClient.delete(`${baseURL}/${subSimpleClassName_strikeCase}/delete-list?ids=${ids.join(',')}`)  
158 -}  
159 -#end  
160 -  
161 -/** 获得${subTable.classComment} */  
162 -export function get${subSimpleClassName}(id: number) {  
163 - return requestClient.get<${simpleClassName}Api.${subSimpleClassName}>(`${baseURL}/${subSimpleClassName_strikeCase}/get?id=${id}`);  
164 -}  
165 -#end  
166 -#end  
167 - 1 +#parse("codegen/vue3_vben5_ele/schema/api/api.ts.vm")
168 \ No newline at end of file 2 \ No newline at end of file
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/data.ts.vm
  1 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
1 import type { VbenFormSchema } from '#/adapter/form'; 2 import type { VbenFormSchema } from '#/adapter/form';
2 import type { VxeTableGridOptions } from '#/adapter/vxe-table'; 3 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
3 -import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 4 +import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
4 5
5 -import { z } from '#/adapter/form';  
6 -import {  
7 - DICT_TYPE,  
8 - getDictOptions,  
9 - getRangePickerDefaultProps,  
10 -} from '#/utils'; 6 +import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils';
11 #if(${table.templateType} == 2)## 树表需要导入这些 7 #if(${table.templateType} == 2)## 树表需要导入这些
12 import { get${simpleClassName}List } from '#/api/${table.moduleName}/${table.businessName}'; 8 import { get${simpleClassName}List } from '#/api/${table.moduleName}/${table.businessName}';
13 import { handleTree } from '@vben/utils'; 9 import { handleTree } from '@vben/utils';
@@ -186,7 +182,7 @@ export function useGridFormSchema(): VbenFormSchema[] { @@ -186,7 +182,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
186 } 182 }
187 183
188 /** 列表的字段 */ 184 /** 列表的字段 */
189 -export function useGridColumns(): VxeTableGridOptions<${simpleClassName}Api.${simpleClassName}>['columns'] { 185 +export function useGridColumns(): VxeTableGridOptions<${apiName}.${simpleClassName}>['columns'] {
190 return [ 186 return [
191 #if ($table.templateType != 2 && $deleteBatchEnable) 187 #if ($table.templateType != 2 && $deleteBatchEnable)
192 { type: 'checkbox', width: 40 }, 188 { type: 'checkbox', width: 40 },
@@ -389,7 +385,7 @@ export function use${subSimpleClassName}GridFormSchema(): VbenFormSchema[] { @@ -389,7 +385,7 @@ export function use${subSimpleClassName}GridFormSchema(): VbenFormSchema[] {
389 } 385 }
390 386
391 /** 列表的字段 */ 387 /** 列表的字段 */
392 -export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>['columns'] { 388 +export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions<${apiName}.${subSimpleClassName}>['columns'] {
393 return [ 389 return [
394 #if ($table.templateType != 2 && $deleteBatchEnable) 390 #if ($table.templateType != 2 && $deleteBatchEnable)
395 { type: 'checkbox', width: 40 }, 391 { type: 'checkbox', width: 40 },
@@ -426,7 +422,7 @@ export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions&lt;${sim @@ -426,7 +422,7 @@ export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions&lt;${sim
426 #else 422 #else
427 #if ($subTable.subJoinMany) ## 一对多 423 #if ($subTable.subJoinMany) ## 一对多
428 /** 新增/修改列表的字段 */ 424 /** 新增/修改列表的字段 */
429 - export function use${subSimpleClassName}GridEditColumns(): VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>['columns'] { 425 + export function use${subSimpleClassName}GridEditColumns(): VxeTableGridOptions<${apiName}.${subSimpleClassName}>['columns'] {
430 return [ 426 return [
431 #foreach($column in $subColumns) 427 #foreach($column in $subColumns)
432 #if ($column.createOperation || $column.updateOperation) 428 #if ($column.createOperation || $column.updateOperation)
@@ -602,4 +598,4 @@ export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions&lt;${sim @@ -602,4 +598,4 @@ export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions&lt;${sim
602 } 598 }
603 #end 599 #end
604 #end 600 #end
605 -#end 601 -#end
  602 +#end
606 \ No newline at end of file 603 \ No newline at end of file
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/form.vue.vm
  1 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
1 <script lang="ts" setup> 2 <script lang="ts" setup>
2 -import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 3 +import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
  4 +
  5 +import { computed, ref } from 'vue';
3 6
4 import { useVbenModal } from '@vben/common-ui'; 7 import { useVbenModal } from '@vben/common-ui';
5 -import { message, Tabs, Checkbox, Input, Textarea, Select,RadioGroup,CheckboxGroup, DatePicker } from 'ant-design-vue'; 8 +
  9 +import { message#if ($table.templateType == 11), Tabs#end } from 'ant-design-vue';
  10 +
  11 +import { useVbenForm } from '#/adapter/form';
  12 +import { create${simpleClassName}, get${simpleClassName}, update${simpleClassName} } from '#/api/${table.moduleName}/${table.businessName}';
  13 +import { $t } from '#/locales';
  14 +
  15 +import { useFormSchema } from '../data';
6 ## 特殊:主子表专属逻辑 16 ## 特殊:主子表专属逻辑
7 #if ( $table.templateType == 10 || $table.templateType == 12 ) 17 #if ( $table.templateType == 10 || $table.templateType == 12 )
8 #foreach ($subSimpleClassName in $subSimpleClassNames) 18 #foreach ($subSimpleClassName in $subSimpleClassNames)
@@ -12,21 +22,13 @@ import { message, Tabs, Checkbox, Input, Textarea, Select,RadioGroup,CheckboxGro @@ -12,21 +22,13 @@ import { message, Tabs, Checkbox, Input, Textarea, Select,RadioGroup,CheckboxGro
12 #end 22 #end
13 #end 23 #end
14 24
15 -import { computed, ref } from 'vue';  
16 -import { $t } from '#/locales';  
17 -import { useVbenForm } from '#/adapter/form';  
18 -import { get${simpleClassName}, create${simpleClassName}, update${simpleClassName} } from '#/api/${table.moduleName}/${table.businessName}';  
19 -  
20 -import { useFormSchema } from '../data';  
21 -  
22 const emit = defineEmits(['success']); 25 const emit = defineEmits(['success']);
23 -const formData = ref<${simpleClassName}Api.${simpleClassName}>(); 26 +const formData = ref<${apiName}.${simpleClassName}>();
24 const getTitle = computed(() => { 27 const getTitle = computed(() => {
25 return formData.value?.id 28 return formData.value?.id
26 ? $t('ui.actionTitle.edit', ['${table.classComment}']) 29 ? $t('ui.actionTitle.edit', ['${table.classComment}'])
27 : $t('ui.actionTitle.create', ['${table.classComment}']); 30 : $t('ui.actionTitle.create', ['${table.classComment}']);
28 }); 31 });
29 -  
30 ## 特殊:主子表专属逻辑 32 ## 特殊:主子表专属逻辑
31 #if ( $table.templateType == 10 || $table.templateType == 12 ) 33 #if ( $table.templateType == 10 || $table.templateType == 12 )
32 #if ( $subTables && $subTables.size() > 0 ) 34 #if ( $subTables && $subTables.size() > 0 )
@@ -51,7 +53,7 @@ const [Form, formApi] = useVbenForm({ @@ -51,7 +53,7 @@ const [Form, formApi] = useVbenForm({
51 }, 53 },
52 layout: 'horizontal', 54 layout: 'horizontal',
53 schema: useFormSchema(), 55 schema: useFormSchema(),
54 - showDefaultActions: false 56 + showDefaultActions: false,
55 }); 57 });
56 58
57 const [Modal, modalApi] = useVbenModal({ 59 const [Modal, modalApi] = useVbenModal({
@@ -60,8 +62,8 @@ const [Modal, modalApi] = useVbenModal({ @@ -60,8 +62,8 @@ const [Modal, modalApi] = useVbenModal({
60 if (!valid) { 62 if (!valid) {
61 return; 63 return;
62 } 64 }
63 - ## 特殊:主子表专属逻辑  
64 - #if ( $table.templateType == 10 || $table.templateType == 12 ) 65 +## 特殊:主子表专属逻辑
  66 +#if ( $table.templateType == 10 || $table.templateType == 12 )
65 #if ( $subTables && $subTables.size() > 0 ) 67 #if ( $subTables && $subTables.size() > 0 )
66 // 校验子表单 68 // 校验子表单
67 #foreach ($subTable in $subTables) 69 #foreach ($subTable in $subTables)
@@ -78,12 +80,12 @@ const [Modal, modalApi] = useVbenModal({ @@ -78,12 +80,12 @@ const [Modal, modalApi] = useVbenModal({
78 #end 80 #end
79 #end 81 #end
80 #end 82 #end
81 - #end 83 +#end
82 modalApi.lock(); 84 modalApi.lock();
83 // 提交表单 85 // 提交表单
84 - const data = (await formApi.getValues()) as ${simpleClassName}Api.${simpleClassName};  
85 - ## 特殊:主子表专属逻辑  
86 - #if ( $table.templateType == 10 || $table.templateType == 12 ) 86 + const data = (await formApi.getValues()) as ${apiName}.${simpleClassName};
  87 +## 特殊:主子表专属逻辑
  88 +#if ( $table.templateType == 10 || $table.templateType == 12 )
87 #if ( $subTables && $subTables.size() > 0 ) 89 #if ( $subTables && $subTables.size() > 0 )
88 // 拼接子表的数据 90 // 拼接子表的数据
89 #foreach ($subTable in $subTables) 91 #foreach ($subTable in $subTables)
@@ -96,13 +98,13 @@ const [Modal, modalApi] = useVbenModal({ @@ -96,13 +98,13 @@ const [Modal, modalApi] = useVbenModal({
96 #end 98 #end
97 #end 99 #end
98 #end 100 #end
99 - #end 101 +#end
100 try { 102 try {
101 await (formData.value?.id ? update${simpleClassName}(data) : create${simpleClassName}(data)); 103 await (formData.value?.id ? update${simpleClassName}(data) : create${simpleClassName}(data));
102 // 关闭并提示 104 // 关闭并提示
103 await modalApi.close(); 105 await modalApi.close();
104 emit('success'); 106 emit('success');
105 - message.success( $t('ui.actionMessage.operationSuccess') ); 107 + message.success($t('ui.actionMessage.operationSuccess'));
106 } finally { 108 } finally {
107 modalApi.unlock(); 109 modalApi.unlock();
108 } 110 }
@@ -113,21 +115,20 @@ const [Modal, modalApi] = useVbenModal({ @@ -113,21 +115,20 @@ const [Modal, modalApi] = useVbenModal({
113 return; 115 return;
114 } 116 }
115 // 加载数据 117 // 加载数据
116 - let data = modalApi.getData<${simpleClassName}Api.${simpleClassName}>();  
117 - if (!data) { 118 + const data = modalApi.getData<${apiName}.${simpleClassName}>();
  119 + if (!data || !data.id) {
118 return; 120 return;
119 } 121 }
120 - if (data.id) {  
121 - modalApi.lock();  
122 - try {  
123 - data = await get${simpleClassName}(data.id);  
124 - } finally {  
125 - modalApi.unlock(); 122 + modalApi.lock();
  123 + try {
  124 + formData.value = await get${simpleClassName}(data.id);
  125 + // 设置到 values
  126 + if (formData.value) {
  127 + await formApi.setValues(formData.value);
126 } 128 }
  129 + } finally {
  130 + modalApi.unlock();
127 } 131 }
128 - // 设置到 values  
129 - formData.value = data;  
130 - await formApi.setValues(formData.value);  
131 }, 132 },
132 }); 133 });
133 </script> 134 </script>
@@ -135,8 +136,8 @@ const [Modal, modalApi] = useVbenModal({ @@ -135,8 +136,8 @@ const [Modal, modalApi] = useVbenModal({
135 <template> 136 <template>
136 <Modal :title="getTitle"> 137 <Modal :title="getTitle">
137 <Form class="mx-4" /> 138 <Form class="mx-4" />
138 - ## 特殊:主子表专属逻辑  
139 - #if ( $table.templateType == 10 || $table.templateType == 12 ) 139 +## 特殊:主子表专属逻辑
  140 +#if ( $table.templateType == 10 || $table.templateType == 12 )
140 <!-- 子表的表单 --> 141 <!-- 子表的表单 -->
141 <Tabs v-model:active-key="subTabsName"> 142 <Tabs v-model:active-key="subTabsName">
142 #foreach ($subTable in $subTables) 143 #foreach ($subTable in $subTables)
@@ -149,6 +150,6 @@ const [Modal, modalApi] = useVbenModal({ @@ -149,6 +150,6 @@ const [Modal, modalApi] = useVbenModal({
149 </Tabs.TabPane> 150 </Tabs.TabPane>
150 #end 151 #end
151 </Tabs> 152 </Tabs>
152 - #end 153 +#end
153 </Modal> 154 </Modal>
154 </template> 155 </template>
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/index.vue.vm
  1 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
1 <script lang="ts" setup> 2 <script lang="ts" setup>
2 import type { VxeTableGridOptions } from '#/adapter/vxe-table'; 3 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
3 -import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 4 +import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
4 5
5 -import { Page, useVbenModal } from '@vben/common-ui';  
6 -import { message,Tabs } from 'ant-design-vue';  
7 -import Form from './modules/form.vue'; 6 +import { ref } from 'vue';
8 7
9 -## 特殊:主子表专属逻辑  
10 -#if ( $table.templateType == 11 || $table.templateType == 12 )  
11 - #foreach ($subSimpleClassName in $subSimpleClassNames)  
12 - #set ($index = $foreach.count - 1)  
13 - #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index))  
14 -import ${subSimpleClassName}List from './modules/${subSimpleClassName_strikeCase}-list.vue'  
15 - #end  
16 -#end 8 +import {#if ($table.templateType != 2 && $deleteBatchEnable) confirm,#end Page, useVbenModal } from '@vben/common-ui';
  9 +import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
  10 +
  11 +import { message#if ($table.templateType == 11), Tabs#end } from 'ant-design-vue';
17 12
18 -import { ref, computed } from 'vue';  
19 -import { $t } from '#/locales';  
20 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; 13 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
21 #if (${table.templateType} == 2)## 树表接口 14 #if (${table.templateType} == 2)## 树表接口
22 -import { get${simpleClassName}List, delete${simpleClassName}, export${simpleClassName} } from '#/api/${table.moduleName}/${table.businessName}'; 15 +import {
  16 + delete${simpleClassName},
  17 + export${simpleClassName},
  18 + get${simpleClassName}List,
  19 +} from '#/api/${table.moduleName}/${table.businessName}';
23 #else## 标准表接口 20 #else## 标准表接口
24 -import { get${simpleClassName}Page, delete${simpleClassName},#if ($deleteBatchEnable) delete${simpleClassName}List,#end export${simpleClassName} } from '#/api/${table.moduleName}/${table.businessName}'; 21 +import {
  22 + delete${simpleClassName},#if ($deleteBatchEnable)
  23 +
  24 + delete${simpleClassName}List,#end
  25 + export${simpleClassName},
  26 + get${simpleClassName}Page,
  27 +} from '#/api/${table.moduleName}/${table.businessName}';
25 #end 28 #end
26 -import { downloadFileFromBlobPart, isEmpty } from '@vben/utils'; 29 +import { $t } from '#/locales';
27 30
28 import { useGridColumns, useGridFormSchema } from './data'; 31 import { useGridColumns, useGridFormSchema } from './data';
  32 +import Form from './modules/form.vue';
  33 +## 特殊:主子表专属逻辑
  34 +#if ( $table.templateType == 11 || $table.templateType == 12 )
  35 + #foreach ($subSimpleClassName in $subSimpleClassNames)
  36 + #set ($index = $foreach.count - 1)
  37 + #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index))
  38 +import ${subSimpleClassName}List from './modules/${subSimpleClassName_strikeCase}-list.vue';
  39 + #end
  40 +#end
29 41
30 #if ($table.templateType == 12 || $table.templateType == 11) ## 内嵌和erp情况 42 #if ($table.templateType == 12 || $table.templateType == 11) ## 内嵌和erp情况
31 /** 子表的列表 */ 43 /** 子表的列表 */
32 const subTabsName = ref('$subClassNameVars.get(0)') 44 const subTabsName = ref('$subClassNameVars.get(0)')
33 #if ($table.templateType == 11) 45 #if ($table.templateType == 11)
34 -const select${simpleClassName} = ref<${simpleClassName}Api.${simpleClassName}>(); 46 +const select${simpleClassName} = ref<${apiName}.${simpleClassName}>();
35 #end 47 #end
36 #end 48 #end
37 -  
38 const [FormModal, formModalApi] = useVbenModal({ 49 const [FormModal, formModalApi] = useVbenModal({
39 connectedComponent: Form, 50 connectedComponent: Form,
40 destroyOnClose: true, 51 destroyOnClose: true,
41 }); 52 });
42 -  
43 #if (${table.templateType} == 2)## 树表特有:控制表格展开收缩 53 #if (${table.templateType} == 2)## 树表特有:控制表格展开收缩
  54 +
44 /** 切换树形展开/收缩状态 */ 55 /** 切换树形展开/收缩状态 */
45 const isExpanded = ref(true); 56 const isExpanded = ref(true);
46 function toggleExpand() { 57 function toggleExpand() {
@@ -60,33 +71,29 @@ function onRefresh() { @@ -60,33 +71,29 @@ function onRefresh() {
60 71
61 /** 创建${table.classComment} */ 72 /** 创建${table.classComment} */
62 function handleCreate() { 73 function handleCreate() {
63 - formModalApi.setData({}).open(); 74 + formModalApi.setData(null).open();
64 } 75 }
65 76
66 /** 编辑${table.classComment} */ 77 /** 编辑${table.classComment} */
67 -function handleEdit(row: ${simpleClassName}Api.${simpleClassName}) { 78 +function handleEdit(row: ${apiName}.${simpleClassName}) {
68 formModalApi.setData(row).open(); 79 formModalApi.setData(row).open();
69 } 80 }
70 -  
71 #if (${table.templateType} == 2)## 树表特有:新增下级 81 #if (${table.templateType} == 2)## 树表特有:新增下级
  82 +
72 /** 新增下级${table.classComment} */ 83 /** 新增下级${table.classComment} */
73 -function handleAppend(row: ${simpleClassName}Api.${simpleClassName}) { 84 +function handleAppend(row: ${apiName}.${simpleClassName}) {
74 formModalApi.setData({ ${treeParentColumn.javaField}: row.id }).open(); 85 formModalApi.setData({ ${treeParentColumn.javaField}: row.id }).open();
75 } 86 }
76 #end 87 #end
77 88
78 /** 删除${table.classComment} */ 89 /** 删除${table.classComment} */
79 -async function handleDelete(row: ${simpleClassName}Api.${simpleClassName}) { 90 +async function handleDelete(row: ${apiName}.${simpleClassName}) {
80 const hideLoading = message.loading({ 91 const hideLoading = message.loading({
81 content: $t('ui.actionMessage.deleting', [row.id]), 92 content: $t('ui.actionMessage.deleting', [row.id]),
82 - key: 'action_key_msg',  
83 }); 93 });
84 try { 94 try {
85 await delete${simpleClassName}(row.id as number); 95 await delete${simpleClassName}(row.id as number);
86 - message.success({  
87 - content: $t('ui.actionMessage.deleteSuccess', [row.id]),  
88 - key: 'action_key_msg',  
89 - }); 96 + message.success($t('ui.actionMessage.deleteSuccess', [row.id]));
90 onRefresh(); 97 onRefresh();
91 } finally { 98 } finally {
92 hideLoading(); 99 hideLoading();
@@ -96,30 +103,27 @@ async function handleDelete(row: ${simpleClassName}Api.${simpleClassName}) { @@ -96,30 +103,27 @@ async function handleDelete(row: ${simpleClassName}Api.${simpleClassName}) {
96 #if ($table.templateType != 2 && $deleteBatchEnable) 103 #if ($table.templateType != 2 && $deleteBatchEnable)
97 /** 批量删除${table.classComment} */ 104 /** 批量删除${table.classComment} */
98 async function handleDeleteBatch() { 105 async function handleDeleteBatch() {
  106 + await confirm($t('ui.actionMessage.deleteBatchConfirm'));
99 const hideLoading = message.loading({ 107 const hideLoading = message.loading({
100 - content: $t('ui.actionMessage.deleting'),  
101 - key: 'action_key_msg', 108 + content: $t('ui.actionMessage.deletingBatch'),
102 }); 109 });
103 try { 110 try {
104 await delete${simpleClassName}List(checkedIds.value); 111 await delete${simpleClassName}List(checkedIds.value);
105 checkedIds.value = []; 112 checkedIds.value = [];
106 - message.success({  
107 - content: $t('ui.actionMessage.deleteSuccess'),  
108 - key: 'action_key_msg',  
109 - }); 113 + message.success($t('ui.actionMessage.deleteSuccess'));
110 onRefresh(); 114 onRefresh();
111 } finally { 115 } finally {
112 hideLoading(); 116 hideLoading();
113 } 117 }
114 } 118 }
115 119
116 -const checkedIds = ref<number[]>([]) 120 +const checkedIds = ref<number[]>([]);
117 function handleRowCheckboxChange({ 121 function handleRowCheckboxChange({
118 records, 122 records,
119 }: { 123 }: {
120 - records: ${simpleClassName}Api.${simpleClassName}[]; 124 + records: ${apiName}.${simpleClassName}[];
121 }) { 125 }) {
122 - checkedIds.value = records.map((item) => item.id); 126 + checkedIds.value = records.map((item) => item.id!);
123 } 127 }
124 #end 128 #end
125 129
@@ -152,9 +156,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -152,9 +156,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
152 enabled: false, 156 enabled: false,
153 }, 157 },
154 #else## 标准表设置 158 #else## 标准表设置
155 - pagerConfig: {  
156 - enabled: true,  
157 - }, 159 + keepSource: true,
158 #end 160 #end
159 proxyConfig: { 161 proxyConfig: {
160 ajax: { 162 ajax: {
@@ -184,19 +186,19 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -184,19 +186,19 @@ const [Grid, gridApi] = useVbenVxeGrid({
184 refresh: true, 186 refresh: true,
185 search: true, 187 search: true,
186 }, 188 },
187 - } as VxeTableGridOptions<${simpleClassName}Api.${simpleClassName}>, 189 + } as VxeTableGridOptions<${apiName}.${simpleClassName}>,
188 #if (${table.templateType} == 11 || $deleteBatchEnable) 190 #if (${table.templateType} == 11 || $deleteBatchEnable)
189 - gridEvents:{  
190 - #if(${table.templateType} == 11)  
191 - cellClick: ({ row }: { row: ${simpleClassName}Api.${simpleClassName}}) => { 191 + gridEvents: {
  192 + #if(${table.templateType} == 11)
  193 + cellClick: ({ row }: { row: ${apiName}.${simpleClassName}}) => {
192 select${simpleClassName}.value = row; 194 select${simpleClassName}.value = row;
193 }, 195 },
194 - #end  
195 - #if(${table.templateType} != 2 && $deleteBatchEnable)  
196 - checkboxAll: handleRowCheckboxChange,  
197 - checkboxChange: handleRowCheckboxChange,  
198 - #end  
199 - } 196 + #end
  197 + #if(${table.templateType} != 2 && $deleteBatchEnable)
  198 + checkboxAll: handleRowCheckboxChange,
  199 + checkboxChange: handleRowCheckboxChange,
  200 + #end
  201 + },
200 #end 202 #end
201 }); 203 });
202 </script> 204 </script>
@@ -255,8 +257,8 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -255,8 +257,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
255 type: 'primary', 257 type: 'primary',
256 danger: true, 258 danger: true,
257 icon: ACTION_ICON.DELETE, 259 icon: ACTION_ICON.DELETE,
258 - disabled: isEmpty(checkedIds),  
259 auth: ['${table.moduleName}:${simpleClassName_strikeCase}:delete'], 260 auth: ['${table.moduleName}:${simpleClassName_strikeCase}:delete'],
  261 + disabled: isEmpty(checkedIds),
260 onClick: handleDeleteBatch, 262 onClick: handleDeleteBatch,
261 }, 263 },
262 #end 264 #end
@@ -297,7 +299,6 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -297,7 +299,6 @@ const [Grid, gridApi] = useVbenVxeGrid({
297 /> 299 />
298 </template> 300 </template>
299 </Grid> 301 </Grid>
300 -  
301 #if ($table.templateType == 11) ## erp情况 302 #if ($table.templateType == 11) ## erp情况
302 <!-- 子表的表单 --> 303 <!-- 子表的表单 -->
303 <Tabs v-model:active-key="subTabsName" class="mt-2"> 304 <Tabs v-model:active-key="subTabsName" class="mt-2">
@@ -314,4 +315,4 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -314,4 +315,4 @@ const [Grid, gridApi] = useVbenVxeGrid({
314 </div> 315 </div>
315 #end 316 #end
316 </Page> 317 </Page>
317 -</template> 318 -</template>
  319 +</template>
318 \ No newline at end of file 320 \ No newline at end of file
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/modules/form_sub_erp.vue.vm
@@ -2,8 +2,9 @@ @@ -2,8 +2,9 @@
2 #set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 2 #set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组
3 #set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 3 #set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段
4 #set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) 4 #set ($subSimpleClassName = $subSimpleClassNames.get($subIndex))
  5 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
5 <script lang="ts" setup> 6 <script lang="ts" setup>
6 - import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 7 + import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
7 8
8 import { useVbenModal } from '@vben/common-ui'; 9 import { useVbenModal } from '@vben/common-ui';
9 import { message } from 'ant-design-vue'; 10 import { message } from 'ant-design-vue';
@@ -16,7 +17,7 @@ @@ -16,7 +17,7 @@
16 import { use${subSimpleClassName}FormSchema } from '../data'; 17 import { use${subSimpleClassName}FormSchema } from '../data';
17 18
18 const emit = defineEmits(['success']); 19 const emit = defineEmits(['success']);
19 - const formData = ref<${simpleClassName}Api.${subSimpleClassName}>(); 20 + const formData = ref<${apiName}.${subSimpleClassName}>();
20 const getTitle = computed(() => { 21 const getTitle = computed(() => {
21 return formData.value?.id 22 return formData.value?.id
22 ? $t('ui.actionTitle.edit', ['${subTable.classComment}']) 23 ? $t('ui.actionTitle.edit', ['${subTable.classComment}'])
@@ -45,7 +46,7 @@ @@ -45,7 +46,7 @@
45 46
46 modalApi.lock(); 47 modalApi.lock();
47 // 提交表单 48 // 提交表单
48 - const data = (await formApi.getValues()) as ${simpleClassName}Api.${subSimpleClassName}; 49 + const data = (await formApi.getValues()) as ${apiName}.${subSimpleClassName};
49 data.${subJoinColumn.javaField} = formData.value?.${subJoinColumn.javaField}; 50 data.${subJoinColumn.javaField} = formData.value?.${subJoinColumn.javaField};
50 try { 51 try {
51 await (formData.value?.id ? update${subSimpleClassName}(data) : create${subSimpleClassName}(data)); 52 await (formData.value?.id ? update${subSimpleClassName}(data) : create${subSimpleClassName}(data));
@@ -64,7 +65,7 @@ @@ -64,7 +65,7 @@
64 } 65 }
65 66
66 // 加载数据 67 // 加载数据
67 - let data = modalApi.getData<${simpleClassName}Api.${subSimpleClassName}>(); 68 + let data = modalApi.getData<${apiName}.${subSimpleClassName}>();
68 if (!data) { 69 if (!data) {
69 return; 70 return;
70 } 71 }
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/modules/form_sub_normal.vue.vm
@@ -4,8 +4,9 @@ @@ -4,8 +4,9 @@
4 #set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) 4 #set ($subSimpleClassName = $subSimpleClassNames.get($subIndex))
5 #set ($subClassNameVar = $subClassNameVars.get($subIndex)) 5 #set ($subClassNameVar = $subClassNameVars.get($subIndex))
6 #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 6 #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
  7 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
7 <script lang="ts" setup> 8 <script lang="ts" setup>
8 - import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 9 + import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
9 10
10 import { computed, ref, h, onMounted,watch,nextTick } from 'vue'; 11 import { computed, ref, h, onMounted,watch,nextTick } from 'vue';
11 import { $t } from '#/locales'; 12 import { $t } from '#/locales';
@@ -33,7 +34,7 @@ const props = defineProps&lt;{ @@ -33,7 +34,7 @@ const props = defineProps&lt;{
33 function onActionClick({ 34 function onActionClick({
34 code, 35 code,
35 row, 36 row,
36 -}: OnActionClickParams<${simpleClassName}Api.${subSimpleClassName}>) { 37 +}: OnActionClickParams<${apiName}.${subSimpleClassName}>) {
37 switch (code) { 38 switch (code) {
38 case 'delete': { 39 case 'delete': {
39 onDelete(row); 40 onDelete(row);
@@ -63,20 +64,20 @@ gridOptions: { @@ -63,20 +64,20 @@ gridOptions: {
63 64
64 /** 添加${subTable.classComment} */ 65 /** 添加${subTable.classComment} */
65 const onAdd = async () => { 66 const onAdd = async () => {
66 - await gridApi.grid.insertAt({} as ${simpleClassName}Api.${subSimpleClassName}, -1); 67 + await gridApi.grid.insertAt({} as ${apiName}.${subSimpleClassName}, -1);
67 } 68 }
68 69
69 /** 删除${subTable.classComment} */ 70 /** 删除${subTable.classComment} */
70 -const onDelete = async (row: ${simpleClassName}Api.${subSimpleClassName}) => { 71 +const onDelete = async (row: ${apiName}.${subSimpleClassName}) => {
71 await gridApi.grid.remove(row); 72 await gridApi.grid.remove(row);
72 } 73 }
73 74
74 /** 提供获取表格数据的方法供父组件调用 */ 75 /** 提供获取表格数据的方法供父组件调用 */
75 defineExpose({ 76 defineExpose({
76 - getData: (): ${simpleClassName}Api.${subSimpleClassName}[] => {  
77 - const data = gridApi.grid.getData() as ${simpleClassName}Api.${subSimpleClassName}[];  
78 - const removeRecords = gridApi.grid.getRemoveRecords() as ${simpleClassName}Api.${subSimpleClassName}[];  
79 - const insertRecords = gridApi.grid.getInsertRecords() as ${simpleClassName}Api.${subSimpleClassName}[]; 77 + getData: (): ${apiName}.${subSimpleClassName}[] => {
  78 + const data = gridApi.grid.getData() as ${apiName}.${subSimpleClassName}[];
  79 + const removeRecords = gridApi.grid.getRemoveRecords() as ${apiName}.${subSimpleClassName}[];
  80 + const insertRecords = gridApi.grid.getInsertRecords() as ${apiName}.${subSimpleClassName}[];
80 return data 81 return data
81 .filter((row) => !removeRecords.some((removed) => removed.id === row.id)) 82 .filter((row) => !removeRecords.some((removed) => removed.id === row.id))
82 .concat(insertRecords.map((row: any) => ({ ...row, id: undefined }))); 83 .concat(insertRecords.map((row: any) => ({ ...row, id: undefined })));
yudao-module-infra/src/main/resources/codegen/vue3_vben5_antd/schema/views/modules/list_sub_erp.vue.vm
@@ -5,9 +5,10 @@ @@ -5,9 +5,10 @@
5 #set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 5 #set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段
6 #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($subIndex)) 6 #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($subIndex))
7 #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 7 #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
  8 +#set ($apiName = "${table.moduleName.substring(0,1).toUpperCase()}${table.moduleName.substring(1)}${simpleClassName}Api")
8 <script lang="ts" setup> 9 <script lang="ts" setup>
9 import type { VxeTableGridOptions } from '#/adapter/vxe-table'; 10 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
10 -import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${table.businessName}'; 11 +import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
11 12
12 #if ($table.templateType == 11) ## erp 13 #if ($table.templateType == 11) ## erp
13 import ${subSimpleClassName}Form from './${subSimpleClassName_strikeCase}-form.vue' 14 import ${subSimpleClassName}Form from './${subSimpleClassName_strikeCase}-form.vue'
@@ -51,12 +52,12 @@ function handleCreate() { @@ -51,12 +52,12 @@ function handleCreate() {
51 } 52 }
52 53
53 /** 编辑${subTable.classComment} */ 54 /** 编辑${subTable.classComment} */
54 -function handleEdit(row: ${simpleClassName}Api.${subSimpleClassName}) { 55 +function handleEdit(row: ${apiName}.${subSimpleClassName}) {
55 formModalApi.setData(row).open(); 56 formModalApi.setData(row).open();
56 } 57 }
57 58
58 /** 删除${subTable.classComment} */ 59 /** 删除${subTable.classComment} */
59 -async function handleDelete(row: ${simpleClassName}Api.${subSimpleClassName}) { 60 +async function handleDelete(row: ${apiName}.${subSimpleClassName}) {
60 const hideLoading = message.loading({ 61 const hideLoading = message.loading({
61 content: $t('ui.actionMessage.deleting', [row.id]), 62 content: $t('ui.actionMessage.deleting', [row.id]),
62 key: 'action_process_msg', 63 key: 'action_process_msg',
@@ -97,7 +98,7 @@ const checkedIds = ref&lt;number[]&gt;([]) @@ -97,7 +98,7 @@ const checkedIds = ref&lt;number[]&gt;([])
97 function handleRowCheckboxChange({ 98 function handleRowCheckboxChange({
98 records, 99 records,
99 }: { 100 }: {
100 - records: ${simpleClassName}Api.${subSimpleClassName}[]; 101 + records: ${apiName}.${subSimpleClassName}[];
101 }) { 102 }) {
102 checkedIds.value = records.map((item) => item.id); 103 checkedIds.value = records.map((item) => item.id);
103 } 104 }
@@ -149,7 +150,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ @@ -149,7 +150,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
149 keyField: 'id', 150 keyField: 'id',
150 isHover: true, 151 isHover: true,
151 }, 152 },
152 - } as VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>, 153 + } as VxeTableGridOptions<${apiName}.${subSimpleClassName}>,
153 #if (${table.templateType} == 11 && $deleteBatchEnable) 154 #if (${table.templateType} == 11 && $deleteBatchEnable)
154 gridEvents:{ 155 gridEvents:{
155 checkboxAll: handleRowCheckboxChange, 156 checkboxAll: handleRowCheckboxChange,
yudao-module-infra/src/main/resources/codegen/vue3_vben5_ele/schema/views/data.ts.vm
@@ -3,7 +3,7 @@ import type { VbenFormSchema } from &#39;#/adapter/form&#39;; @@ -3,7 +3,7 @@ import type { VbenFormSchema } from &#39;#/adapter/form&#39;;
3 import type { VxeTableGridOptions } from '#/adapter/vxe-table'; 3 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
4 import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}'; 4 import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
5 5
6 -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps, } from '#/utils'; 6 +import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils';
7 #if(${table.templateType} == 2)## 树表需要导入这些 7 #if(${table.templateType} == 2)## 树表需要导入这些
8 import { get${simpleClassName}List } from '#/api/${table.moduleName}/${table.businessName}'; 8 import { get${simpleClassName}List } from '#/api/${table.moduleName}/${table.businessName}';
9 import { handleTree } from '@vben/utils'; 9 import { handleTree } from '@vben/utils';
yudao-module-infra/src/main/resources/codegen/vue3_vben5_ele/schema/views/index.vue.vm
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 import type { VxeTableGridOptions } from '#/adapter/vxe-table'; 3 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
4 import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}'; 4 import type { ${apiName} } from '#/api/${table.moduleName}/${table.businessName}';
5 5
6 -import { ref#if ($table.templateType == 2), computed#end } from 'vue'; 6 +import { ref } from 'vue';
7 7
8 import {#if ($table.templateType != 2 && $deleteBatchEnable) confirm,#end Page, useVbenModal } from '@vben/common-ui'; 8 import {#if ($table.templateType != 2 && $deleteBatchEnable) confirm,#end Page, useVbenModal } from '@vben/common-ui';
9 import { downloadFileFromBlobPart, isEmpty } from '@vben/utils'; 9 import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';