JeecgBoot

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

APACHE-2.0 License

Stars
38.3K
Committers
22

Bot releases are visible (Hide)

JeecgBoot - v3.7.1

Published by zhangdaiscott about 1 month ago

当前版本:v3.7.1 | 2024-09-12

升级日志

本版亮点:代码生成器大优化支持子包多目录和更多细节生成、积木报表最新版支持填报功能、仪表盘升级到新版、微服务网关配置简化、升级了几个底层组件、Online功能优化等等。有升级SQL

新功能

  • 升级积木报表到最新版,拥有表单设计填报功能。
  • 升级积木仪表盘到最新版
  • 升级nacos到2.3.2,默认支持国产达梦数据库
  • 升级xxl-job 至2.4.1版本,规避CVE-2024-24113
  • 升级autopoi到最新版1.4.11
  • 新增单体和微服务前后端一键docker启动
  • 微服务网关配置简化,支持复制、逻辑删除、回收站
  • 系统功能界面细节优化
  • 修改当前登录用户权限直接生效,不需要退出重新登录
  • 更新省市区数据
  • sas分支登录接口适配原前端主分支登录并缩短token长度
  • 白名单管理权限改成请求注解方式
  • websocket总断,换一个写法
  • 优化数据脱敏功能

代码生成器优化

  • 代码生成支持子包多级目录
  • 代码生成支持生成前端权限指令v-auth
  • 代码生成支持新控件JPopupDict字典
  • 代码生成的查询条件范围控件更换美观的效果: 日期范围、数字范围、金额范围等
  • 用户和部门组件,生成代码的时候根据Online存储字段和显示字段配置来
  • 原生表单校验不通过,未滚到未通过校验的字段
  • 非原生表单校验不通过,未滚到未通过校验的字段
  • 详情页面触发了校验修复
  • ERP风格子表操作列没有浮动
  • 页面控件类型为下拉框时,生成的前端vue代码有多余的逗号
  • 代码生成 int类型字段的查询条件,没有渲染成数值输入框
  • 无论是原生erp还是非原生,不选中主表的时候,直接导出子表,发现导出了所有数据
  • 一对多erp,也改成点击行就选中
  • 一对Tab风格样式美化
  • 代码生成 新控件 年、月、周、季度的默认值支持
  • 一对多子表 popup字典没有生成

Online模块升级

  • online 权限增加批量启用按钮
  • online字段维护,增加快速定位字段功能
  • online 字段查询配置支持设置默认模糊查询
  • 高级查询增加为空和非空两个条件
  • online 数据权限配置,系统变量表达式错误修复
  • online图片导出改为文本导出,不再导出图片
  • Online表单表字典的条件过滤参数问题 · Issue #6679
  • Oline表单下拉搜索框控件在编辑页面报错:字典Code格式不正确 · Issue #6336
  • Online报表设计,搜索条件只展示10条数据 · Issue #6857
  • online表单的js增强onlChange()不能响应联动组件的下拉组件值的变化 · Issue #6897
  • online表单生成下拉框实际生成是文本框 · Issue #7022
  • Online表单开发,范围查询不生效 · Issue #7093
  • online带时间的日期,值带T
  • js增强返回的对象方法之间不能有注释 · Issue #7086
  • online索引名称增加校验
  • 【Online表单】Popup支持动态传递表单值和系统变量
  • online报表查询条件,下列项支持滚动加载
  • 新增yml属性jeecg.firewall.disableSelectAll“禁止online报表使用*查询”
  • online ai生成报错
  • 从其他数据库导入的表,状态怎么是已同步
  • online 支持数据库Druid密码加密

仪表盘升级

  • 重构界面风格
  • 列表支持分页
  • 支持配置查询条件
  • 分类目录树支持自定义
  • 新增组件金字塔漏斗图、圆形雷达图
  • 图表钻取效果优化
  • 联动效果优化
  • 仪表盘移动端布局手机端预览无法滑动
  • 更新省市区数据
  • 仪表盘中的查询条件为空 · Issue #2823
  • 仪表盘路由跳转没反应 · Issue #6852
  • 仪表盘移动端布局手机端预览无法滑动 · Issue #2934
  • 大屏设计器-地图类组件-->离线地图-->气泡标注地图 · Issue #2775

issue处理

  • 企业微信登录成功后没有给登录用户设置登录部门,orgCode为空,导致添加其它的数据没有自动注入sys_org_code · Issue #6634
  • 部门人员选择组件出现人员重复以及数量不对的情况 · Issue #6342
  • 开启租户数据隔离,接入钉钉后默认租户为0了 · Issue #6652
  • 上传组件JUpload配置beforeUpload阻止了上传,前端页面中还是显示该缩略图 · Issue #6357
  • 内存信息-立即更新 功能报错 · Issue #6635
  • EditableCell组件值为数字0时不展示 · Issue #6851
  • 我的部门 · Issue #6862
  • 暗黑主题模式下,按钮风格不一致,有的显示边框,有的不显示,并且鼠标放在按钮上的时候,也没有焦点显示 · Issue #6374
  • 本问题是issues/1222 的问题, 新的版本3.7中,仍然没有修复。 · Issue #6380
  • JRangeDate组件设置允许起始项部分为空时不返回值 · Issue #6368
  • 登录完成后就一直处于等待,不能进入主页面 · Issue #6861
  • JSearchSelect组件异步查询不生效 · Issue #6681
  • user-dropdown这个组件用key作为prop名称 · Issue #6855
  • 【3.7.0】searchFormSchema 配置单个label的labelWidth不生效 · Issue #6865
  • JPopup控件 单选模式下 已选择数据标签项存在问题,求助帮忙看看 · Issue #6883
  • 登录完成后前端死循环,不能进入主页面 · Issue #6884
  • 部门角色授权错误 · Issue #6875
  • 多语言无刷新切换时,BasicColumn和FormSchema里面的值不能正常切换 · Issue #6908
  • JPopup弹窗选择组件如何渲染图片? · Issue #6365
  • 3.7.0数据权限自动生成的系统变量前缀错误 · Issue #6963
  • druid数据库密码加密后,同步数据库->普通同步(保留表数据)报错 · Issue #6889
  • 小铃铛不提示(遗留bug)--author:taoyan 2022-7-13 for: VUEN-1674【严重bug】 · Issue #6662
  • EditableCell组件值为数字0时不展示 · Issue #6851
  • 希望 JTreeSelect 组件能支持antdv 对应的a-tree-select 组件的title 插槽 · Issue #6953
  • 官网的表格组件,在应用mock自动生成数据的演示中,翻页后,数据的id和图片都不会自动刷新,而vben官网是可以刷新的。 · Issue #6943
  • vue3前端tinynce中的对象类型 RawEditorSettings不存在定义 · Issue #6928
  • execl转html报错d != org.apache.poi.ss.usermodel.FillPatternType · Issue #6932
  • 升级最新版看看 · Issue #6958
  • 切换标签页页面一直处于加载状态,Cannot access 'ScrollContainer' before initialization。 · Issue #6920
  • EditableCell组件显示值问题,解决了0不显示问题导致长度为0的文本无法编辑 · Issue #6957
  • 【积木报表】开发阶段修改前后端的签名密钥串导致门户设计的SQL解析提示签名验证失败错误,恢复默认签名密钥串使用正常 · Issue #6941
  • JVxeTable addRows后表格数据错误 · Issue #7013
  • JVxeTable表格Column配置formatter属性不生效 · Issue #6950
  • autopoi通过word模板生成word时:三目、求长、常量、日期转换没起效果 · Issue #6096
  • JSearchSelect组件文本回显问题 · Issue #7008
  • 报表下钻的时候,传递过去的参数并未生效,使用的是参数默认值 · Issue #2702
  • 原生vue3设置排序字段后不生效报错 · Issue #6937
  • 开启多租户后Swagger/Knife在线接口文档调试提示无权限 · Issue #6987
  • AutoPoi 在将excel转换为LIst时,对象的属性为LocalDate、LocalDateTIme类型对象,因为其不是Java基础类。会导致转换失败,使用自定义数据处理器也不行。esaypoi可以正常转换。 · Issue #6209
  • 地区选择器,杭州仍然是旧的划分,存在江干区下城区,没有钱塘区 · Issue #7049
  • 官网演示一对多示例,当编辑订单时,子表新增多行客户信息和机票信息,每次都只能保存一条记录。 · Issue #7048
  • 使用appendSchemaByField后提交时验证报错 · Issue #7042
  • basicTable中树形表格的checkStrictly设置无效 · Issue #6990
  • Redis 锁无法释放,造成redis死锁造成大量的redis exists redis命令引起redis QPS异常飙升 · Issue #6876
  • ApiSelect.vue文件版本更新之后联动更新字段不生效了 · Issue #6999
  • Docker一键启动微服务前后端, mysql镜像找不到 · Issue #7119
  • 富文本编辑器,无法上传多个图片 · Issue #7076
  • 主附表启用联合查询附表字段内容显示不全;java增强附表内容不能修改;系统编码规则重复调用后台方法两次? · Issue #7095
  • 省市区联动组件数据问题 · Issue #7151
  • 微服务新增模块controller类接口方法中免登录Token注解@IgnoreAuth不生效 · Issue #7081
  • BasicTable 表尾合计行 无法实时同步列宽拖动进行同步 · Issue #7101
  • 使用RestUitl类时发现RestTemplate超时 · Issue #7140
  • TemplateExportParams类建议增加传入模板文件InputStream的方式 · Issue #7084

AutoPOI问题

  • 导入map, 使其有序
  • 解决遍历行的次行合并样式问题
  • 加强继承扩展便利性
  • issue/#5933 增加清除缓存方法
  • Excel导入时空行校验问题
  • 生成代码后子表图片无法导出(流)
  • 子表图片导入报错
  • 嵌入单元格图片无法导入
  • 负数被识别成非数字
  • [issues/7048]TemplateExportParams类建议增加传入模板文件InputStream的方式
  • [issues/6925]autopoi通过word模板生成word时:三目、求长、常量、日期转换没起效果
  • [TV360X-1292] 对象的属性为LocalDate、LocalDateTIme类型对象兼容
  • [issues/6925]xlsx模版导出图片
  • [TV360X-1953]execl转html报错d != org.apache.poi.ss.usermodel.FillPatternType

技术交流

JeecgBoot - v3.7.0_all_last

Published by zhangdaiscott about 1 month ago

v3.7.0_all_last

What's Changed

New Contributors

Full Changelog: https://github.com/jeecgboot/JeecgBoot/compare/v3.7.0_all...v3.7.0_all_last

JeecgBoot - v3.7.0_springboot3sas_20240821

Published by zhangdaiscott 2 months ago

v3.7.0_springboot3sas_20240821

备份代码,备份兼容改造jeecgboot vue3默认前端的登录模式,之前代码
这份代码登录接口还是spring security的

JeecgBoot - v3.7.0 合并版(前端+后端)

Published by zhangdaiscott 4 months ago

v3.7.0 合并版(前端+后端一起下载)

JeecgBoot - v3.7.0_springboot3sas

Published by zhangdaiscott 4 months ago

What's Changed

Full Changelog: https://github.com/jeecgboot/JeecgBoot/compare/v3.7.0...v3.7.0_springboot3sas

JeecgBoot - v3.7.0_springboot3

Published by zhangdaiscott 4 months ago

What's Changed

Full Changelog: https://github.com/jeecgboot/JeecgBoot/compare/v3.7.0...v3.7.0_springboot3

JeecgBoot - v3.7.0 里程碑版本

Published by zhangdaiscott 4 months ago

当前版本:v3.7.0 | 2024-06-17

升级日志

里程碑大版本正式发布,VUE3版本正式进入性能和功能健壮阶段,此版本之后不再维护vue2版本。版本增量升级SQL

主升级内容

  • 信创国产化支持,默认完美适配达梦和人大金仓国产数据库
  • 系统主题风格美化大升级、系统性能大优化、组件优化更加易用
  • Online模块大版本升级、代码生成器和模板大升级
  • 积木报表升级到最新版,不受并发和使用量限制
  • 仪表盘大版本升级,设计排版重构使用更加便捷、开放更多能力
  • 系统监听升级,新增异常监控和慢接口查询、优化redis监控
  • 微服务提供rocketmq方案,支持rabbitmq与rocketmq切换

小功能升级

  • 升级vite5,前端性能进一步提升
  • 升级vxe-table版本号、升级前端依赖版本号、固定tinymce版本号
  • 新增免token校验注解@IgnoreAuth
  • AI助手功能优化
  • Online js增强增加js智能提示
  • 短信接口增加防刷机制
  • 升级kkfileview 4.1.0
  • 升级druid版本号
  • PG数据库Schema更好的兼容
  • 封装原生使用的弹窗JModel、JForm等
  • 表单详情页面样式美化
  • 角色授权层级关联优化,更加易用
  • 大版本升级内容太多,不详细罗列...

issue处理

  • 急急急!!!BasicDrawer组件中的底栏(footer)显示/隐藏逻辑逻辑错误 · Issue #1087
  • 【用户管理】页面的【编辑】、【详情】对话框显示异常 · Issue #1077
  • 树形表格展开两行,对其中一行添加数据时,会让第一行数据出现_loadchild,loading · Issue #1017
  • online在线功能ERP导致的页大小问题 · Issue #5922
  • 【菜单管理】页面未翻译本地化 key · Issue #1090
  • Excel导入时空行校验问题 · Issue #5840
  • 黑色主题模式下 online表单显示不正确 · Issue #1104
  • 检测提示:当前菜单表是vue2版本,导致菜单加载异常,点击确定切换到vue3版本菜单 · Issue #5944
  • httpsPort 是你自己加的吧,我排查了一下,3.6.0版本没有新增httpsPort属性 · Issue #5968
  • 代码生成器jar包中携带配置文件导致 spring.profiles.active 被覆盖 · Issue #6010
  • BasicDrawer组件中的底栏:showOkBtn="false"配置失效,问题#1087修复后产生的新问题 · Issue #1103
  • BasicModal组件在非全屏的情况下最大高度获取异常,不论内容高度是否超出屏幕高度,都等于内容高度 · Issue #1117
  • JEditor优化建议 · Issue #1116
  • JVXETable无法记住列设置,重新进入页面又还原了 · Issue #1119
  • jimureport-drag:2.0.1 报错 java.lang.IllegalStateException: No TaglibFactory available · Issue #6021
  • 打包后黑色主题下菜单tab标签不跟随系统主题颜色变化,开发模式下没问题 · Issue #1115
  • 行选择卡顿问题在3.6.3版本依然存在 · Issue #1120
  • build/utils.ts 修复 · Issue #1130
  • rangepicker 添加defaultValue: [] 数组 会出现报错 · Issue #1114
  • BasicTable在使用clickToRowSelect=true的状态下,selection-change 事件在每次选中项切换后会触发多次 · Issue #1127
  • schemas中使用RangePicker组件赋予默认值,页面报错 · Issue #1121
  • AUTO 在线表单富文本字段,上传图片按钮突兀而且遮挡了 TinyMCE 控件栏的全屏按钮 · Issue #1129
  • 前端抽屉方式 · Issue #1134
  • 横版顶部菜单 绑定online表单后 刷新页面tab显示auto在线表单而不是菜单名 · Issue #1135
  • Online表单中 下拉搜索框 搜索时报sql错误,生成的SQL多了一个 "and" · Issue #5978
  • 字典下拉异步出错 · Issue #1108
  • 使用代码生成器生成树的结构,批量删除时报错,在很老的jeecg,vue2版本就在报错了 · Issue #6043
  • autopoi 模板导出缓存问题及解决方案 · Issue #5933
  • auto poi 在导入包含图片的excel 时报错 但是导出没有问题 · Issue #6025
  • excel导入主附表,附表有图片类型,导入报错 · Issue #6040
  • JSearchSelect的search事件在中文输入还没拼字成功时会触发,导致后端SQL注入 · Issue #6049
  • 表格控件列固定功能保存后不生效 · Issue #1178
  • [3.6.3]部门管理功能中的【部门权限】中未翻译 t('') 多语言 · Issue #1169
  • 钉钉同步部门时没有最顶层的部门名,同步用户时,用户没有部门信息 · Issue #6017
  • 使用代码生成器生成树的结构,批量删除时报错 · Issue #6068
  • online表单生成代码, 关联表生成vue3模板里的 *.data.ts 这个文件会有报错 · Issue #6113
  • online表单列位置的id未做限制,拖动其他列到id列上面,同步数据库时报错 · Issue #6054
  • /sys/user/edit 接口生日日期数据格式错误,导致选生日就没法修改或增加用户 · Issue #1192
  • SQL注入检测逻辑影响业务 · Issue #6105
  • 设置单点登录后页面,进入首页提示404,也没有绘制侧边栏 · Issue #1102
  • cas开启后无法加载路由 · Issue #1132
  • jVxeTable select下拉组件鼠标hover的title属性显示文案优化 · Issue #1175
  • BasicTable原生属性headerCell问题 · Issue #1146
  • 配置角色权限 · Issue #1151
  • 【3.6.3】【角色管理】进入角色权限页面时,有警告信息,并且选择权限时反应慢且操作繁琐 · Issue #1180
  • BasicTable 可编辑表格时,添加一行,第一行校验一直不过,再添加第二行,就可以了 · Issue #1165
  • BasicTable当不分页但又有尾部时自适应高度计算不正确,没有减去尾部高度 · Issue #1137
  • 配置角色权限 · Issue #1151
  • BasicTable当不分页但又有尾部时自适应高度计算不正确,没有减去尾部高度 · Issue #1137
  • BasicTable翻页后滚动条没有返回顶部 · Issue #1188
  • Table 合计行在列头拖动时错位 · Issue #1196
  • BasicTable 可编辑表格时,添加一行,第一行校验一直不过,再添加第二行,就可以了 · Issue #1165
  • 下载前端代码配置表变查询条件显示列不生效 · Issue #6180
  • 富文本编辑器simpleToolbar配置增加 formatselect后页面不显示"段落"下拉框 · Issue #6171
  • 3.6.3版本drawer打开vue警告过多 · Issue #1156
  • 【3.6.3】【角色管理】进入角色权限页面时,有警告信息,并且选择权限时反应慢且操作繁琐 · Issue #1180
  • 发送测试消息后,铃铛数字没有变化 · Issue #1217
  • JVxeTable列过长(出现横向滚动条)时无法拖拽排序 · Issue #1162
  • BasicTable全选,跨页全选,当页反选时,会把所有的全选项取消掉,实际需求应该只针对当前页进行全选和取消全选。 · Issue #1173
  • 登录时,vue3版本不加载字典数据设置无效 · Issue #1220
  • 登录重定向问题 · Issue #1147
  • JPopup弹窗选择组件 搜索字段只有两个的时候,如何移除收起展开 · Issue #1229
  • 前端websocket因心跳导致监听不起作用 · Issue #1161
  • 用户编辑界面"所属部门"与"负责部门"联动出错? · Issue #1222
  • ApiSelect多次请求 · Issue #6191
  • 新增菜单时,未标识必填项弹出来了必填提醒 · Issue #1244
  • 关于高级查询组件j-super-query缓存问题 · Issue #6205
  • 行内编辑,用户选择无效,导致无法获取到用户信息。 · Issue #1242
  • excel 读取负数异常 · Issue #6133
  • 导入excel,嵌入图片识别不到 · Issue #5987
  • excel导入主附表,附表有图片类型,导入报错 · Issue #6040
  • auto poi 在导入包含图片的excel 时报错 但是导出没有问题 · Issue #6025
  • autopoi 模板导出缓存问题及解决方案 · Issue #5933
  • springboot3_sas online表单同步数据库出错 · Issue #6151
  • 在线表单-js增强-表单api-表单加载事件中对详情事件不起作用 · Issue #6139
  • online表单开发 同步数据库 普通同步报错 ERROR org.jeecg.modules.online.cgform.c.a:606 null · Issue #6111
  • 仪表盘设计集成到菜单后访问出现401 · Issue #6071
  • 仪表盘设计时,图表设置了跳转地址,预览正常,但是集成到菜单后无法跳转 · Issue #6048
  • springboot3分支,online表单开页面,导入数据库表功能无法使用 · Issue #6146
  • Online表单下拉搜索框在子表弹框编辑行内容方式时后端报错 · Issue #5726
  • 配置字段href,跳转页面参数不生效,积木报表token带不过去,online报表跳转页签表头问题 · Issue #970
  • online树表的变更父级节点保存报错 · Issue #5769
  • 3.6.1版本尝试Online表单和报表开发的8个问题反馈 · Issue #5681
  • 单表树,数据库记录多了后速度极慢 · Issue #5876
  • 子表中的下拉框内容,能否根据主表的某个字段来限定 · Issue #955
  • online表单,下拉框,校验必填状态有误 · Issue #1091
  • Online表单开发 - 导入数据库表 无法获取数据库表信息 · Issue #6034
  • Online在线功能,关联记录卡片模式最多只能显示6个其他字段 · Issue #5954
  • 3.6.1版本尝试Online表单和报表开发的8个问题反馈 · Issue #5681
  • Onlineb表单开发,主表为ERP模式,当用户没有【Online表单开发】页面的权限时,用户无权查看从表的数据 · Issue #6124
  • postgresql数据库在Online表单同步数据库的时候,选择普通同步也会导致原表数据丢失。 · Issue #6109
  • js增强代码中能获取当前登录信息吗?例如tenantId · Issue #1176
  • 日期控件中,是否支持 年月(yyyy-MM)格式? · Issue #6094
  • 当关联记录中使用卡片显示时,当保存后在预览,数据只能显示10条(10个块),超过10条后无法显示。 · Issue #1228
  • 在线表单-自定义树形控件是否含有子节点功能不生效 · Issue #6197
  • 关联记录模块BUG(记录多余10条不显示) · Issue #6206
  • 在线表单的主题模板选择tab方式时,子表的tab顺序展示有问题 · Issue #6211
  • 开源版本如何拥有选择年月组件 · Issue #1278
  • online报表 SQL翻译 不翻译第二页的数据 · Issue #6242
  • Online表单开发页面批量删除BUG · Issue #6307
  • JCodeEditor位置异常 · Issue #1231
  • excel 读取负数异常 · Issue #6133
  • 导入excel,嵌入图片识别不到 · Issue #5987
  • excel导入主附表,附表有图片类型,导入报错 · Issue #6040
  • auto poi 在导入包含图片的excel 时报错 但是导出没有问题 · Issue #6025
  • autopoi 模板导出缓存问题及解决方案 · Issue #5933
  • 微服务模式下,生产环境禁用swagger · Issue #6100
  • JTreeSelect组件两次请求 · Issue #1283
  • online表单的功能测试,与代码生成后,点击详情的样式不统一 · Issue #1235

springboot3分支issue

  • springboot3_sas分支,redis持久化没有用,应用重启后,已登录用户在token未过期情况下还是需要重新登录 · Issue #6027
  • springboot3 分支数据库连接经常掉线 · Issue #5936
  • 3.6.3 LoginUser.java 缺了个 String parentId; · Issue #6031
  • 3.6.3springboot3版本控制台一直报错:Using deprecated '-debug' fallback for parameter name resolution · Issue #6127
  • springboot3_sas内部嵌入积木报表被拒绝 · Issue #6150
  • 文件类型参数导致自动保存日志序列化出错 · Issue #6169
  • jeecgboot-sas启动有问题 · Issue #6168
  • spring3 分支的 acurator/httptrace 报错404 · Issue #6130
JeecgBoot - v3.6.3_springboot3sas

Published by zhangdaiscott 4 months ago

备份v3.6.3 springboot3sas 版本tag

JeecgBoot - v3.6.3_springboot3

Published by zhangdaiscott 4 months ago

备份v3.6.3 springboot3 版本tag

JeecgBoot - v3.6.3last Latest Release

Published by zhangdaiscott 4 months ago

修复v3.6.3版本发现的已知bug

JeecgBoot - v3.6.2 springboot3

Published by zhangdaiscott 7 months 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

JeecgBoot - v3.6.3 AI版本

Published by zhangdaiscott 7 months 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
JeecgBoot - v3.6.2last

Published by zhangdaiscott 8 months ago

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

JeecgBoot - v3.6.2 版本发布—2024年度首版本

Published by zhangdaiscott 9 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

JeecgBoot - v3.6.1last

Published by zhangdaiscott 10 months ago

备份v3.6.1最后的修改

JeecgBoot - v3.6.1 版本发布,online专题升级

Published by zhangdaiscott 10 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增强代码提示

  • 新手操作引导

JeecgBoot - v3.6.0 大版本发布

Published by zhangdaiscott 12 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处理日志

JeecgBoot - v3.5.5last版本

Published by zhangdaiscott about 1 year ago

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

JeecgBoot - v3.5.5 版本发布,性能大升级版本

Published by zhangdaiscott about 1 year 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
JeecgBoot - JeecgBoot 3.5.3 版本发布,Online功能专题升级

Published by zhangdaiscott about 1 year ago

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

升级日志

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

Online功能升级

其他功能升级