mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2025-12-08 17:12:28 +08:00
Squashed commit of the following:
commitb7519d7199Author: JEECG <445654970@qq.com> Date: Tue Aug 19 15:18:52 2025 +0800 中文乱码 commit81ba07c853Author: JEECG <445654970@qq.com> Date: Tue Aug 19 15:09:21 2025 +0800 增加代码生成用法文档 commit92ed296e63Author: JEECG <445654970@qq.com> Date: Tue Aug 19 14:04:22 2025 +0800 【issues/8709】LayoutContent样式多出1px commitc2aff84914Author: JEECG <445654970@qq.com> Date: Tue Aug 19 14:04:09 2025 +0800 【issues/8683】DatePicker组件的componentProps使用函数形式时初始值获取不对 commite002cd3bf3Author: JEECG <445654970@qq.com> Date: Tue Aug 19 14:03:51 2025 +0800 【issues/8680】editComponentProps 可接受一个函数传入record commit1de07ff3ffAuthor: JEECG <445654970@qq.com> Date: Tue Aug 19 14:03:32 2025 +0800 -- author:liaozhiyang---date:20250813--for:【issues/8690】BasicTable的rowSelection新增onSelect方法 --- commit35852d41f1Author: JEECG <445654970@qq.com> Date: Tue Aug 19 14:03:04 2025 +0800 jvxeTable表格切换disabled属性时,相邻的两个枚举下拉,如果值是一样的,但是label不一样,会把第二个下拉的显示值渲染到第一个下拉中 #8593 commita2cb1d9f25Author: JEECG <445654970@qq.com> Date: Tue Aug 19 14:00:01 2025 +0800 【issues/8529】setColumns将原本隐藏的列展示后,列配置里却没有勾选该列 commit2002af54d0Author: JEECG <445654970@qq.com> Date: Tue Aug 19 13:59:42 2025 +0800 JVxeTypes.image组件action字段只能定义第1张图片的上传接口,后面图片的接口还是使用公共上传接口 #8628 commit89747403a2Author: JEECG <445654970@qq.com> Date: Tue Aug 19 13:59:28 2025 +0800 JVxeTable组件全选翻页后会被取消选中 #8630 commit3db0995c3fAuthor: JEECG <445654970@qq.com> Date: Tue Aug 19 11:23:19 2025 +0800 [代码生成]前端代码支持直接生成到前端项目、菜单sql会自动生成到start项目的flyway目录 commit950621dd88Author: JEECG <445654970@qq.com> Date: Mon Aug 18 23:04:59 2025 +0800 升级代码生成器,一键生成代码,vue3代码会生成到前端项目、菜单升级sql自动迁移到flyway目录重启自动执行(不需要手工迁移前端代码和手工执行升级sql) commit033cf51d69Author: JEECG <445654970@qq.com> Date: Mon Aug 18 23:04:52 2025 +0800 升级代码生成器,一键生成代码,vue3代码会生成到前端项目、菜单升级sql自动迁移到flyway目录重启自动执行(不需要手工迁移前端代码和手工执行升级sql) commitfb9f367517Author: JEECG <445654970@qq.com> Date: Mon Aug 18 23:02:53 2025 +0800 代码生成,online自定义按钮无排序报错 commitb2da45d803Author: JEECG <445654970@qq.com> Date: Mon Aug 18 16:23:22 2025 +0800 演示地址 commit2840f0d325Author: JEECG <445654970@qq.com> Date: Mon Aug 18 15:37:10 2025 +0800 默认账号密码 commit6ace7eae8aAuthor: JEECG <445654970@qq.com> Date: Sun Aug 17 15:11:45 2025 +0800 开发环境关闭日志生成,项目启动快;生产环境请按需打开注释 commit3d88147c59Author: JEECG <445654970@qq.com> Date: Thu Aug 14 23:03:46 2025 +0800 调整微服务启动文档 commitba0052d452Author: JEECG <445654970@qq.com> Date: Wed Aug 13 13:55:13 2025 +0800 支持lazy-initialization启动,项目大了后启动会更快 commit69fca254f0Author: JEECG <445654970@qq.com> Date: Wed Aug 13 11:47:27 2025 +0800 补充注释 commitb3de596199Author: JEECG <445654970@qq.com> Date: Wed Aug 13 11:47:16 2025 +0800 彻底关闭 prettier 校验规则 commitf46273d15eAuthor: JEECG <445654970@qq.com> Date: Wed Aug 13 10:26:23 2025 +0800 设置ESLint 的 vue/html-self-closing 自闭合标签警告配置 commit0fe258dbc2Author: JEECG <445654970@qq.com> Date: Wed Aug 13 09:26:16 2025 +0800 修复 onExportXls defSort 不生效问题 #7570 commitde7f23c555Merge:d97e56b2444c7140Author: JEECG <zhangdaiscott@163.com> Date: Wed Aug 13 09:20:31 2025 +0800 Merge pull request #8496 from lileiAimee/developer 解决TableAction中自定义图标颜色不起作用的问题 commitd97e56b2f0Author: JEECG <445654970@qq.com> Date: Tue Aug 12 19:08:43 2025 +0800 多租户模式下系统系统会给租户默认增加上测试的角色菜单,但是后台获取菜单时异常,无法打开相关页面 #8667 commitc868496b78Author: JEECG <445654970@qq.com> Date: Tue Aug 12 19:02:49 2025 +0800 映射警告 commitc5150baa69Author: JEECG <445654970@qq.com> Date: Tue Aug 12 18:18:34 2025 +0800 支持通过用户账号邀请加入租户 commit3d9f59c69bAuthor: JEECG <445654970@qq.com> Date: Tue Aug 12 18:17:55 2025 +0800 邀请用户加入租户,支持通过用户账号 commit420d6db3fbAuthor: JEECG <445654970@qq.com> Date: Tue Aug 12 18:06:20 2025 +0800 登录用户没有部门,不提示警告 commit473a626039Author: JEECG <445654970@qq.com> Date: Tue Aug 12 14:10:02 2025 +0800 增加JPopup组件带参数示例 commit0308b0597cAuthor: JEECG <445654970@qq.com> Date: Tue Aug 12 14:08:18 2025 +0800 【issues/8426】解决JPopup组件传参不能接收 commit2191f5d48cAuthor: JEECG <445654970@qq.com> Date: Mon Aug 11 22:43:07 2025 +0800 调整位置 commit1158b0b6e7Author: JEECG <445654970@qq.com> Date: Mon Aug 11 22:30:39 2025 +0800 升级seata到1.7.0;升级dynamic-datasource-spring-boot-starter到3.5.2 commitead2cef1f4Author: JEECG <445654970@qq.com> Date: Mon Aug 11 18:47:48 2025 +0800 支持多字段默认排序defSort数组、解决多列排序无效 #8659 commit83bb0a0a6aAuthor: JEECG <445654970@qq.com> Date: Mon Aug 11 18:47:43 2025 +0800 支持多字段默认排序defSort数组 commitb474e9e5a5Author: JEECG <445654970@qq.com> Date: Sun Aug 10 17:06:01 2025 +0800 开发环境安装 commit422373e300Author: JEECG <445654970@qq.com> Date: Sun Aug 10 16:30:13 2025 +0800 提供JeecgBoot 运行环境python检查脚本 commit1cf11a4c2aAuthor: JEECG <445654970@qq.com> Date: Sat Aug 9 09:41:57 2025 +0800 提供jeecgboot-oracle11g.dmp commit925f163784Author: JEECG <445654970@qq.com> Date: Fri Aug 8 22:07:24 2025 +0800 引入jeecg-boot-starter-job依赖启动报错 #8694 commitd01c1d7d47Author: JEECG <445654970@qq.com> Date: Thu Aug 7 15:41:21 2025 +0800 支持lazy-initialization commit3576b54945Author: JEECG <445654970@qq.com> Date: Thu Aug 7 15:36:51 2025 +0800 升级积木报表和积木BI到最新版v2.1.2 commit444c7140f6Author: lileiAimee <345697385@qq.com> Date: Wed Jun 25 09:55:07 2025 +0800 解决TableAction中自定义图标颜色不起作用的问题 # Conflicts: # README-EN.md # README.md # jeecg-boot/jeecg-server-cloud/jeecg-visual/jeecg-cloud-test/jeecg-cloud-test-seata/pom.xml # jeecg-boot/pom.xml
This commit is contained in:
@ -412,8 +412,11 @@ public class SysTenantController {
|
||||
*/
|
||||
@PutMapping("/invitationUserJoin")
|
||||
@RequiresPermissions("system:tenant:invitation:user")
|
||||
public Result<String> invitationUserJoin(@RequestParam("ids") String ids,@RequestParam("phone") String phone){
|
||||
sysTenantService.invitationUserJoin(ids,phone);
|
||||
public Result<String> invitationUserJoin(@RequestParam("ids") String ids,@RequestParam(value = "phone", required = false) String phone, @RequestParam(value = "username", required = false) String username){
|
||||
if(oConvertUtils.isEmpty(phone) && oConvertUtils.isEmpty(username)){
|
||||
return Result.error("手机号和用户账号不能同时为空!");
|
||||
}
|
||||
sysTenantService.invitationUserJoin(ids,phone,username);
|
||||
return Result.ok("邀请用户成功");
|
||||
}
|
||||
|
||||
|
||||
@ -28,15 +28,16 @@
|
||||
,icon
|
||||
,is_leaf
|
||||
FROM sys_permission
|
||||
WHERE 1=1
|
||||
<choose>
|
||||
<when test="parentId != null and parentId != ''">
|
||||
AND parent_id = #{parentId,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
AND parent_id is null
|
||||
</otherwise>
|
||||
</choose>
|
||||
<where>
|
||||
<choose>
|
||||
<when test="parentId != null and parentId != ''">
|
||||
parent_id = #{parentId,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
parent_id is null
|
||||
</otherwise>
|
||||
</choose>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 获取登录用户拥有的权限 -->
|
||||
@ -212,7 +213,7 @@
|
||||
</select>
|
||||
|
||||
<!--根据用户名称和test角色id查询权限-->
|
||||
<select id="queryPermissionByTestRoleId" resultType="org.jeecg.modules.system.entity.SysPermission">
|
||||
<select id="queryPermissionByTestRoleId" resultMap="SysPermission">
|
||||
SELECT p.*
|
||||
FROM sys_permission p
|
||||
WHERE exists(
|
||||
|
||||
@ -22,7 +22,7 @@ public class TreeModel implements Serializable {
|
||||
|
||||
private String slotTitle;
|
||||
|
||||
private boolean isLeaf;
|
||||
private Boolean isLeaf;
|
||||
|
||||
private String icon;
|
||||
|
||||
@ -54,11 +54,11 @@ public class TreeModel implements Serializable {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public boolean getIsLeaf() {
|
||||
public Boolean getIsLeaf() {
|
||||
return isLeaf;
|
||||
}
|
||||
|
||||
public void setIsLeaf(boolean isLeaf) {
|
||||
public void setIsLeaf(Boolean isLeaf) {
|
||||
this.isLeaf = isLeaf;
|
||||
}
|
||||
|
||||
|
||||
@ -49,8 +49,9 @@ public interface ISysTenantService extends IService<SysTenant> {
|
||||
* 邀请用户加入租户,通过手机号
|
||||
* @param ids
|
||||
* @param phone
|
||||
* @param username
|
||||
*/
|
||||
void invitationUserJoin(String ids, String phone);
|
||||
void invitationUserJoin(String ids, String phone,String username);
|
||||
|
||||
/**
|
||||
* 请离用户(租户)
|
||||
|
||||
@ -104,15 +104,27 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
|
||||
@Override
|
||||
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
||||
public void invitationUserJoin(String ids, String phone) {
|
||||
public void invitationUserJoin(String ids, String phone,String username) {
|
||||
String[] idArray = ids.split(SymbolConstant.COMMA);
|
||||
String userId = null;
|
||||
SysUser userByPhone = null;
|
||||
//update-begin---author:wangshuai ---date:20230313 for:【QQYUN-4605】后台的邀请谁加入租户,没办法选不是租户下的用户,通过手机号邀请------------
|
||||
SysUser userByPhone = userService.getUserByPhone(phone);
|
||||
//说明用户不存在
|
||||
if(null == userByPhone){
|
||||
throw new JeecgBootException("当前用户不存在,请核对手机号");
|
||||
if(oConvertUtils.isNotEmpty(phone)){
|
||||
userByPhone = userService.getUserByPhone(phone);
|
||||
//说明用户不存在
|
||||
if(null == userByPhone){
|
||||
throw new JeecgBootException("当前用户不存在,请核对手机号");
|
||||
}
|
||||
userId = userByPhone.getId();
|
||||
}else{
|
||||
userByPhone = userService.getUserByName(username);
|
||||
//说明用户不存在
|
||||
if(null == userByPhone){
|
||||
throw new JeecgBootException("当前用户不存在,请核对手机号");
|
||||
}
|
||||
userId = userByPhone.getId();
|
||||
}
|
||||
String userId = userByPhone.getId();
|
||||
|
||||
//循环租户id
|
||||
for (String id:idArray) {
|
||||
//update-begin---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="ant-design:${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -303,7 +303,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -339,7 +339,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -378,7 +378,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -107,7 +107,7 @@
|
||||
};
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -110,7 +110,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="ant-design:${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -368,7 +368,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -404,7 +404,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -484,7 +484,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
visible.value = false;
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -447,7 +447,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -483,7 +483,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -544,7 +544,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -157,7 +157,7 @@
|
||||
};
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -120,7 +120,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="ant-design:${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -518,7 +518,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -559,7 +559,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -597,7 +597,7 @@
|
||||
}
|
||||
</#if>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="ant-design:${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -349,7 +349,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -384,7 +384,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -443,7 +443,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -106,7 +106,7 @@
|
||||
}
|
||||
};
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -114,7 +114,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="ant-design:${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -389,7 +389,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
},
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -426,7 +426,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -464,7 +464,7 @@
|
||||
}
|
||||
</#if>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
}
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -46,7 +46,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -356,7 +356,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -392,7 +392,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -451,7 +451,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -252,7 +252,7 @@
|
||||
</#list>
|
||||
};
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -330,7 +330,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -366,7 +366,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -425,7 +425,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -251,7 +251,7 @@
|
||||
</#list>
|
||||
};
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -113,7 +113,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -364,7 +364,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -401,7 +401,7 @@
|
||||
}
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -441,7 +441,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -59,7 +59,7 @@
|
||||
closeModal();
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
@ -75,7 +75,7 @@
|
||||
handleSubmit,
|
||||
submitSuccess,
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
handle${btn.buttonCode?cap_first},
|
||||
</#if>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<a-button type="primary" v-auth="'${entityPackage}:${tableName}:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||
<j-upload-button type="primary" v-auth="'${entityPackage}:${tableName}:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'button'>
|
||||
<a-button type="primary" @click="handle${btn.buttonCode?cap_first}" <#if btn.buttonIcon??> preIcon="${btn.buttonIcon}" </#if>>${btn.buttonName}</a-button>
|
||||
</#if>
|
||||
@ -329,7 +329,7 @@
|
||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -365,7 +365,7 @@
|
||||
auth: '${entityPackage}:${tableName}:delete'
|
||||
}
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle == 'link'>
|
||||
,{
|
||||
label: '${btn.buttonName}',
|
||||
@ -424,7 +424,7 @@
|
||||
</#if>
|
||||
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='button'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -286,7 +286,7 @@
|
||||
</#list>
|
||||
};
|
||||
<#if buttonList?size gt 0>
|
||||
<#list buttonList?sort_by('orderNum') as btn>
|
||||
<#list buttonList?filter(it -> it.orderNum?? && it.orderNum != null)?sort_by("orderNum") as btn>
|
||||
<#if btn.buttonStyle=='form'>
|
||||
function handle${btn.buttonCode?cap_first}(){
|
||||
createMessage.info('点击了${btn.buttonName}按钮,对应的业务逻辑需自行实现!');
|
||||
|
||||
@ -25,6 +25,9 @@ management:
|
||||
include: metrics,httpexchanges,jeecghttptrace
|
||||
|
||||
spring:
|
||||
# main:
|
||||
# # 启动加速 (建议开发环境,开启后flyway自动升级失效)
|
||||
# lazy-initialization: true
|
||||
flyway:
|
||||
# 是否启用flyway
|
||||
enabled: true
|
||||
@ -46,7 +49,7 @@ spring:
|
||||
mail.smtp.writetimeout: 10000 # 写入超时(毫秒)
|
||||
mail.smtp.auth: true
|
||||
smtp.ssl.enable: true
|
||||
mail.debug: true # 启用调试模式(查看详细日志)
|
||||
# mail.debug: true # 启用调试模式(查看详细日志)
|
||||
## quartz定时任务,采用数据库方式
|
||||
quartz:
|
||||
job-store-type: jdbc
|
||||
@ -180,8 +183,8 @@ mybatis-plus:
|
||||
# 默认数据库表下划线命名
|
||||
table-underline: true
|
||||
configuration:
|
||||
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
|
||||
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# 返回类型为Map,显示null对应的字段
|
||||
call-setters-on-nulls: true
|
||||
#jeecg专用配置
|
||||
@ -294,6 +297,7 @@ logging:
|
||||
org.springframework.context.support.PostProcessorRegistrationDelegate: error
|
||||
org.flywaydb: debug
|
||||
org.jeecg.modules.system.mapper: info
|
||||
org.jeecg.modules.demo.test.mapper: info
|
||||
#swagger
|
||||
knife4j:
|
||||
#开启增强配置
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
#code_generate_project_path
|
||||
project_path=E:\\workspace\\jeecg-boot
|
||||
#bussi_package[User defined]
|
||||
# Module path to generate in the backend Java project
|
||||
project_path=F:\\gitcode\\JeecgBoot\\jeecg-boot\\jeecg-boot-module\\jeecg-module-demo
|
||||
## Path to generate in the frontend VUE3 project
|
||||
#ui_project_path=F:\\gitcode\\1jeecg-boot-github\\jeecgboot-vue3
|
||||
# Business package path
|
||||
bussi_package=org.jeecg.modules.demo
|
||||
|
||||
|
||||
#default code path
|
||||
#source_root_package=src
|
||||
#webroot_package=WebRoot
|
||||
|
||||
@ -69,9 +69,11 @@
|
||||
<!-- 日志输出级别 -->
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT" />
|
||||
|
||||
<!-- 开发环境关闭日志生成,项目启动快;生产环境请按需打开注释
|
||||
<appender-ref ref="FILE" />
|
||||
<appender-ref ref="HTML" />
|
||||
<appender-ref ref="FILE_HTML" />
|
||||
<appender-ref ref="FILE_HTML" /> -->
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user