diff --git a/README.md b/README.md index f4b2b8743..1ea50f2d1 100644 --- a/README.md +++ b/README.md @@ -256,9 +256,9 @@ _前端基于 crmeb uniapp 经过授权重构,优化代码实现,接入芋 | 框架 | 说明 | 版本 | 学习指南 | |---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------| -| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.14 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | +| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.15 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | | [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | -| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.18 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | +| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.19 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | | [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | | diff --git a/pom.xml b/pom.xml index ad7d84c85..e5313c2ba 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 1.5.0 1.18.28 - 2.7.14 + 2.7.15 1.5.5.Final UTF-8 diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index 0dad26dda..207e47806 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -17,13 +17,13 @@ 1.8.1-snapshot 1.5.0 - 2.7.14 + 2.7.15 1.7.0 4.3.0 2.5 - 1.2.18 + 1.2.19 3.5.3.2 3.5.3.2 3.6.1 @@ -44,11 +44,11 @@ 6.8.0 - 1.0.6 + 1.0.7 1.15.4 1.18.28 1.5.5.Final - 5.8.20 + 5.8.21 3.3.2 2.3 1.0.5 @@ -64,12 +64,12 @@ 3.0.0 4.10.0 2.11.0 - 8.5.4 + 8.5.5 4.6.3 2.2.1 3.1.758 - 1.0.3 - 1.5.8 + 1.0.4 + 1.6.1 2.12.2 4.5.0 diff --git a/yudao-example/yudao-sso-demo-by-code/pom.xml b/yudao-example/yudao-sso-demo-by-code/pom.xml index e67bd8e93..b795fa8c9 100644 --- a/yudao-example/yudao-sso-demo-by-code/pom.xml +++ b/yudao-example/yudao-sso-demo-by-code/pom.xml @@ -21,7 +21,7 @@ 8 UTF-8 - 2.7.14 + 2.7.15 @@ -52,7 +52,7 @@ cn.hutool hutool-all - 5.8.20 + 5.8.21 diff --git a/yudao-example/yudao-sso-demo-by-password/pom.xml b/yudao-example/yudao-sso-demo-by-password/pom.xml index bccd1580f..d6dd0e2bb 100644 --- a/yudao-example/yudao-sso-demo-by-password/pom.xml +++ b/yudao-example/yudao-sso-demo-by-password/pom.xml @@ -21,7 +21,7 @@ 8 UTF-8 - 2.7.14 + 2.7.15 @@ -52,7 +52,7 @@ cn.hutool hutool-all - 5.8.20 + 5.8.21 diff --git a/yudao-framework/yudao-spring-boot-starter-biz-social/src/main/java/cn/iocoder/yudao/framework/social/config/YudaoSocialAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-social/src/main/java/cn/iocoder/yudao/framework/social/config/YudaoSocialAutoConfiguration.java index 3dc6b6a9a..57accd20d 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-social/src/main/java/cn/iocoder/yudao/framework/social/config/YudaoSocialAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-social/src/main/java/cn/iocoder/yudao/framework/social/config/YudaoSocialAutoConfiguration.java @@ -1,36 +1,36 @@ -package cn.iocoder.yudao.framework.social.config; - -import cn.iocoder.yudao.framework.social.core.YudaoAuthRequestFactory; -import com.xingyuv.http.HttpUtil; -import com.xingyuv.http.support.hutool.HutoolImpl; -import com.xingyuv.jushauth.cache.AuthStateCache; -import com.xingyuv.justauth.autoconfigure.JustAuthProperties; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; - -/** - * 社交自动装配类 - * - * @author timfruit - * @date 2021-10-30 - */ -@Slf4j -@AutoConfiguration -@EnableConfigurationProperties(JustAuthProperties.class) -public class YudaoSocialAutoConfiguration { - - @Bean - @Primary - @ConditionalOnProperty(prefix = "justauth", value = "enabled", havingValue = "true", matchIfMissing = true) - public YudaoAuthRequestFactory yudaoAuthRequestFactory(JustAuthProperties properties, AuthStateCache authStateCache) { - // 需要修改 HttpUtil 使用的实现,避免类报错 - HttpUtil.setHttp(new HutoolImpl()); - // 创建 YudaoAuthRequestFactory - return new YudaoAuthRequestFactory(properties, authStateCache); - } - -} +package cn.iocoder.yudao.framework.social.config; + +import cn.iocoder.yudao.framework.social.core.YudaoAuthRequestFactory; +import com.xingyuv.http.HttpUtil; +import com.xingyuv.http.support.hutool.HutoolImpl; +import com.xingyuv.jushauth.cache.AuthStateCache; +import com.xingyuv.justauth.autoconfigure.JustAuthProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; + +/** + * 社交自动装配类 + * + * @author timfruit + * @date 2021-10-30 + */ +@Slf4j +@AutoConfiguration +@EnableConfigurationProperties(JustAuthProperties.class) +public class YudaoSocialAutoConfiguration { + + @Bean + @Primary + @ConditionalOnProperty(prefix = "justauth", value = "enabled", havingValue = "true", matchIfMissing = true) + public YudaoAuthRequestFactory yudaoAuthRequestFactory(JustAuthProperties properties, AuthStateCache authStateCache) { + // 需要修改 HttpUtil 使用的实现,避免类报错 + HttpUtil.setHttp(new HutoolImpl()); + // 创建 YudaoAuthRequestFactory + return new YudaoAuthRequestFactory(properties, authStateCache); + } + +} 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..07f3285c1 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 @@