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 | import request from '@/config/axios' | 1 | import request from '@/config/axios' |
| 2 | #set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") | 2 | #set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") |
| 3 | 3 | ||
| 4 | +// ${table.classComment} VO | ||
| 4 | export interface ${simpleClassName}VO { | 5 | export interface ${simpleClassName}VO { |
| 5 | #foreach ($column in $columns) | 6 | #foreach ($column in $columns) |
| 6 | #if ($column.createOperation || $column.updateOperation) | 7 | #if ($column.createOperation || $column.updateOperation) |
| 8 | + // ${column.columnComment} | ||
| 7 | #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") | 9 | #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") |
| 8 | ${column.javaField}: number | 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 | ${column.javaField}: Date | 12 | ${column.javaField}: Date |
| 11 | #else | 13 | #else |
| 12 | ${column.javaField}: ${column.javaType.toLowerCase()} | 14 | ${column.javaField}: ${column.javaType.toLowerCase()} |
| @@ -15,42 +17,44 @@ export interface ${simpleClassName}VO { | @@ -15,42 +17,44 @@ export interface ${simpleClassName}VO { | ||
| 15 | #end | 17 | #end |
| 16 | } | 18 | } |
| 17 | 19 | ||
| 20 | +// ${table.classComment} API | ||
| 21 | +export const ${simpleClassName}Api = { | ||
| 18 | #if ( $table.templateType != 2 ) | 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 | #else | 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 | #end | 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 | #foreach ($subTable in $subTables) | 59 | #foreach ($subTable in $subTables) |
| 56 | #set ($index = $foreach.count - 1) | 60 | #set ($index = $foreach.count - 1) |
| @@ -66,46 +70,47 @@ export const export${simpleClassName} = async (params) => { | @@ -66,46 +70,47 @@ export const export${simpleClassName} = async (params) => { | ||
| 66 | ## 情况一:MASTER_ERP 时,需要分查询页子表 | 70 | ## 情况一:MASTER_ERP 时,需要分查询页子表 |
| 67 | #if ( $table.templateType == 11 ) | 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 | ## 情况二:非 MASTER_ERP 时,需要列表查询子表 | 77 | ## 情况二:非 MASTER_ERP 时,需要列表查询子表 |
| 74 | #else | 78 | #else |
| 75 | #if ( $subTable.subJoinMany ) | 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 | #else | 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 | #end | 91 | #end |
| 88 | #end | 92 | #end |
| 89 | ## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 | 93 | ## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 |
| 90 | #if ( $table.templateType == 11 ) | 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 | #end | 114 | #end |
| 111 | -#end | ||
| 112 | \ No newline at end of file | 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,7 +114,7 @@ | ||
| 114 | </template> | 114 | </template> |
| 115 | <script setup lang="ts"> | 115 | <script setup lang="ts"> |
| 116 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' | 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 | const { t } = useI18n() // 国际化 | 119 | const { t } = useI18n() // 国际化 |
| 120 | const message = useMessage() // 消息弹窗 | 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,7 +265,7 @@ | ||
| 265 | </template> | 265 | </template> |
| 266 | <script setup lang="ts"> | 266 | <script setup lang="ts"> |
| 267 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' | 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 | const props = defineProps<{ | 270 | const props = defineProps<{ |
| 271 | ${subJoinColumn.javaField}: undefined // ${subJoinColumn.columnComment}(主表的关联字段) | 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,7 +85,7 @@ | ||
| 85 | <script setup lang="ts"> | 85 | <script setup lang="ts"> |
| 86 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' | 86 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| 87 | import { dateFormatter } from '@/utils/formatTime' | 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 | #if ($table.templateType == 11) | 89 | #if ($table.templateType == 11) |
| 90 | import ${subSimpleClassName}Form from './${subSimpleClassName}Form.vue' | 90 | import ${subSimpleClassName}Form from './${subSimpleClassName}Form.vue' |
| 91 | #end | 91 | #end |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm
| @@ -140,7 +140,7 @@ | @@ -140,7 +140,7 @@ | ||
| 140 | </template> | 140 | </template> |
| 141 | <script setup lang="ts"> | 141 | <script setup lang="ts"> |
| 142 | import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' | 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 | #if ( $table.templateType == 2 ) | 145 | #if ( $table.templateType == 2 ) |
| 146 | import { defaultProps, handleTree } from '@/utils/tree' | 146 | import { defaultProps, handleTree } from '@/utils/tree' |
| @@ -152,6 +152,9 @@ import ${subSimpleClassName}Form from './components/${subSimpleClassName}Form.vu | @@ -152,6 +152,9 @@ import ${subSimpleClassName}Form from './components/${subSimpleClassName}Form.vu | ||
| 152 | #end | 152 | #end |
| 153 | #end | 153 | #end |
| 154 | 154 | ||
| 155 | +/** ${table.classComment} 表单 */ | ||
| 156 | +defineOptions({ name: '${simpleClassName}Form' }) | ||
| 157 | + | ||
| 155 | const { t } = useI18n() // 国际化 | 158 | const { t } = useI18n() // 国际化 |
| 156 | const message = useMessage() // 消息弹窗 | 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,7 +240,7 @@ import { dateFormatter } from '@/utils/formatTime' | ||
| 240 | import { handleTree } from '@/utils/tree' | 240 | import { handleTree } from '@/utils/tree' |
| 241 | #end | 241 | #end |
| 242 | import download from '@/utils/download' | 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 | import ${simpleClassName}Form from './${simpleClassName}Form.vue' | 244 | import ${simpleClassName}Form from './${simpleClassName}Form.vue' |
| 245 | ## 特殊:主子表专属逻辑 | 245 | ## 特殊:主子表专属逻辑 |
| 246 | #if ( $table.templateType != 10 ) | 246 | #if ( $table.templateType != 10 ) |
| @@ -249,16 +249,22 @@ import ${subSimpleClassName}List from './components/${subSimpleClassName}List.vu | @@ -249,16 +249,22 @@ import ${subSimpleClassName}List from './components/${subSimpleClassName}List.vu | ||
| 249 | #end | 249 | #end |
| 250 | #end | 250 | #end |
| 251 | 251 | ||
| 252 | +/** ${table.classComment} 列表 */ | ||
| 252 | defineOptions({ name: '${table.className}' }) | 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 | #if ( $table.templateType != 2 ) | 265 | #if ( $table.templateType != 2 ) |
| 261 | -const total = ref(0) // 列表的总页数 | 266 | +// 列表的总页数 |
| 267 | +const total = ref(0) | ||
| 262 | #end | 268 | #end |
| 263 | const queryParams = reactive({ | 269 | const queryParams = reactive({ |
| 264 | ## 特殊:树表专属逻辑(树不需要分页接口) | 270 | ## 特殊:树表专属逻辑(树不需要分页接口) |
| @@ -277,8 +283,10 @@ const queryParams = reactive({ | @@ -277,8 +283,10 @@ const queryParams = reactive({ | ||
| 277 | #end | 283 | #end |
| 278 | #end | 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 | const getList = async () => { | 292 | const getList = async () => { |