Jeecg Boot Versions Save

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。

v3.6.2_springboot3

1 month ago

备份v3.6.2 springboot3 版本tag

What's Changed

Full Changelog: https://github.com/jeecgboot/jeecg-boot/compare/v3.6.3...v3.6.2_springboot3

v3.6.3

1 month ago

当前版本:v3.6.3 | 2024-03-11

升级日志

低代码平台与ChatGPT完美结合版本,推出AI助手对话功能、升级前后端依赖、新增5套仪表盘模板、优化登录和首屏性能、首页自定义更加简便等等

主升级内容

  • 新增ChatGPT AI助手对话功能
  • 新增5套仪表盘模板
  • 登录和首屏性能优化
  • 首页支持自定义
  • 导出excel接口时间限制延长
  • nacos新增springboot3命名空间,存放springboot3分支的个性配置文件
  • 升级spring-boot-starter到最新版2.7.18
  • 提供hutool到5.8.25
  • 新增AI依赖starter, jeecg-boot-starter-chatgpt
  • 【UI】下拉组件支持颜色
  • 【UI】新增JPopupDict组件对接online报表,以下拉字典方式展示
  • 【UI】内部组件也支持外部链接方式打开
  • 【UI】升级前端项目package.json底层依赖
  • 注解免token · Issue #5601
  • 是否考虑继承openapi · Issue #3659
  • vue代码不加入逻辑删除字段
  • 修复用户选择组件在生成代码后变成部门用户选择组件
  • 我这个控件是哪里设置没对吗,为什么打开已有的记录,会触发提示“请输入”验证?
  • #1022 fix 带条件字典存在单引号导致js编译错误
  • antd4不兼容vue3.4.0严重问题 issues/977
  • 部署到生产环境登录成功后找不到页面,Welcome to nginx!,登录后跳转路径中没有发布路径。 · Issue #949
  • SSO登录强制用http · Issue #957
  • autoPoi 模板导出Excel $fe遍历合并单元格bug · Issue #5167
  • spring3分支,api调用接口错误 · Issue #5757
  • 角色管理--角色权限配置页面取消按钮无法关闭角色权限配置页面 · Issue #979
  • 前端在登录时加载了两次数据字典,建议优化下,避免数据字典太多时可能产生的性能问题 · Issue #956
  • 3.6.2版本online代码生成有分类字典树控件时出错 · Issue #5787
  • 列表复选框选中后,行的样式不改变 · Issue #980
  • 建议代码中硬编码的"首页"改成动态的,避免国际化的时候报错 · Issue #5693
  • spring3版本,mq队列报错 · Issue #5778
  • 删除记录时按钮显示错位,提供复现问题的方法 · Issue #951
  • 希望vue代码生成时表单和列表不要加入逻辑删除字段 · Issue #5755
  • 表格列设置组件 宽度过长 · Issue #988
  • 在【角色管理】中可以手动删除 admin 角色,应该禁止删除 admin 角色 · Issue #1007
  • 英文语言下锁屏弹框表单的label内容被遮住了 · Issue #1004
  • popConfirm确认框待端后端返回过程中(处理中)样式错乱 · Issue #1019
  • 高级查询, 还原历史查询时不显示中文的字段名 · Issue #962
  • 仪表盘设计中json数据源href配置了,但是不生效,点击没反应 · Issue #1024
  • 登录失败5次后锁定10分钟有误,实际只锁定了10S · Issue #5833
  • 三方登录获取手机验证码失败,无法再次获取 · Issue #1014
  • ApiSelect组件的下拉远程搜索 · Issue #1027
  • 编辑表单中,校验必填时,如果组件是ApiSelect,打开编辑页面时,即使该字段有值,也会提示请选择 · Issue #1038
  • a-progress组件直接在页面中使用,页面上无法显示进度条; · Issue #5842
  • 原生表单新增携带 createTime 等系统字段 · Issue #1033
  • 最新微服务版本登录报Invalid bound statement (not found): org.jeecg.modules.system.mapper.SysUserTenantMapper.getTenantNoCancel · Issue #5892
  • 表字典转换问题,数据查询传ds=“”造成的异常 · Issue #5879
  • 连续登录失败,导致失败提醒累加 · Issue #1013
  • 原生表单新增携带 createTime 等系统字段 · Issue #1033
  • 连续登录失败,导致失败提醒累加 · Issue #1013
  • 3.6.2版角色首页配置中的组件地址格式发生变化 · Issue #1023
  • 按照文档仪表盘配置不出来呢 · Issue #5867
  • 官方演示平台系统角色中问题 · Issue #1064
  • JVxeInputCell小数输入有问题小数点后第一位是非0第二位是0就不能输入了 例如输入100.102会变成100.12 · Issue #1065
  • BasicTable表格合计,可编辑单元格编辑完以后不更新合计值,删除表格最后一行计算合计函数不执行 · Issue #982
  • 【菜单管理】、【角色管理】功能未翻译本地化 key · Issue #1072
  • 【数据字典】回收站查找软删除记录时,没有判断是否启用多租户,造成可以查找并回收其他租户的数据 · Issue #5907
  • ApiTreeSelect组件入参变化时,不及时刷新数据 · Issue #1054
  • 企业微信集成,同步用户信息时,特殊字符导致失败的问题 · Issue #5887
  • 批量删除记录后,【批量操作】按钮未隐藏,已选中记录也未清空 · Issue #1066
  • 最新版多选框选择无法勾中 · Issue #977
  • 点击退出系统,弹出的温馨提示无法关闭 · Issue #976

springboot3分支升级

  • springboot3 生成的代码 注解有问题 @Schema(value= "主键") 这是错误的 应该是 @Schema(description = "主键") · Issue #5742
  • 升级到springboot3 新建菜单 授权无用依然说没有权限 · Issue #5741
  • 同步数据库失败,Unable to build hbm.xml JAXBContext · Issue #5723
  • Shiro能否换成spring security?现在主流的都是用这个框架 · Issue #2925
  • springboot3分支,application-prod.yml文件中redis的配置不对 · Issue #5884
  • 配置完oss后,直接报错 · Issue #5925
  • spring3微服务版本只能使用本机的redis · Issue #5902
  • springboot3 版本swagger无法使用 · Issue #5908

v3.6.2last

1 month ago

v3.6.2 修复一些问题的最后版本

v3.6.2

3 months ago

当前版本:v3.6.2 | 2024-01-08

升级日志

重点升级ant-design-vue v4.0版、提供新版仪表盘功能大升级、提供springboot3版本分支! antd4和springboot3升级存在不兼容的,自己的代码参考文档Antd4升级文档 | Springboot3升级文档

升级内容

  • 升级 ant-design-vue 到最新版 4.0.8
  • 提供新版仪表盘,仪表盘采用后台集成模式(类似积木报表)
  • 从3.6.2+版本增加flyway自动升级数据库机制(支持mysql5.7、mysql8)
  • 提供springboot3版本分支
  • 默认全部接口加权限注解,提高系统安全(牺牲了使用成本)
  • 升级hutool版本号,解决hutool漏洞问题
  • 重构企业微信同步逻辑,适配企业微信最新接口规则
  • 租户套餐逻辑改造
  • 代码生成器升级,支持高级查询器默认生成
  • 通知公告详情查看样式优化
  • 升级富文本组件到最新版tinymce 6.6.2
  • 增加UI组件示例代码
  • 解决字典注解跨服务、多数据源问题
  • online生成表单时候后测试视图,提示“表名不合法,存在SQL注入风险!--->t_prod$1”
  • oracle下 online报表,新增报表正常 编辑保存时 报错
  • 3.6.0版本 通知公告中发布的富文本消息,在我的消息中查看没有样式 · Issue #834
  • 仪表盘设计器中的甘特图的数据源,其数据格式是怎样的? · Issue #5490
  • Spring boot 3.x support · Issue #5486
  • 源码中feign客户端不抛出异常,且分布式事务seata不生效 · Issue #5214
  • 字典code解码失败,可能是使用了非法字符,请检查! · Issue #5655
  • sentinel配置文件修改账号密码,logging.level.pattern 等配置无效! · Issue #5556
  • shiro集成 redis 不支持 sentinel 方式部署的redis集群 · Issue #5569
  • markdown编辑器支持emoji,但是MarkdownViewer不支持 · Issue #918
  • 弹窗表单使用JPopup组件配置param参数后异常 · Issue #901
  • 3.6.1 npm run build 失败 · Issue #939
  • 删除二次弹窗在接口报code500时,应该取消或者删除之后就不展示二次弹窗了 · Issue #936
  • 生成的前端代码,复选框和展开框在一个方框内 · Issue #947
  • 在多数据源模式下数据字典Dict不能指定自定义数据源 · Issue #4138
  • 分布式独立数据源 dictTable · Issue #5643
  • BasicTable组件设置默认展开不生效; · Issue #945
  • 【Online表单开发】表单添加多个外键无法保存 #948
  • 最新3.6.1在线表单开发中表单编辑页面中单选按钮不能默认选中 #927

权限升级

  • Online代码生成器目录,加权限@RequiresPermissions("online:codeGenerate:projectPath"),需要授权才能访问
  • 定时任务管理接口,加权限@RequiresRoles("admin"),只有admin角色才能操作
  • 系统表白名单接口,加权限@RequiresRoles("admin"),只有admin角色才能操作

升级SQL

ALTER TABLE onl_drag_page
MODIFY COLUMN id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键' FIRST,
MODIFY COLUMN low_app_id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID' AFTER update_time;

ALTER TABLE onl_drag_page_comp
MODIFY COLUMN page_Id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面ID' AFTER parent_id;

ALTER TABLE onl_drag_page
ADD COLUMN visits_num int(11) NULL DEFAULT NULL COMMENT '访问次数' AFTER update_count;

UPDATE onl_drag_comp SET parent_id = '1537764868216684545', comp_name = '金字塔漏斗图', comp_type = 'JPyramidFunnel', icon = 'icon-park-outline:children-pyramid', order_num = 100, type_id = NULL, comp_config = '{\n  \"dataType\": 1,\n  \"url\": \"http://api.jeecg.com/mock/26/funnel\",\n  \"timeOut\": 0,\n  \"turnConfig\": {\n    \"url\": \"\"\n  },\n  \"linkageConfig\": [],\n  \"dataMapping\": [\n    {\n      \"filed\": \"维度\",\n      \"mapping\": \"\"\n    },\n    {\n      \"filed\": \"数值\",\n      \"mapping\": \"\"\n    }\n  ],\n  \"chartData\": [\n    {\n      \"value\": 1000,\n      \"name\": \"直接访问\"\n    },\n    {\n      \"value\": 200,\n      \"name\": \"邮件营销\"\n    },\n    {\n      \"value\": 400,\n      \"name\": \"联盟广告\"\n    },\n    {\n      \"value\": 600,\n      \"name\": \"网页查询\"\n    },\n    {\n      \"value\": 800,\n      \"name\": \"广告点击\"\n    }\n  ],\n  \"option\": {\n    \"title\": {\n      \"text\": \"基础漏斗图\",\n      \"show\": true\n    },\n    \"grid\": {\n      \"bottom\": 115\n    },\n    \"card\": {\n      \"title\": \"\",\n      \"extra\": \"\",\n      \"rightHref\": \"\",\n      \"size\": \"default\"\n    },\n    \"tooltip\": {\n      \"trigger\": \"item\",\n      \"formatter\": \"{a} <br/>{b} : {c}\"\n    },\n    \"legend\": {\n      \"orient\": \"horizontal\"\n    },\n    \"series\": [\n      {\n        \"name\": \"Funnel\",\n        \"type\": \"funnel\",\n        \"left\": \"10%\",\n        \"width\": \"80%\",\n        \"sort\": \"ascending\",\n        \"gap\": 2,\n        \"label\": {\n          \"show\": true,\n          \"position\": \"inside\"\n        },\n        \"labelLine\": {\n          \"length\": 10,\n          \"lineStyle\": {\n            \"width\": 1,\n            \"type\": \"solid\"\n          }\n        },\n        \"itemStyle\": {\n          \"borderColor\": \"#fff\",\n          \"borderWidth\": 1\n        },\n        \"emphasis\": {\n          \"label\": {\n            \"fontSize\": 20\n          }\n        }\n      }\n    ]\n  }\n}', status = '1', create_by = NULL, create_time = '2022-06-16 14:17:31', update_by = NULL, update_time = '2022-06-16 14:59:44' WHERE id = '1537318433201340417';
UPDATE onl_drag_comp SET parent_id = '1537764868216684545', comp_name = '普通漏斗图', comp_type = 'JFunnel', icon = 'ant-design:funnel-plot-filled', order_num = 8, type_id = NULL, comp_config = '{\n  \"dataType\": 1,\n  \"url\": \"http://api.jeecg.com/mock/26/funnel\",\n  \"timeOut\": 0,\n  \"turnConfig\": {\n    \"url\": \"\"\n  },\n  \"linkageConfig\": [],\n  \"dataMapping\": [\n    {\n      \"filed\": \"维度\",\n      \"mapping\": \"\"\n    },\n    {\n      \"filed\": \"数值\",\n      \"mapping\": \"\"\n    }\n  ],\n  \"chartData\": [\n    {\n      \"value\": 335,\n      \"name\": \"直接访问\"\n    },\n    {\n      \"value\": 310,\n      \"name\": \"邮件营销\"\n    },\n    {\n      \"value\": 234,\n      \"name\": \"联盟广告\"\n    }\n  ],\n  \"option\": {\n    \"title\": {\n      \"text\": \"基础漏斗图\",\n      \"show\": true\n    },\n    \"grid\": {\n      \"bottom\": 115\n    },\n    \"card\": {\n      \"title\": \"\",\n      \"extra\": \"\",\n      \"rightHref\": \"\",\n      \"size\": \"default\"\n    },\n    \"tooltip\": {\n      \"trigger\": \"item\",\n      \"formatter\": \"{a} <br/>{b} : {c}\"\n    },\n    \"legend\": {\n      \"orient\": \"horizontal\"\n    },\n    \"series\": [\n      {\n        \"name\": \"Funnel\",\n        \"type\": \"funnel\",\n        \"left\": \"10%\",\n        \"width\": \"80%\",\n        \"sort\": \"descending\",\n        \"gap\": 2,\n        \"label\": {\n          \"show\": true,\n          \"position\": \"inside\"\n        },\n        \"labelLine\": {\n          \"length\": 10,\n          \"lineStyle\": {\n            \"width\": 1,\n            \"type\": \"solid\"\n          }\n        },\n        \"itemStyle\": {\n          \"borderColor\": \"#fff\",\n          \"borderWidth\": 1\n        },\n        \"emphasis\": {\n          \"label\": {\n            \"fontSize\": 20\n          }\n        }\n      }\n    ]\n  }\n}', status = '1', create_by = NULL, create_time = '2022-01-06 14:38:04', update_by = 'admin', update_time = '2022-06-17 19:51:26' WHERE id = '200208';

INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1698650926200352770', '1473927410093187073', '数据集解析SQL', NULL, NULL, 0, NULL, NULL, 2, 'drag:analysis:sql', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2023-09-04 18:55:15', 'jeecg', '2023-09-05 20:36:51', 0, 0, '1', 0);
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699038961937113090', '1473927410093187073', '数据源添加', NULL, NULL, 0, NULL, NULL, 2, 'drag:datasource:saveOrUpate', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2023-09-05 20:37:10', NULL, NULL, 0, 0, '1', 0);
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699039098474291201', '1473927410093187073', '数据源删除', NULL, NULL, 0, NULL, NULL, 2, 'drag:datasource:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2023-09-05 20:37:42', NULL, NULL, 0, 0, '1', 0);
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699039192154071041', '1473927410093187073', '数据源批量删除', NULL, NULL, 0, NULL, NULL, 2, 'drag:datasource:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2023-09-05 20:38:05', NULL, NULL, 0, 0, '1', 0);
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1701475606988812289', '1473927410093187073', '数据源连接', NULL, NULL, 0, NULL, NULL, 2, 'drag:datasource:testConnection', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2023-09-12 13:59:31', NULL, NULL, 0, 0, '1', 0);

INSERT INTO onl_drag_comp ( id, parent_id, comp_name, comp_type, icon, order_num, type_id, comp_config, status, create_by, create_time, update_by, update_time ) VALUES ( '72811631742776660', '100', '查询条件', 'JFilterQuery', 'ant-design:filter-filled', 100, NULL, '{\r\n	\"w\": 12,\r\n	\"h\": 12,\r\n	\"dataType\": 1,\r\n	\"url\": \"\",\r\n	\"timeOut\": 0,\r\n	\"chartData\": []\r\n}', '1', 'jeecg', '2022-09-09 15:21:08', 'jeecg', '2022-09-09 15:41:56' );

UPDATE onl_drag_comp SET comp_config = '{\r\n  \"dataType\": 1,\r\n  \"background\": \"#ffffff\",\r\n  \"url\": \"http://api.jeecg.com/mock/33/chart\",\r\n  \"timeOut\": 0,\r\n  \"turnConfig\": {\r\n    \"url\": \"\"\r\n  },\r\n  \"linkageConfig\": [],\r\n  \"dataMapping\": [],\r\n	\"customOption\": \"option = {xAxis: {type: \'category\',data: [\'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\', \'Sun\']},yAxis: {type: \'value\'},series: [{data: [150, 230, 224, 218, 135, 147, 260],type: \'line\'}]};return option;\",\r\n  \"chartData\": [\r\n    {\r\n      \"value\": 0,\r\n      \"name\": \"\"\r\n    }\r\n  ],\r\n	\r\n  \"option\": {\r\n    \"grid\": {\r\n      \"bottom\": 115\r\n    },\r\n    \"card\": {\r\n      \"title\": \"\",\r\n      \"extra\": \"\",\r\n      \"rightHref\": \"\",\r\n      \"size\": \"default\"\r\n    },\r\n    \"title\": {\r\n      \"text\": \"\",\r\n      \"show\": true\r\n    }\r\n  }\r\n}' WHERE id = '200400';

UPDATE onl_drag_comp SET parent_id = '100', comp_name = '文本', comp_type = 'JText', icon = 'ant-design:font-colors-outlined', order_num = 14, type_id = NULL, comp_config = '{\n  \"w\": 8,\n  \"h\": 12,\n  \"dataType\": 1,\n  \"url\": \"http://api.jeecg.com/mock/42/nav\",\n  \"timeOut\": 0,\n  \"turnConfig\": {\n    \"url\": \"\"\n  },\r\n	\"background\": \"#4A90E2\",\n  \"chartData\": \"JeecgBoot面板设计\",\n  \"option\": {\n    \"card\": {\n      \"title\": \"\",\n      \"extra\": \"\",\n      \"rightHref\": \"\",\n      \"size\": \"default\"\n    },\n    \"body\": {\n      \"text\": \"\",\n      \"color\": \"#4A90E2\",\n      \"fontWeight\": \"bold\",\n      \"marginLeft\": 0,\n      \"marginTop\": 0\n    }\n  }\n}', status = '1', create_by = NULL, create_time = NULL, update_by = 'admin', update_time = '2022-04-29 10:49:04' WHERE id = '100110';

UPDATE onl_drag_page_comp SET parent_id = NULL, page_id = NULL, comp_id = NULL, component = 'JBar', config = '{\r\n    \"id\": \"116606b2-4620-42d6-9202-36f39288a8d5\",\r\n    \"component\": \"JBar\",\r\n    \"config\": {\r\n        \"formType\": \"design\",\r\n        \"dataType\": 4,\r\n        \"timeOut\": 0,\r\n        \"option\": {\r\n            \"grid\": {\r\n                \"show\": false,\r\n                \"top\": 90,\r\n                \"bottom\": 115\r\n            },\r\n            \"card\": {\r\n                \"title\": \"\",\r\n                \"extra\": \"\",\r\n                \"rightHref\": \"\",\r\n                \"size\": \"default\"\r\n            },\r\n            \"title\": {\r\n                \"text\": \"每日新增记录\",\r\n                \"show\": true,\r\n                \"textStyle\": {\r\n                    \"color\": \"#464646\"\r\n                }\r\n            },\r\n            \"tooltip\": {\r\n                \"trigger\": \"axis\",\r\n                \"axisPointer\": {\r\n                    \"type\": \"shadow\",\r\n                    \"label\": {\r\n                        \"show\": true,\r\n                        \"backgroundColor\": \"#333\"\r\n                    }\r\n                }\r\n            },\r\n            \"yAxis\": {\r\n                \"splitLine\": {\r\n                    \"interval\": 2\r\n                },\r\n                \"lineStyle\": {\r\n                    \"color\": \"#f3f3f3\"\r\n                }\r\n            },\r\n            \"series\": [\r\n                {\r\n                    \"data\": [\r\n                        \r\n                    ],\r\n                    \"type\": \"bar\",\r\n                    \"barWidth\": 40,\r\n                    \"itemStyle\": {\r\n                        \"color\": \"#64b5f6\",\r\n                        \"borderRadius\": 0\r\n                    }\r\n                }\r\n            ]\r\n        },\r\n        \"size\": {\r\n            \"height\": 500\r\n        },\r\n        \"dataNum\": \"\",\r\n        \"chart\": {\r\n            \"category\": \"Bar\",\r\n            \"subclass\": \"JBar\",\r\n            \"isGroup\": false\r\n        },\r\n        \"typeFields\": [\r\n            \r\n        ],\r\n        \"nameFields\": [\r\n            {\r\n                \"fieldName\": \"create_time\",\r\n                \"fieldTxt\": \"创建时间\",\r\n                \"fieldType\": \"date\",\r\n                \"widgetType\": \"date\",\r\n								\"customDateType\": \"3\"\r\n            }\r\n        ],\r\n        \"valueFields\": [\r\n            {\r\n                \"fieldName\": \"record_count\",\r\n                \"fieldTxt\": \"记录数量\",\r\n                \"fieldType\": \"count\",\r\n                \"widgetType\": \"text\"\r\n            }\r\n        ],\r\n        \"assistYFields\": [\r\n            \r\n        ],\r\n        \"assistTypeFields\": [\r\n            \r\n        ],\r\n        \"calcFields\": [\r\n            \r\n        ],\r\n        \"tableName\": \"test_1031\",\r\n        \"sorts\": {\r\n            \"name\": \"\",\r\n            \"type\": \"\"\r\n        },\r\n        \"filter\": {\r\n            \"queryField\": \"create_time\",\r\n            \"queryRange\": \"month\",\r\n            \"customTime\": null,\r\n            \"conditionMode\": \"and\",\r\n            \"conditionFields\": [\r\n                \r\n            ]\r\n        },\r\n        \"analysis\": {\r\n            \"isRawData\": true,\r\n            \"showMode\": 1,\r\n            \"showData\": 1,\r\n            \"isCompare\": false,\r\n            \"compareType\": \"\",\r\n            \"trendType\": \"1\",\r\n            \"compareValue\": null,\r\n            \"showFields\": [\r\n                \r\n            ]\r\n        },\r\n        \"formId\": \"test_1031\",\r\n        \"formName\": \"test1031\",\r\n        \"compStyleConfig\": {\r\n            \"summary\": {\r\n                \"showY\": true,\r\n                \"showTotal\": false,\r\n                \"showField\": \"\",\r\n                \"totalType\": \"sum\",\r\n                \"showName\": \"总计\"\r\n            },\r\n            \"showUnit\": {\r\n                \"numberLevel\": \"\",\r\n                \"decimal\": 0,\r\n                \"position\": \"suffix\",\r\n                \"unit\": \"\"\r\n            },\r\n            \"assist\": {\r\n                \"showUnit\": {\r\n                    \"numberLevel\": \"\",\r\n                    \"decimal\": 0,\r\n                    \"position\": \"suffix\",\r\n                    \"unit\": \"\"\r\n                },\r\n                \"summary\": {\r\n                    \"showY\": true,\r\n                    \"showField\": \"\",\r\n                    \"totalType\": \"sum\",\r\n                    \"showName\": \"总计\"\r\n                }\r\n            },\r\n            \"headerFreeze\": true,\r\n            \"unilineShow\": true,\r\n            \"columnFreeze\": true,\r\n            \"lineFreeze\": true\r\n        }\r\n    }\r\n}', create_by = 'jeecg', create_time = '2022-12-16 19:56:21', update_by = NULL, update_time = NULL WHERE id = '763699587304030208';

UPDATE sys_permission SET parent_id = '1455100420297859074', name = '仪表盘设计器', url = '/report/drag', component = '{{ window._CONFIG[\'domianURL\'] }}/drag/list?token=${token}&tenantId=${tenantId}', is_route = 0, component_name = NULL, redirect = NULL, menu_type = 1, perms = NULL, perms_type = '0', sort_no = 3.00, always_show = 0, icon = '', is_leaf = 0, keep_alive = 0, hidden = 0, hide_tab = 0, description = NULL, create_by = 'admin', create_time = '2021-12-23 16:04:13', update_by = 'admin', update_time = '2023-12-31 13:13:04', del_flag = 0, rule_flag = 0, status = NULL, internal_or_external = 1 WHERE id = '1473927410093187073';
delete from  sys_permission where id = '1473955758466981890';

-- 补充权限
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1546736974756032513', '1455101470794850305', '选择代码生成路径', NULL, NULL, 0, NULL, NULL, 2, 'online:codeGenerate:projectPath', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-07-12 14:03:26', NULL, NULL, 0, 0, '1', 0);

What's Changed

Full Changelog: https://github.com/jeecgboot/jeecg-boot/compare/v3.6.1...v3.6.2

v3.6.1last

3 months ago

备份v3.6.1最后的修改

v3.6.1

4 months ago

当前版本:v3.6.1 | 2023-12-11

升级日志

Online低代码功能专项升级,JS增强支持代码提示、新增一对多内嵌风格和一对多Tab风格、Online新增新用户操作引导、人大金仓、达梦数据库兼容工作等等。

ONLINE升级日志

  • Online操作新用户引导功能
  • 新增一对多内嵌风格
  • 新增一对多Tab风格
  • Online JS增强支持api提示
  • 树列表支持查询
  • 防止SQL注入风险,下拉搜索组件参数规则变更(支持表字典白名单控制、SQL注入安全加强)
  • 人大金仓、达梦数据库兼容工作
  • 【安全】online敏感接口,加权限注解
  • 【严重bug修复】online删除字段,其他tab不同步删除导致的问题
  • 使用在线Online开发,出现搜索框前面的label字被截断 · Issue #5387
  • online表单开发新增时,字段信息校验提示被遮挡 · Issue #5407
  • 在线表单中设置的页面配置中高级配置中设置的label长度,在列表与详情界面无效 · Issue #5400
  • js 自定义按钮表达式 怎么支持多个字段判断? · Issue #769
  • 开启服务代理后,刷新接口报错 · Issue #5431
  • 在线生成表单没有见到空行,但页面属性会报空行数据错误 · Issue #5487
  • oracle数据,online表单中的 “关联记录” 功能模块BUG · Issue #5321
  • online表单生成时,创建字段后删除,页面属性、检验字段、外键处对应字段无法删除 · Issue #813
  • 在线生成删除多余字段后保存失败 · Issue #815
  • AUTO在线表单导出null · Issue #5529
  • Online在线功能ERP主题,从表记录被误删除 · Issue #5591
  • online表单配置成单表(树)后,界面搜索不起作用 · Issue #888
  • 【QQYUN-6685】link按钮添加多表达式
  • 【issues/5371】一对多子表popup增加多选
  • 【QQYUN-6647】页面配置中高级配置中设置的label长度,在列表与详情界面无效
  • 【QQYUN-6594】使用在线Online开发,出现搜索框前面的label字被截断
  • 【QQYUN-6588】代码警告,子表多出空白列
  • 【QQYUN-4263】Online报表支持跨页选择导出问题
  • 【issues/5371】一对多子表popup增加多选
  • 【QQYUN-6808】online编辑字段多了卡顿
  • online报表导出时间类型,导出的时间带T

其他升级日志

  • 升级底层依赖autopoi版本到1.4.7
  • 升级底层依赖jimureport版本到1.6.6
  • Online表单开发-在数据库属性页面新增字段删除后,页面属性没有同步删除 · Issue #5505
  • tabel的列设置隐藏列保存后切换路由问题 · Issue #825
  • 使用BasicTable表格的更多操作按钮禁用属性BUG · Issue #839
  • JImageUpload 开启 multiple, 上传多个图片,返回的上传成功文件列表中只有第一个文件名称 · Issue #846
  • 使用代码里的代码生成器 · Issue #833
  • 3.6.0(发布时间:2023-10-23)树形表格 复选框 不能回显 · Issue #831
  • JSelectDept点击x关掉或者点击取消按钮关闭弹窗,再打开选择部门的窗口勾选消失了 · Issue #863
  • 用户管理-岗位仍然不回显 · Issue #855
  • BasicForm表单中第一次就使用复制粘贴操作input框,规则校验没触发 · Issue #5579
  • JCodeEditor组件初始化时没有设置mode · Issue #869
  • MarkdownViewer组件样式有点难看 · Issue #872
  • BasicTable组件设置hideSelectAll: true无法隐藏全选框 · Issue #5595
  • tsConfig.json中有报错。 · Issue #5564
  • 当表格无数据且显示合计栏,关闭tab页后,BasicTable报错 · Issue #894
  • 在JSearchSelect组件标签上添加class/style样式不会生效 · Issue #897
  • jeecg-uniapp-master前端项目无法集成到企业微信OAuth2登录 · Issue #5533
  • POI导出一对多只有一条数据时,疯狂打印错误日志 · Issue #5528
  • 导出表格设置了数字格式导出之后仍然是文本格式,并且无法进行计算 · Issue #5538
  • 系统菜单,编辑内容时,显示文本框不居中 · Issue #790
  • 3.6.0升级后,组件页面显示错位 · Issue #5514
  • 登录报错 · Issue #5516
  • 登录报错 Cannot destructure property "userlnfo' of (intermediate value)' as it is undefined. · Issue #812
  • useCustomSelection.tsx 同步选中内容有问题 · Issue #828
  • 用户管理-》新增用户 职务、部门接口会调用多次,页面请求过多性能太差 · Issue #788
  • dev模式,修改代码后modal卡死,新增详情编辑一点就卡死#860

升级SQL

3.6.0升级至3.6.1版本对应的增量升级SQL,执行完后,还需要手工给admin角色分配(sql解析接口、同步数据库接口、导入表接口)按钮权限。

-- 新增风格一对多内嵌和Tab风格
INSERT INTO sys_permission (id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
 VALUES ('1691031996d5931315212', '1455100420297859074', 'AUTO在线一对多内嵌', '/online/cgformInnerTableList/:id', 'super/online/cgform/auto/innerTable/OnlCgformInnerTableList', 1, '', NULL, 1, NULL, '0', 1.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2023-08-14 18:20:20', 'admin', '2023-08-14 18:46:18', 0, 0, NULL, 0);
INSERT INTO sys_permission (id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
 VALUES ('1691031996d5931315213', '1455100420297859074', 'AUTO在线Tab风格', '/online/cgformTabList/:id', 'super/online/cgform/auto/tab/OnlCgformTabList', 1, '', NULL, 1, NULL, '0', 1.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2023-08-14 18:20:20', 'admin', '2023-08-14 18:46:18', 0, 0, NULL, 0);

-- 【安全】online敏感接口,加权限注解(sql解析接口、同步数据库接口、导入表接口)
INSERT INTO sys_permission (id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699374704168534017', '1460888189937176577', 'SQL解析', NULL, NULL, 0, NULL, NULL, 2, 'online:report:parseSql', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-09-06 18:51:17', NULL, NULL, 0, 0, '1', 0);
INSERT INTO sys_permission (id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699374509749960705', '1455101470794850305', '查询数据库表名', NULL, NULL, 0, NULL, NULL, 2, 'online:form:queryTables', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-09-06 18:50:31', NULL, NULL, 0, 0, '1', 0);
INSERT INTO sys_permission (id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) VALUES ('1699374269152100354', '1455101470794850305', '同步数据库', NULL, NULL, 0, NULL, NULL, 2, 'online:form:syncDb', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-09-06 18:49:33', NULL, NULL, 0, 0, '1', 0);
update sys_permission set is_leaf=0 where id in ('1460888189937176577','1455101470794850305');

新功能效果图

  • JS增强代码提示

  • 新手操作引导

v3.6.0

6 months ago

当前版本:v3.6.0 | 2023-10-23

升级日志

本次属于大版本升级,改动很大。例如:彻底重构了租户逻辑、第三方应用(钉钉、企业微信)对接逻辑、用户与职位关系、系统通知性能大优化;安全方面:新增字典表白名单、新增低代码开发模式(支持关闭在线开发能力)等等。

重大升级日志

  • 租户大重构(邀请加入租户、默认套餐包)
  • 新增字典表白名单功能(只有配置了白名单,才允许访问)
  • 第三方应用配置钉钉/企业微信(改成采用表来存配置信息,支持多租户)
  • 用户职位关系,新增一个关系表,删除原来用户表中的字段
  • 重构系统通知逻辑,性能优化
  • 新增低代码开发模式(发布上线,可以关闭在线开发)
  • 升级shiro-redis到3.2.2
  • 用户设置深度改造
  • JVxeTable 行表格组件(升级vxe-table到最新版4.5.13)
  • 重构SQL注入检查工具类,更加健壮
  • 系统字典项支持颜色设置
  • 发送邮件接口支持抄送
  • 增加单元测试代码,便于快速测试
  • 升级积木报表到1.6.4最新版
  • 新增表【sys_user_position 用户职位关系表】【sys_third_app_config 第三方应用配置表(钉钉/企业微信)】【sys_table_white_list 字典表白名单表】

ISSUE处理日志

v3.5.5last

6 months ago

v3.5.5last 备份最后一个版本

v3.5.5

7 months ago

当前版本:v3.5.5 | 2023-09-22

升级日志

本次升级重点做了性能优化,针对首屏和打包性能差了的问题做了革命性的优化,经过优化首屏缩短至10秒多&打包时间缩短至一半!主要重点升级了vite4和vue3.3、采用UnoCSS替代windicss。

ISSUE处理

  • 【性能优化】首屏缩短至10秒多&打包时间缩短至一半,升级vite4和vue3.3
  • 【性能优化】UnoCSS替代windicss,Windi CSS导致vite变慢
  • 【性能优化】按需加载代码部分修改,聊天头像太大改成按需加载、行编辑的组件引入导致全局注册整个form
  • 【性能优化】打包优化默认index太大,自定义拆包策略
  • 【性能优化】升级@jeecg/online模块,支持erp风格&体积更小、聊天头像集成有问题修复
  • 【性能优化】升级仪表盘,解决仪表盘依赖过大的问题
  • 【新功能】Online表单一对多,新增ERP风格、内嵌风格、TAB风格
  • 【漏洞修复】升级积木报表1.6.2,解决严重SQL漏洞问题
  • 【漏洞修复】重构表字典逻辑,深度解决SQL注入漏洞问题(修复导致的bug修复)
  • 【漏洞修复】打开权限注解,解决jeecg存在权限提升漏洞,可直接获得管理员权限 #5270
  • 【漏洞修复】时间盲注SQL注入绕过 #5269
  • 【漏洞修复】freemarker模板注入漏洞——升级仪表盘
  • 【漏洞修复】解决Apache Shiro高危漏洞编号:CVE-2023-34478
  • 删除vite-plugin-pwa
  • 修复UnoCSS替代windicss样式兼容问题
  • 生产环境字典慢的问题
  • JVxeTable出现循环依赖问题
  • 安装命令出现死循环
  • 升级mybatis-plus、dynamic-datasource-spring-boot-starter、commons-fileupload依赖版本号
  • 【issues/5368】缺少租户选择套餐权限升级sql -【issues/638】表格合计,列表table和合计table滚动联动 -【issues/674】vue3在线表单配置验证规则时无法自定义正则表达式
  • 【误删接口恢复】用户配置多租户后,登录后点击切换部门按钮,报错 #5298
  • 仪表盘分享链接404 #5046
  • 仪表盘编辑页面显示404错误信息 #5075
  • 批量删除部门时未正确置为叶子节点 #5132
  • 仪表盘设计功能中的“数据源”配置页面显示异常 #595
  • 登陆后无法返回原页面 #669
  • 下拉组件重置问题 #651
  • 仪表盘API数据源开发问题 #642
  • 示例代码错误,需要修改 #665
  • vue3在线表单配置验证规则时无法自定义正则表达式 #674
  • 调整表格搜索表单的span配置无效 #641
  • useSelectBiz 右侧选中列表删除无效,第二页选中数据 会导致系统崩溃 #657
  • Form中的JPopup组件为何不能触发onChange #5213
  • 子表字段Popup弹框数据更新问题 #675
  • 第二次点击消息 时 ,消息详情在消息列表下面去了 #656
  • JDictSelectUtil数据字典工具类中的getDictItems方法出错 #668
  • vue3项目中在main.js内引入的windi会影响到html2canvas绘制的图片样式 #640
  • Online表单开发,代码生成后下载本地报错 #5237
  • 打印预览图片加载不全 #1863
  • 数据库字段备注错误,部门表 #5242
  • 参数的宽度怎么调整 #1631
  • 自带的分页查询接口返回pageNo不对 #1578
  • 建议完善JVxeTable的JVxeInputCellblur事件 #636
  • JSelectUser组件内如果有值 编辑时浏览器卡死 #687
  • 主表的popup弹窗修改后增强js无法获取弹窗的值完成填值规则赋值 #5010
  • 时间盲注SQL注入绕过 #5269
  • setSelectedRowKeys碰到勾选项不在当前页时标签页卡死现象 #5263
  • 仪表盘配置进菜单后 显示的bug #5159
  • 仪表盘设计器,添加到菜单栏时样式错位,预览没问题 #654
  • JVxeTypes.userSelect选择用户界面卡死 #5307
  • 在线表单popup弹框,无法将选择的数据填充到自身 #5288
  • [email protected] build 出错 #728
  • sql注入盲注绕过 #5296
  • org.jeecg.modules.system.util.RandImageUtil 109行存在弱随机性问题(CWE-338) #5295
  • 记录登录失败次数逻辑有漏洞并且错误提示和设置时间不一致 #5255
  • windi会影响到html2canvas绘制的图片样式
  • 菜单样式调整上下滚动条
  • [issues/5327]Upload组件returnUrl为false时上传的字段值返回了一个'[object Object] -【issues/5357】点击行选中
  • 下拉搜索报错处理
  • JVxeTable新增行时无法设置Column_type=JVxeTypes.hidden的值
  • 【issues/694】404返回首页问题
  • 【QQYUN-6424】table字段列表设置不显示后,再拖拽字段顺序,原本不显示的,又显示了
  • 【issues/5305】JVxeTypes.select 无法按照预期进行搜索
  • typescript从5降到4解决,升级后报红,并且代码提示没有了 (Issue #738)
  • 【issues/5288】popup弹框,无法将选择的数据填充到自身
  • 【issues/726】JPopup组件里的表格全选没有选中数据
  • 解决仪表盘导致docker镜像问题,打包部署之后无法访问 #731
  • 路径大小写不一致导致linux下build 出错 #728
  • 【QQYUN-6283】点击表格清空,rowSelect里面的selectedRowKeys没置空
  • 【issues-641】调整表格搜索表单的span配置无效
  • 【issues/668】JDictSelectUtil数据字典工具类中的getDictItems方法出错
  • jeecg-cloud-nacos 打包镜像运行问题 #5379
  • docker镜像问题,打包部署之后无法访问 · Issue #731
  • JPopup组件里的表格全选没有选中数据 · Issue #726
  • component模式的 JPopup 组件选中数据后进行其他操作 · Issue #627
  • 升级后报红,并且代码提示没有了 · Issue #738
  • JVxeColumn ,type: JVxeTypes.select 无法按照预期进行搜索 · Issue #5305
  • 列设置隐藏列,拖动排序隐藏列自动显示的问题 · Issue #740
  • 表单组件label的helpMessage图标显示错位 · Issue #744
  • JPopup的bug · Issue #5357
  • 生产环境中调用Persistent.getLocal过慢 · Issue #732
  • JUpload组件returnUrl为false时上传的字段值返回了一个'[object Object]' · Issue #5327
  • 租户选择套餐没有权限 · Issue #5368
  • JPopup的bug · Issue #5357
  • MarkDown组件的结果显示问题 · Issue #729
  • 仪表盘设计中,数据集中获取分组报错 #5416
  • 存在一个导致全部页面都异常报错的问题 #770
  • 前端项目安装之后启动报错 #747

v3.5.3

9 months ago

当前版本:v3.5.3 | 2023-07-24

升级日志

Online表单和Online报表专题升级,主要修复online系列问题,同时也修复了一些平台bug、性能、漏洞等问题。上个升级Online功能的版本是3.4.4(2022-12-12),周期比较长了,这个期间的版本大家都可以平滑升级,如遇到问题请 及时反馈

Online功能升级

其他功能升级