Commit 86a9c4bbf4801ba8b72b88df2ee871e0d7bd53bb
1 parent
de8f2800
基础设施:优化vue3标准版API生成(导出xxAPI,方便IDE识别接口)
Showing
6 changed files
with
86 additions
and
70 deletions
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm
| 1 | 1 | import request from '@/config/axios' |
| 2 | 2 | #set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") |
| 3 | 3 | |
| 4 | +// ${table.classComment} VO | |
| 4 | 5 | export interface ${simpleClassName}VO { |
| 5 | 6 | #foreach ($column in $columns) |
| 6 | 7 | #if ($column.createOperation || $column.updateOperation) |
| 8 | + // ${column.columnComment} | |
| 7 | 9 | #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") |
| 8 | 10 | ${column.javaField}: number |
| 9 | -#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime") | |
| 11 | +#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime") | |
| 10 | 12 | ${column.javaField}: Date |
| 11 | 13 | #else |
| 12 | 14 | ${column.javaField}: ${column.javaType.toLowerCase()} |
| ... | ... | @@ -15,42 +17,44 @@ export interface ${simpleClassName}VO { |
| 15 | 17 | #end |
| 16 | 18 | } |
| 17 | 19 | |
| 20 | +// ${table.classComment} API | |
| 21 | +export const ${simpleClassName}Api = { | |
| 18 | 22 | #if ( $table.templateType != 2 ) |
| 19 | -// 查询${table.classComment}分页 | |
| 20 | -export const get${simpleClassName}Page = async (params) => { | |
| 21 | - return await request.get({ url: `${baseURL}/page`, params }) | |
| 22 | -} | |
| 23 | + // 查询${table.classComment}分页 | |
| 24 | + get${simpleClassName}Page: async (params: any) => { | |
| 25 | + return await request.get({ url: `${baseURL}/page`, params }) | |
| 26 | + }, | |
| 23 | 27 | #else |
| 24 | -// 查询${table.classComment}列表 | |
| 25 | -export const get${simpleClassName}List = async (params) => { | |
| 26 | - return await request.get({ url: `${baseURL}/list`, params }) | |
| 27 | -} | |
| 28 | + // 查询${table.classComment}列表 | |
| 29 | + get${simpleClassName}List: async (params) => { | |
| 30 | + return await request.get({ url: `${baseURL}/list`, params }) | |
| 31 | + }, | |
| 28 | 32 | #end |
| 29 | 33 | |
| 30 | -// 查询${table.classComment}详情 | |
| 31 | -export const get${simpleClassName} = async (id: number) => { | |
| 32 | - return await request.get({ url: `${baseURL}/get?id=` + id }) | |
| 33 | -} | |
| 34 | + // 查询${table.classComment}详情 | |
| 35 | + get${simpleClassName}: async (id: number) => { | |
| 36 | + return await request.get({ url: `${baseURL}/get?id=` + id }) | |
| 37 | + }, | |
| 34 | 38 | |
| 35 | -// 新增${table.classComment} | |
| 36 | -export const create${simpleClassName} = async (data: ${simpleClassName}VO) => { | |
| 37 | - return await request.post({ url: `${baseURL}/create`, data }) | |
| 38 | -} | |
| 39 | + // 新增${table.classComment} | |
| 40 | + create${simpleClassName}: async (data: ${simpleClassName}VO) => { | |
| 41 | + return await request.post({ url: `${baseURL}/create`, data }) | |
| 42 | + }, | |
| 39 | 43 | |
| 40 | -// 修改${table.classComment} | |
| 41 | -export const update${simpleClassName} = async (data: ${simpleClassName}VO) => { | |
| 42 | - return await request.put({ url: `${baseURL}/update`, data }) | |
| 43 | -} | |
| 44 | + // 修改${table.classComment} | |
| 45 | + update${simpleClassName}: async (data: ${simpleClassName}VO) => { | |
| 46 | + return await request.put({ url: `${baseURL}/update`, data }) | |
| 47 | + }, | |
| 44 | 48 | |
| 45 | -// 删除${table.classComment} | |
| 46 | -export const delete${simpleClassName} = async (id: number) => { | |
| 47 | - return await request.delete({ url: `${baseURL}/delete?id=` + id }) | |
| 48 | -} | |
| 49 | + // 删除${table.classComment} | |
| 50 | + delete${simpleClassName}: async (id: number) => { | |
| 51 | + return await request.delete({ url: `${baseURL}/delete?id=` + id }) | |
| 52 | + }, | |
| 49 | 53 | |
| 50 | -// 导出${table.classComment} Excel | |
| 51 | -export const export${simpleClassName} = async (params) => { | |
| 52 | - return await request.download({ url: `${baseURL}/export-excel`, params }) | |
| 53 | -} | |
| 54 | + // 导出${table.classComment} Excel | |
| 55 | + export${simpleClassName}: async (params) => { | |
| 56 | + return await request.download({ url: `${baseURL}/export-excel`, params }) | |
| 57 | + }, | |
| 54 | 58 | ## 特殊:主子表专属逻辑 |
| 55 | 59 | #foreach ($subTable in $subTables) |
| 56 | 60 | #set ($index = $foreach.count - 1) |
| ... | ... | @@ -66,46 +70,47 @@ export const export${simpleClassName} = async (params) => { |
| 66 | 70 | ## 情况一:MASTER_ERP 时,需要分查询页子表 |
| 67 | 71 | #if ( $table.templateType == 11 ) |
| 68 | 72 | |
| 69 | -// 获得${subTable.classComment}分页 | |
| 70 | -export const get${subSimpleClassName}Page = async (params) => { | |
| 71 | - return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/page`, params }) | |
| 72 | -} | |
| 73 | + // 获得${subTable.classComment}分页 | |
| 74 | + get${subSimpleClassName}Page: async (params) => { | |
| 75 | + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/page`, params }) | |
| 76 | + }, | |
| 73 | 77 | ## 情况二:非 MASTER_ERP 时,需要列表查询子表 |
| 74 | 78 | #else |
| 75 | 79 | #if ( $subTable.subJoinMany ) |
| 76 | 80 | |
| 77 | -// 获得${subTable.classComment}列表 | |
| 78 | -export const get${subSimpleClassName}ListBy${SubJoinColumnName} = async (${subJoinColumn.javaField}) => { | |
| 79 | - return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) | |
| 80 | -} | |
| 81 | + // 获得${subTable.classComment}列表 | |
| 82 | + get${subSimpleClassName}ListBy${SubJoinColumnName}: async (${subJoinColumn.javaField}) => { | |
| 83 | + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) | |
| 84 | + }, | |
| 81 | 85 | #else |
| 82 | 86 | |
| 83 | -// 获得${subTable.classComment} | |
| 84 | -export const get${subSimpleClassName}By${SubJoinColumnName} = async (${subJoinColumn.javaField}) => { | |
| 85 | - return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) | |
| 86 | -} | |
| 87 | + // 获得${subTable.classComment} | |
| 88 | + get${subSimpleClassName}By${SubJoinColumnName}: async (${subJoinColumn.javaField}) => { | |
| 89 | + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) | |
| 90 | + }, | |
| 87 | 91 | #end |
| 88 | 92 | #end |
| 89 | 93 | ## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 |
| 90 | 94 | #if ( $table.templateType == 11 ) |
| 91 | -// 新增${subTable.classComment} | |
| 92 | -export const create${subSimpleClassName} = async (data) => { | |
| 93 | - return await request.post({ url: `${baseURL}/${subSimpleClassName_strikeCase}/create`, data }) | |
| 94 | -} | |
| 95 | + // 新增${subTable.classComment} | |
| 96 | + create${subSimpleClassName}: async (data) => { | |
| 97 | + return await request.post({ url: `${baseURL}/${subSimpleClassName_strikeCase}/create`, data }) | |
| 98 | + }, | |
| 95 | 99 | |
| 96 | -// 修改${subTable.classComment} | |
| 97 | -export const update${subSimpleClassName} = async (data) => { | |
| 98 | - return await request.put({ url: `${baseURL}/${subSimpleClassName_strikeCase}/update`, data }) | |
| 99 | -} | |
| 100 | + // 修改${subTable.classComment} | |
| 101 | + update${subSimpleClassName}: async (data) => { | |
| 102 | + return await request.put({ url: `${baseURL}/${subSimpleClassName_strikeCase}/update`, data }) | |
| 103 | + }, | |
| 100 | 104 | |
| 101 | -// 删除${subTable.classComment} | |
| 102 | -export const delete${subSimpleClassName} = async (id: number) => { | |
| 103 | - return await request.delete({ url: `${baseURL}/${subSimpleClassName_strikeCase}/delete?id=` + id }) | |
| 104 | -} | |
| 105 | + // 删除${subTable.classComment} | |
| 106 | + delete${subSimpleClassName}: async (id: number) => { | |
| 107 | + return await request.delete({ url: `${baseURL}/${subSimpleClassName_strikeCase}/delete?id=` + id }) | |
| 108 | + }, | |
| 105 | 109 | |
| 106 | -// 获得${subTable.classComment} | |
| 107 | -export const get${subSimpleClassName} = async (id: number) => { | |
| 108 | - return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get?id=` + id }) | |
| 109 | -} | |
| 110 | + // 获得${subTable.classComment} | |
| 111 | + get${subSimpleClassName}: async (id: number) => { | |
| 112 | + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get?id=` + id }) | |
| 113 | + }, | |
| 110 | 114 | #end |
| 111 | -#end | |
| 112 | 115 | \ No newline at end of file |
| 116 | +#end | |
| 117 | +} | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm
| ... | ... | @@ -114,7 +114,7 @@ |
| 114 | 114 | </template> |
| 115 | 115 | <script setup lang="ts"> |
| 116 | 116 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| 117 | -import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}' | |
| 117 | +import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}' | |
| 118 | 118 | |
| 119 | 119 | const { t } = useI18n() // 国际化 |
| 120 | 120 | const message = useMessage() // 消息弹窗 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm
| ... | ... | @@ -265,7 +265,7 @@ |
| 265 | 265 | </template> |
| 266 | 266 | <script setup lang="ts"> |
| 267 | 267 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| 268 | -import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}' | |
| 268 | +import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}' | |
| 269 | 269 | |
| 270 | 270 | const props = defineProps<{ |
| 271 | 271 | ${subJoinColumn.javaField}: undefined // ${subJoinColumn.columnComment}(主表的关联字段) | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm
| ... | ... | @@ -85,7 +85,7 @@ |
| 85 | 85 | <script setup lang="ts"> |
| 86 | 86 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| 87 | 87 | import { dateFormatter } from '@/utils/formatTime' |
| 88 | -import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}' | |
| 88 | +import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}' | |
| 89 | 89 | #if ($table.templateType == 11) |
| 90 | 90 | import ${subSimpleClassName}Form from './${subSimpleClassName}Form.vue' |
| 91 | 91 | #end | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm
| ... | ... | @@ -140,7 +140,7 @@ |
| 140 | 140 | </template> |
| 141 | 141 | <script setup lang="ts"> |
| 142 | 142 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| 143 | -import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}' | |
| 143 | +import { ${simpleClassName}Api, ${simpleClassName}VO } from '@/api/${table.moduleName}/${table.businessName}' | |
| 144 | 144 | ## 特殊:树表专属逻辑 |
| 145 | 145 | #if ( $table.templateType == 2 ) |
| 146 | 146 | import { defaultProps, handleTree } from '@/utils/tree' |
| ... | ... | @@ -152,6 +152,9 @@ import ${subSimpleClassName}Form from './components/${subSimpleClassName}Form.vu |
| 152 | 152 | #end |
| 153 | 153 | #end |
| 154 | 154 | |
| 155 | +/** ${table.classComment} 表单 */ | |
| 156 | +defineOptions({ name: '${simpleClassName}Form' }) | |
| 157 | + | |
| 155 | 158 | const { t } = useI18n() // 国际化 |
| 156 | 159 | const message = useMessage() // 消息弹窗 |
| 157 | 160 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
| ... | ... | @@ -240,7 +240,7 @@ import { dateFormatter } from '@/utils/formatTime' |
| 240 | 240 | import { handleTree } from '@/utils/tree' |
| 241 | 241 | #end |
| 242 | 242 | import download from '@/utils/download' |
| 243 | -import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}' | |
| 243 | +import { ${simpleClassName}Api, ${simpleClassName}VO } from '@/api/${table.moduleName}/${table.businessName}' | |
| 244 | 244 | import ${simpleClassName}Form from './${simpleClassName}Form.vue' |
| 245 | 245 | ## 特殊:主子表专属逻辑 |
| 246 | 246 | #if ( $table.templateType != 10 ) |
| ... | ... | @@ -249,16 +249,22 @@ import ${subSimpleClassName}List from './components/${subSimpleClassName}List.vu |
| 249 | 249 | #end |
| 250 | 250 | #end |
| 251 | 251 | |
| 252 | +/** ${table.classComment} 列表 */ | |
| 252 | 253 | defineOptions({ name: '${table.className}' }) |
| 253 | 254 | |
| 254 | -const message = useMessage() // 消息弹窗 | |
| 255 | -const { t } = useI18n() // 国际化 | |
| 255 | +// 消息弹窗 | |
| 256 | +const message = useMessage() | |
| 257 | +// 国际化 | |
| 258 | +const { t } = useI18n() | |
| 256 | 259 | |
| 257 | -const loading = ref(true) // 列表的加载中 | |
| 258 | -const list = ref([]) // 列表的数据 | |
| 260 | +// 列表的加载中 | |
| 261 | +const loading = ref(true) | |
| 262 | +// 列表的数据 | |
| 263 | +const list = ref<${simpleClassName}VO[]>([]) | |
| 259 | 264 | ## 特殊:树表专属逻辑(树不需要分页接口) |
| 260 | 265 | #if ( $table.templateType != 2 ) |
| 261 | -const total = ref(0) // 列表的总页数 | |
| 266 | +// 列表的总页数 | |
| 267 | +const total = ref(0) | |
| 262 | 268 | #end |
| 263 | 269 | const queryParams = reactive({ |
| 264 | 270 | ## 特殊:树表专属逻辑(树不需要分页接口) |
| ... | ... | @@ -277,8 +283,10 @@ const queryParams = reactive({ |
| 277 | 283 | #end |
| 278 | 284 | #end |
| 279 | 285 | }) |
| 280 | -const queryFormRef = ref() // 搜索的表单 | |
| 281 | -const exportLoading = ref(false) // 导出的加载中 | |
| 286 | +// 搜索的表单 | |
| 287 | +const queryFormRef = ref() | |
| 288 | +// 导出的加载中 | |
| 289 | +const exportLoading = ref(false) | |
| 282 | 290 | |
| 283 | 291 | /** 查询列表 */ |
| 284 | 292 | const getList = async () => { | ... | ... |