Commit 9a5d7c864673b043e08934349e02a8c87e0f3d8a

Authored by YunaiV
1 parent 0e3904b6

Vue3 CRUD Schema 模版,部分提交

yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java
... ... @@ -110,8 +110,8 @@ public class CodegenEngine {
110 110 .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("api/api.ts"),
111 111 vue3FilePath("api/${table.moduleName}/${classNameVar}/index.ts"))
112 112 // Vue3 Schema 模版
113   -// .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/data.ts"),
114   -// vue3FilePath("views/${table.moduleName}/${classNameVar}/${classNameVar}.data.ts"))
  113 + .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/data.ts"),
  114 + vue3FilePath("views/${table.moduleName}/${classNameVar}/${classNameVar}.data.ts"))
115 115 .build();
116 116  
117 117 @Resource
... ... @@ -264,6 +264,7 @@ public class CodegenEngine {
264 264 return "yudao-ui-${sceneEnum.basePackage}/" + // 顶级目录
265 265 "src/" + path;
266 266 }
  267 +
267 268 private static String vue3TemplatePath(String path) {
268 269 return "codegen/vue3/" + path + ".vm";
269 270 }
... ... @@ -272,4 +273,8 @@ public class CodegenEngine {
272 273 return "yudao-ui-${sceneEnum.basePackage}-vue3/" + // 顶级目录
273 274 "src/" + path;
274 275 }
  276 +
  277 + private static String vue3SchemaTemplatePath(String path) {
  278 + return "codegen/vue3_schema/" + path + ".vm";
  279 + }
275 280 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vxe/api/api.ts.vm renamed to yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm
1 1 import request from '@/config/axios'
2 2  
3 3 export interface ${simpleClassName}VO {
4   -#foreach ($column in $columns)
5   -#if ($column.createOperation || $column.updateOperation)
6   -#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
7   - ${column.javaField}: number
8   -#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
9   - ${column.javaField}: Date
10   -#else
11   - ${column.javaField}: ${column.javaType.toLowerCase()}
12   -#end
13   -#end
14   -#end
  4 + #foreach ($column in $columns)
  5 + #if ($column.createOperation || $column.updateOperation)
  6 + #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
  7 + ${column.javaField}: number
  8 + #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
  9 + ${column.javaField}: Date
  10 + #else
  11 + ${column.javaField}: ${column.javaType.toLowerCase()}
  12 + #end
  13 + #end
  14 + #end
15 15 }
16 16  
17   -export interface ${simpleClassName}PageReqVO extends PageParam {
18   -#foreach ($column in $columns)
19   -#if (${column.listOperation})##查询操作
20   -#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
21   - ${column.javaField}?: number
22   -#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
23   - ${column.javaField}?: Date[]
24   -#else
25   - ${column.javaField}?: ${column.javaType.toLowerCase()}
26   -#end
27   -#end
28   -#end
29   -}
30   -
31   -export interface ${simpleClassName}ExcelReqVO {
32   -#foreach ($column in $columns)
33   -#if (${column.listOperation})##查询操作
34   -#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
35   - ${column.javaField}?: number
36   -#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
37   - ${column.javaField}?: Date[]
38   -#else
39   - ${column.javaField}?: ${column.javaType.toLowerCase()}
40   -#end
41   -#end
42   -#end
43   -}
44   -#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")
45   -
46 17 // 查询${table.classComment}列表
47   -export const get${simpleClassName}PageApi = async (params: ${simpleClassName}PageReqVO) => {
  18 +export const get${simpleClassName}Page = async (params: ${simpleClassName}PageReqVO) => {
48 19 return await request.get({ url: '${baseURL}/page', params })
49 20 }
50 21  
51 22 // 查询${table.classComment}详情
52   -export const get${simpleClassName}Api = async (id: number) => {
  23 +export const get${simpleClassName} = async (id: number) => {
53 24 return await request.get({ url: '${baseURL}/get?id=' + id })
54 25 }
55 26  
56 27 // 新增${table.classComment}
57   -export const create${simpleClassName}Api = async (data: ${simpleClassName}VO) => {
  28 +export const create${simpleClassName} = async (data: ${simpleClassName}VO) => {
58 29 return await request.post({ url: '${baseURL}/create', data })
59 30 }
60 31  
61 32 // 修改${table.classComment}
62   -export const update${simpleClassName}Api = async (data: ${simpleClassName}VO) => {
  33 +export const update${simpleClassName} = async (data: ${simpleClassName}VO) => {
63 34 return await request.put({ url: '${baseURL}/update', data })
64 35 }
65 36  
66 37 // 删除${table.classComment}
67   -export const delete${simpleClassName}Api = async (id: number) => {
  38 +export const delete${simpleClassName} = async (id: number) => {
68 39 return await request.delete({ url: '${baseURL}/delete?id=' + id })
69 40 }
70 41  
71 42 // 导出${table.classComment} Excel
72   -export const export${simpleClassName}Api = async (params: ${simpleClassName}ExcelReqVO) => {
  43 +export const export${simpleClassName}Api = async (params) => {
73 44 return await request.download({ url: '${baseURL}/export-excel', params })
74 45 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vxe/views/data.ts.vm renamed to yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm
1   -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
  1 +import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
2 2 const { t } = useI18n() // 国际化
  3 +
3 4 // 表单校验
4 5 export const rules = reactive({
5 6 #foreach ($column in $columns)
... ... @@ -9,98 +10,106 @@ export const rules = reactive({
9 10 #end
10 11 #end
11 12 })
  13 +
12 14 // CrudSchema
13   -const crudSchemas = reactive<VxeCrudSchema>({
14   - primaryKey: 'id', // 默认的主键ID
15   - primaryTitle: t('common.index'), // 默认显示的值
16   - primaryType: 'seq', // 默认为seq,序号模式
17   - action: true,
18   - actionWidth: '200', // 3个按钮默认200,如有删减对应增减即可
19   - columns: [
20   - #foreach($column in $columns)
21   - #if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
22   - #set ($dictType = $column.dictType)
23   - #if(!$column.primaryKey)
24   - {
25   - title: '${column.columnComment}',
26   - field: '${column.javaField}',
27   - #if (!$column.listOperationResult)
28   - isTable: false,
29   - #end
30   - #if ("" != $dictType)## 有数据字典
31   - dictType: DICT_TYPE.$dictType.toUpperCase(),
32   - #if (${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
33   - dictClass: 'number',
34   - #else
35   - dictClass: 'string',
36   - #end
37   - #end
38   - #if (!$column.createOperation && !$column.updateOperation)
39   - isForm: false,
40   - #elseif(!("" != $column.dictType))
41   - #if (${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
42   - form: {
43   - component: 'DatePicker',
44   - componentProps: {
45   - type: 'datetime',
46   - valueFormat: 'x'
47   - }
48   - },
49   - #elseif($column.htmlType == "editor")## 文本编辑器
50   - form: {
51   - component: 'Editor',
52   - colProps: {
53   - span: 24
54   - },
55   - componentProps: {
56   - valueHtml: ''
57   - }
58   - },
59   - #elseif($column.htmlType == "textarea")## 文本框
60   - form: {
61   - component: 'Input',
62   - componentProps: {
63   - type: 'textarea',
64   - rows: 4
65   - },
66   - colProps: {
67   - span: 24
68   - }
69   - },
70   - #elseif(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")## 数字类型
71   - form: {
72   - component: 'InputNumber',
73   - value: 0
74   - },
75   - #elseif($column.htmlType == "imageUpload")## 图片上传
76   - form: {
77   - component: 'UploadImg' // 单图上传,多图为UploadImgs
78   - },
79   - #elseif($column.htmlType == "fileUpload")## 图片上传
80   - form: {
81   - component: 'UploadFile'
82   - },
83   - #end
84   - #end
85   - #if ($column.listOperation)
86   - #if($column.htmlType == "input")
87   - isSearch: true,
88   - #elseif("" != $dictType)
89   - isSearch: true,
90   - #elseif($column.htmlType == "datetime")
91   - formatter: 'formatDate',
92   - search: {
93   - show: true,
94   - itemRender: {
95   - name: 'XDataTimePicker'
96   - }
97   - },
98   - #end
99   - #end
  15 +const crudSchemas = reactive<CrudSchema[]>([
  16 +#foreach($column in $columns)
  17 +#if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
  18 +#set ($dictType = $column.dictType)
  19 +#set ($javaField = $column.javaField)
  20 +#set ($javaType = $column.javaType)
  21 + {
  22 + title: '${column.columnComment}',
  23 + field: '${column.javaField}',
  24 + #if (!$column.listOperationResult)
  25 + isTable: false,
  26 + #end
  27 + #if ("" != $dictType)## 有数据字典
  28 + dictType: DICT_TYPE.$dictType.toUpperCase(),
  29 + #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short")
  30 + dictClass: 'number',
  31 + #elseif ($javaType == "String")
  32 + dictClass: 'string',
  33 + #elseif ($javaType == "Boolean")
  34 + dictClass: 'boolean',
  35 + #end
  36 + #end
  37 + #if ((!$column.createOperation && !$column.updateOperation) || $column.primaryKey)
  38 + isForm: false,
  39 + #else
  40 + #if($column.htmlType == "imageUpload")## 图片上传
  41 + form: {
  42 + component: 'UploadImg'
  43 + },
  44 + #elseif($column.htmlType == "fileUpload")## 文件上传
  45 + form: {
  46 + component: 'UploadFile'
  47 + },
  48 + #elseif($column.htmlType == "editor")## 文本编辑器
  49 + form: {
  50 + component: 'Editor',
  51 + componentProps: {
  52 + valueHtml: '',
  53 + height: 200
  54 + }
  55 + },
  56 + #elseif($column.htmlType == "select")## 下拉框
  57 + form: {
  58 + component: 'SelectV2'
  59 + },
  60 + #elseif($column.htmlType == "checkbox")## 多选框
  61 + form: {
  62 + component: 'Checkbox'
  63 + },
  64 + #elseif($column.htmlType == "checkbox")## 单选框
  65 + form: {
  66 + component: 'Radio'
100 67 },
101   - #end
  68 + #end
102 69 #end
  70 + #elseif(!("" != $column.dictType))
  71 + #if (${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
  72 + form: {
  73 + component: 'DatePicker',
  74 + componentProps: {
  75 + type: 'datetime',
  76 + valueFormat: 'x'
  77 + }
  78 + },
  79 + #elseif($column.htmlType == "textarea")## 文本框
  80 + form: {
  81 + component: 'Input',
  82 + componentProps: {
  83 + type: 'textarea',
  84 + rows: 4
  85 + },
  86 + colProps: {
  87 + span: 24
  88 + }
  89 + },
  90 + #elseif(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")## 数字类型
  91 + form: {
  92 + component: 'InputNumber',
  93 + value: 0
  94 + },
103 95 #end
104   - ]
105   -})
106   -export const { allSchemas } = useVxeCrudSchemas(crudSchemas)
107 96 \ No newline at end of file
  97 + #end
  98 + #if ($column.listOperation)
  99 + #if($column.htmlType == "input")
  100 + isSearch: true,
  101 + #elseif("" != $dictType)
  102 + isSearch: true,
  103 + #elseif($column.htmlType == "datetime")
  104 + formatter: 'formatDate',
  105 + search: {
  106 + show: true,
  107 + itemRender: {
  108 + name: 'XDataTimePicker'
  109 + }
  110 + },
  111 + #end
  112 + #end
  113 + },
  114 +#end
  115 +])
  116 +export const { allSchemas } = useCrudSchemas(crudSchemas)
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vxe/views/index.vue.vm renamed to yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm