From 092e48b9d57fbb6bd4bb473aa7510ca69f4e4f89 Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 11 Sep 2023 12:41:48 +0800 Subject: [PATCH] perf: vben codegen --- .../resources/codegen/vue3_vben/api/api.ts.vm | 10 ++-- .../codegen/vue3_vben/views/data.ts.vm | 48 +++++++++++++------ .../codegen/vue3_vben/views/form.vue.vm | 11 +++-- .../codegen/vue3_vben/views/index.vue.vm | 32 ++++++------- 4 files changed, 60 insertions(+), 41 deletions(-) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm index c0a53ee43..c7283a121 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm @@ -3,27 +3,27 @@ import { defHttp } from '@/utils/http/axios' // 查询${table.classComment}列表 export function get${simpleClassName}Page(params) { - return defHttp.get({ url: '${baseURL}/page', params }) + return defHttp.get({ url: '${baseURL}/page', params }) } // 查询${table.classComment}详情 export function get${simpleClassName}(id: number) { - return defHttp.get({ url: '${baseURL}/get?id=' + id }) + return defHttp.get({ url: `${baseURL}/get?id=${id}` }) } // 新增${table.classComment} export function create${simpleClassName}(data) { - return defHttp.post({ url: '${baseURL}/create', data }) + return defHttp.post({ url: '${baseURL}/create', data }) } // 修改${table.classComment} export function update${simpleClassName}(data) { - return defHttp.put({ url: '${baseURL}/update', data }) + return defHttp.put({ url: '${baseURL}/update', data }) } // 删除${table.classComment} export function delete${simpleClassName}(id: number) { - return defHttp.delete({ url: '${baseURL}/delete?id=' + id }) + return defHttp.delete({ url: `${baseURL}/delete?id=${id}` }) } // 导出${table.classComment} Excel diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm index 7f56964ed..5557b38c9 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm @@ -1,4 +1,5 @@ -import { BasicColumn, FormSchema, useRender } from '@/components/Table' +import type { BasicColumn, FormSchema } from '@/components/Table' +import { useRender } from '@/components/Table' import { DICT_TYPE, getDictOptions } from '@/utils/dict' export const columns: BasicColumn[] = [ @@ -92,13 +93,13 @@ export const createFormSchema: FormSchema[] = [ #elseif($column.htmlType == "imageUpload")## 图片上传 component: 'FileUpload', componentProps: { - fileType: 'file', + fileType: 'image', maxCount: 1, }, #elseif($column.htmlType == "fileUpload")## 文件上传 component: 'FileUpload', componentProps: { - fileType: 'image', + fileType: 'file', maxCount: 1, }, #elseif($column.htmlType == "editor")## 文本编辑器 @@ -132,6 +133,11 @@ export const createFormSchema: FormSchema[] = [ }, #elseif($column.htmlType == "datetime")## 时间框 component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, #elseif($column.htmlType == "textarea")## 文本域 component: 'InputTextArea', #end @@ -154,7 +160,7 @@ export const updateFormSchema: FormSchema[] = [ #set ($javaField = $column.javaField) #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set ($comment = $column.columnComment) -#if (!$column.primaryKey)## 忽略主键,不用在表单里 + #if (!$column.primaryKey)## 忽略主键,不用在表单里 { label: '${comment}', field: '${javaField}', @@ -164,45 +170,57 @@ export const updateFormSchema: FormSchema[] = [ #if ($column.htmlType == "input") component: 'Input', #elseif($column.htmlType == "imageUpload")## 图片上传 - component: 'Upload', + component: 'FileUpload', + componentProps: { + fileType: 'image', + maxCount: 1, + }, #elseif($column.htmlType == "fileUpload")## 文件上传 - component: 'Upload', - #elseif($column.htmlType == "editor")## 文本编辑器 - component: 'Editor', + component: 'FileUpload', + componentProps: { + fileType: 'file', + maxCount: 1, + }, + #elseif($column.htmlType == "editor")## 文本编辑器component: 'Editor', #elseif($column.htmlType == "select")## 下拉框 component: 'Select', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), #else##没数据字典 - options:[], + options:[], #end }, #elseif($column.htmlType == "checkbox")## 多选框 component: 'Checkbox', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), #else##没数据字典 - options:[], + options:[], #end }, #elseif($column.htmlType == "radio")## 单选框 component: 'RadioButtonGroup', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), #else##没数据字典 - options:[], + options:[], #end }, #elseif($column.htmlType == "datetime")## 时间框 component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, #elseif($column.htmlType == "textarea")## 文本域 component: 'InputTextArea', #end }, -#end + #end #end #end ] \ No newline at end of file diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm index 65d9d3d00..6c8b6d3d9 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm @@ -9,9 +9,10 @@ import { create${simpleClassName}, get${simpleClassName}, update${simpleClassNam defineOptions({ name: '${table.className}Modal' }) +const emit = defineEmits(['success', 'register']) + const { t } = useI18n() const { createMessage } = useMessage() -const emit = defineEmits(['success', 'register']) const isUpdate = ref(true) const [registerForm, { setFieldsValue, resetFields, resetSchema, validate }] = useForm({ @@ -37,11 +38,11 @@ async function handleSubmit() { try { const values = await validate() setModalProps({ confirmLoading: true }) - if (unref(isUpdate)) { + if (unref(isUpdate)) await update${simpleClassName}(values) - } else { + else await create${simpleClassName}(values) - } + closeModal() emit('success') createMessage.success(t('common.saveSuccessText')) @@ -51,7 +52,7 @@ async function handleSubmit() { } \ No newline at end of file diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm index d9538a064..0dfb45847 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm @@ -1,12 +1,12 @@