Browse Source

基础设施:优化vue3标准版API生成(导出xxAPI,方便IDE识别接口)

owen 1 year ago
parent
commit
86a9c4bbf4

+ 63 - 58
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm

@@ -1,12 +1,14 @@
 import request from '@/config/axios'
 #set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")
 
+// ${table.classComment} VO
 export interface ${simpleClassName}VO {
 #foreach ($column in $columns)
 #if ($column.createOperation || $column.updateOperation)
+  // ${column.columnComment}
 #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
   ${column.javaField}: number
-#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
+#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime")
   ${column.javaField}: Date
 #else
   ${column.javaField}: ${column.javaType.toLowerCase()}
@@ -15,42 +17,44 @@ export interface ${simpleClassName}VO {
 #end
 }
 
+// ${table.classComment} API
+export const ${simpleClassName}Api = {
 #if ( $table.templateType != 2 )
-// 查询${table.classComment}分页
-export const get${simpleClassName}Page = async (params) => {
-  return await request.get({ url: `${baseURL}/page`, params })
-}
+  // 查询${table.classComment}分页
+  get${simpleClassName}Page: async (params: any) => {
+    return await request.get({ url: `${baseURL}/page`, params })
+  },
 #else
-// 查询${table.classComment}列表
-export const get${simpleClassName}List = async (params) => {
-  return await request.get({ url: `${baseURL}/list`, params })
-}
+  // 查询${table.classComment}列表
+  get${simpleClassName}List: async (params) => {
+    return await request.get({ url: `${baseURL}/list`, params })
+  },
 #end
 
-// 查询${table.classComment}详情
-export const get${simpleClassName} = async (id: number) => {
-  return await request.get({ url: `${baseURL}/get?id=` + id })
-}
+  // 查询${table.classComment}详情
+  get${simpleClassName}: async (id: number) => {
+    return await request.get({ url: `${baseURL}/get?id=` + id })
+  },
 
-// 新增${table.classComment}
-export const create${simpleClassName} = async (data: ${simpleClassName}VO) => {
-  return await request.post({ url: `${baseURL}/create`, data })
-}
+  // 新增${table.classComment}
+  create${simpleClassName}: async (data: ${simpleClassName}VO) => {
+    return await request.post({ url: `${baseURL}/create`, data })
+  },
 
-// 修改${table.classComment}
-export const update${simpleClassName} = async (data: ${simpleClassName}VO) => {
-  return await request.put({ url: `${baseURL}/update`, data })
-}
+  // 修改${table.classComment}
+  update${simpleClassName}: async (data: ${simpleClassName}VO) => {
+    return await request.put({ url: `${baseURL}/update`, data })
+  },
 
-// 删除${table.classComment}
-export const delete${simpleClassName} = async (id: number) => {
-  return await request.delete({ url: `${baseURL}/delete?id=` + id })
-}
+  // 删除${table.classComment}
+  delete${simpleClassName}: async (id: number) => {
+    return await request.delete({ url: `${baseURL}/delete?id=` + id })
+  },
 
-// 导出${table.classComment} Excel
-export const export${simpleClassName} = async (params) => {
-  return await request.download({ url: `${baseURL}/export-excel`, params })
-}
+  // 导出${table.classComment} Excel
+  export${simpleClassName}: async (params) => {
+    return await request.download({ url: `${baseURL}/export-excel`, params })
+  },
 ## 特殊:主子表专属逻辑
 #foreach ($subTable in $subTables)
 #set ($index = $foreach.count - 1)
@@ -66,46 +70,47 @@ export const export${simpleClassName} = async (params) => {
 ## 情况一:MASTER_ERP 时,需要分查询页子表
 #if ( $table.templateType == 11 )
 
-// 获得${subTable.classComment}分页
-export const get${subSimpleClassName}Page = async (params) => {
-  return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/page`, params })
-}
+  // 获得${subTable.classComment}分页
+  get${subSimpleClassName}Page: async (params) => {
+    return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/page`, params })
+  },
 ## 情况二:非 MASTER_ERP 时,需要列表查询子表
 #else
   #if ( $subTable.subJoinMany )
 
-// 获得${subTable.classComment}列表
-export const get${subSimpleClassName}ListBy${SubJoinColumnName} = async (${subJoinColumn.javaField}) => {
-  return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} })
-}
+  // 获得${subTable.classComment}列表
+  get${subSimpleClassName}ListBy${SubJoinColumnName}: async (${subJoinColumn.javaField}) => {
+    return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} })
+  },
   #else
 
-// 获得${subTable.classComment}
-export const get${subSimpleClassName}By${SubJoinColumnName} = async (${subJoinColumn.javaField}) => {
-  return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} })
-}
+  // 获得${subTable.classComment}
+  get${subSimpleClassName}By${SubJoinColumnName}: async (${subJoinColumn.javaField}) => {
+    return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} })
+  },
   #end
 #end
 ## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作
 #if ( $table.templateType == 11 )
-// 新增${subTable.classComment}
-export const create${subSimpleClassName} = async (data) => {
-  return await request.post({ url: `${baseURL}/${subSimpleClassName_strikeCase}/create`, data })
-}
+  // 新增${subTable.classComment}
+  create${subSimpleClassName}: async (data) => {
+    return await request.post({ url: `${baseURL}/${subSimpleClassName_strikeCase}/create`, data })
+  },
 
-// 修改${subTable.classComment}
-export const update${subSimpleClassName} = async (data) => {
-  return await request.put({ url: `${baseURL}/${subSimpleClassName_strikeCase}/update`, data })
-}
+  // 修改${subTable.classComment}
+  update${subSimpleClassName}: async (data) => {
+    return await request.put({ url: `${baseURL}/${subSimpleClassName_strikeCase}/update`, data })
+  },
 
-// 删除${subTable.classComment}
-export const delete${subSimpleClassName} = async (id: number) => {
-  return await request.delete({ url: `${baseURL}/${subSimpleClassName_strikeCase}/delete?id=` + id })
-}
+  // 删除${subTable.classComment}
+  delete${subSimpleClassName}: async (id: number) => {
+    return await request.delete({ url: `${baseURL}/${subSimpleClassName_strikeCase}/delete?id=` + id })
+  },
 
-// 获得${subTable.classComment}
-export const get${subSimpleClassName} = async (id: number) => {
-  return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get?id=` + id })
-}
+  // 获得${subTable.classComment}
+  get${subSimpleClassName}: async (id: number) => {
+    return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get?id=` + id })
+  },
 #end
-#end
+#end
+}

+ 1 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm

@@ -114,7 +114,7 @@
 </template>
 <script setup lang="ts">
 import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
+import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗

+ 1 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm

@@ -265,7 +265,7 @@
 </template>
 <script setup lang="ts">
 import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
+import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}'
 
 const props = defineProps<{
   ${subJoinColumn.javaField}: undefined // ${subJoinColumn.columnComment}(主表的关联字段)

+ 1 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm

@@ -85,7 +85,7 @@
 <script setup lang="ts">
 import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
+import { ${simpleClassName}Api } from '@/api/${table.moduleName}/${table.businessName}'
 #if ($table.templateType == 11)
 import ${subSimpleClassName}Form from './${subSimpleClassName}Form.vue'
 #end

+ 4 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm

@@ -140,7 +140,7 @@
 </template>
 <script setup lang="ts">
 import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
+import { ${simpleClassName}Api, ${simpleClassName}VO } from '@/api/${table.moduleName}/${table.businessName}'
 ## 特殊:树表专属逻辑
 #if ( $table.templateType == 2 )
 import { defaultProps, handleTree } from '@/utils/tree'
@@ -152,6 +152,9 @@ import ${subSimpleClassName}Form from './components/${subSimpleClassName}Form.vu
 #end
 #end
 
+/** ${table.classComment} 表单 */
+defineOptions({ name: '${simpleClassName}Form' })
+
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 

+ 16 - 8
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'
 import { handleTree } from '@/utils/tree'
 #end
 import download from '@/utils/download'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
+import { ${simpleClassName}Api, ${simpleClassName}VO } from '@/api/${table.moduleName}/${table.businessName}'
 import ${simpleClassName}Form from './${simpleClassName}Form.vue'
 ## 特殊:主子表专属逻辑
 #if ( $table.templateType != 10 )
@@ -249,16 +249,22 @@ import ${subSimpleClassName}List from './components/${subSimpleClassName}List.vu
 #end
 #end
 
+/** ${table.classComment} 列表 */
 defineOptions({ name: '${table.className}' })
 
-const message = useMessage() // 消息弹窗
-const { t } = useI18n() // 国际化
+// 消息弹窗
+const message = useMessage()
+// 国际化
+const { t } = useI18n()
 
-const loading = ref(true) // 列表的加载中
-const list = ref([]) // 列表的数据
+// 列表的加载中
+const loading = ref(true)
+// 列表的数据
+const list = ref<${simpleClassName}VO[]>([])
 ## 特殊:树表专属逻辑(树不需要分页接口)
 #if ( $table.templateType != 2 )
-const total = ref(0) // 列表的总页数
+// 列表的总页数
+const total = ref(0)
 #end
 const queryParams = reactive({
 ## 特殊:树表专属逻辑(树不需要分页接口)
@@ -277,8 +283,10 @@ const queryParams = reactive({
     #end
   #end
 })
-const queryFormRef = ref() // 搜索的表单
-const exportLoading = ref(false) // 导出的加载中
+// 搜索的表单
+const queryFormRef = ref()
+// 导出的加载中
+const exportLoading = ref(false)
 
 /** 查询列表 */
 const getList = async () => {