199 Star 2.1K Fork 2.4K

JEECG / jeecgboot-vue3

2024-03-11 13:04
57093 jeecg 1662000782 JEECG

当前版本: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
最后提交信息为: 【3.6.3版本发布】升级版本号
2024-01-22 11:39
57093 jeecg 1662000782 JEECG

当前版本: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

2023-12-11 12:49
57093 jeecg 1662000782 JEECG

当前版本: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增强代码提示

  • 新手操作引导

2023-10-23 10:49
57093 jeecg 1662000782 JEECG

升级日志

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

增量升级建议

重大升级日志

  • 租户大重构(邀请加入租户、默认套餐包)
  • 新增字典表白名单功能(只有配置了白名单,才允许访问)
  • 第三方应用配置钉钉/企业微信(改成采用表来存配置信息,支持多租户)
  • 用户职位关系,新增一个关系表,删除原来用户表中的字段
  • 重构系统通知逻辑,性能优化
  • 新增低代码开发模式(发布上线,可以关闭在线开发)
  • 升级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处理日志

最后提交信息为: 依赖下载有问题修复
2023-10-18 15:23
57093 jeecg 1662000782 JEECG

备份最后一个版本

最后提交信息为: 删除无用文件
2023-09-21 17:15
57093 jeecg 1662000782 JEECG

当前版本: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
  • jeecgboot-vue3@3.5.3 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
2023-07-24 19:12
57093 jeecg 1662000782 JEECG

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

升级日志

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

Online功能升级

其他功能升级

2023-06-06 19:05
57093 jeecg 1662000782 JEECG

日期:2023-06-06

日志:3.5.1 版本修复一些bug的最后版本

2023-04-20 15:46
57093 jeecg 1662000782 JEECG

升级日志

小版本升级,修复一些已知bug、文档聚合重构和升级spring漏洞问题。

ISSSUE处理

  • 省市区组件JAreaLinkage数据不回显 #382
  • 新增通知公告提交指定用户参数有undefined #289:辅表如何通过在线表单开发生成代码
  • 角色管理的权限配置,保存首页配置提示出错,经过排查发现是SysRoleIndex 类没有无参构造函数 #4594
  • 树开表单列的字段如果带着下划线会导致生成的 *mapper.xml 中 SQL语句出错 #4649
  • 生成的代码条件里时间选择器有问题 #417
  • 租户用户编辑会导致重复添加一模一样的数据 #4747
  • 用户租户表(sys_user_tenant)未做唯一性约束,会造成多次添加默认租户 #4698
  • 下拉搜索框问题 #286:生成的代码和在线代码不一致,列表显示switch有问题
  • springCache中的清除缓存的操作使用了“keys”。 #4358
  • 修复356时候引入的回归错误 JPopupOnlReportModal.vue 中未修改 #426
  • 部门全部勾选后,点击确认按钮,部门信息丢失 #4646
  • jeecgboot-vue3中选择用户时,开启右侧列表后,在右侧列表中删除用户时,逻辑有问题 #424
  • JDictSelectTag组件使用时,浏览器给出警告提示:Invalid prop: type check failed for prop "onUpdate:value". Expected Function, got Array... #4507
  • 所属部门树操作全部勾选不生效 #394
  • 微服务之间调用免Token方案的问题 #4683
  • 使用online表单开发,代码生成选择vue3原生以后,界面导出的功能不能使用查询条件了 #425
  • 文件上传问题 #4672
  • oConvertUtils 里面判断字符串为空的方法有问题 #292:代码出错
  • 分类字典数据量过多会造成数据查询时间过长,显示“接口请求超时,请刷新页面重试!” #4550
  • 在表单中使用v-model:value绑定JSelectDept组件时无法清除已选择的数据! #397
  • autopoi导出带副标题的数据表,副标题缺左边框 #4342
  • 弹出页面出现自动吸顶,无法移动和显示头部。 #430
  • auto-poi 1.3.6 导入2007 xlsx 格式失败, 导入2003 xls 格式正常 #4225
  • 暗夜模式不完整,有bug #448
  • online在线表单(一对多),对子表记录进行新增或编辑时,无法获取到表单信息 #4655
  • JImageUpload及JselectUserByDept的小扩展 #452
  • 上传组件传入accept限制上传文件类型无效 #455
  • 新建用户会自动分配角色 #454
  • autopoi-web 导入图片字段时无法指定保存路径 #4415
  • popup弹出框使用j-editable-table 缺失行数据 #4798
  • 能修复一下 vue-print-nb-jeecg 打印预览checkbox,radio会自动全部勾选的问题 #4416
  • online表单频繁点击导出,引起内存溢出 #4523
  • JVxeTypes.hidden 不能赋值 #423
  • 给用户配置多个租户,多个部门,登录的时候没有提示选择租户和部门 #453
  • BaseTable导出功能没有按排序结果导出 #409
  • sys/duplicate/check SQL注入 #4737
  • vxe-table提示信息没有随着高度响应 #461
  • eslint 8.13.0 版本在idea中报错 #395
  • online表单频繁点击导出,引起内存溢出 #4523
  • 升级到3.5.0之后无法连接到Redis,3.4.3是可以的 #4817
  • Spring Framework身份验证绕过漏洞(CVE-2023-20860) #4824
  • gateway读取nacos路由配置有bug,附修复方法 #4762
  • 3.4.3版本 如何指定nacos命名空间,以前是在pom里,现在是需要手动增加配置么 #4743
最后提交信息为: 群满,新增QQ群 ⑦791696430
2023-03-08 12:10
57093 jeecg 1662000782 JEECG

当前版本:v3.5.0 | 2023-03-08

源码下载

升级日志

【重要升级】VUE3版本大升级,此版本改造较大,重点重构了租户逻辑,目前已支持一键切换系统管理模块的租户隔离。
注意vue2版本不兼容此版本的后台代码,使用vue2版本的同学,先不要升级后台。

升级SQL

改动太多,见链接

不兼容改造

  • 租户进行了大重构,所有的系统表都加入了租户ID字段
  • 用户与租户的关系采用中间表
  • 租户Header中的租户KEY命名改为:X-Tenant-Id
  • 系统模块敏感接口加了权限注解,需要授权才能访问接口

重构很大内容

  • 租户大重构,可以实现系统模块一键saas切换,无需自己二开改造。
  • 增加乐观锁设置和示例
  • 系统模块的所有表都增加租户ID字段

UI大升级

  • 提供新版登录界面
  • 提供新用户选择控件,更好的体验支持通过部门、角色多维度选人
  • 提供职务选择组件、角色选择组件、范围时间控件
  • 提供用户头像组件
  • 提供在线用户功能
  • 租户管理页面改造,支持租户套餐维护功能
  • 提供新版用户设置功能
  • 新增一个租户角色功能菜单
  • 代码生成器模板优化

ISSSUE和一些小处理

  • 首次登陆时,用户租户id未正确赋值 #260:cron表达式组件报错
  • RangePicker控件,第一个begin获取不到值,第二个值end取了第一个值 #268:朋友们,这个问题有碰到吗?求大佬给解答一下吧!!!
  • 建议JUpload组件,disabled为true的时候上传button能够变灰或者其他样式图案,便于知晓无法再点击上传。 #4250
  • jeecg-boot3.4.4 存在sql注入漏洞 #4393
  • Spring Framework RFD漏洞(CVE-2020-5398) #4457
  • https://github.com/jeecgboot/jeecg-boot/issues/4487
  • 多租户情况下,切换用户登录,提示错误。 #4509
  • 部门管理模块增加多租户功能。新增数据,db中sys_depart,tenant_id为0 #4505
  • 【BUG】--数据源管理-新增数据源未返回正确结果 #4294
  • useForm的getFieldsValue将数组转成字符导致无法读取上传文件 #4330
  • 【BUG】最新版jeecgboot的auto-poi版本错误,导致excel导入有表达式的情况识别异常 #4328
  • 下拉列表框字段字典table加条件后搜索区域的字典没加载进去 #4306
  • Online表单主子表单下拉多选无法搜索 #271:centos 上编译报错
  • 前端-jeecgboot-vue3 3.4.4版本,BasicTable高度自适应功能失效,设置BasicTable组件maxHeight失效; 原因已找到,请看详情 #355
  • 在线报表分页有问题 #356
  • 开启多租户时同个浏览器切换账户,使用的还是同一个租户ID #4349
  • VUE角色授权重复保存 issues/352
  • 代码生成时判断del_flag存在自动生成逻辑删除代码[issues/4196]
  • 原生表单内使用图片组件,关闭弹窗图片组件值不会被清空[issues/248]
  • 列表页查询框(日期选择框)设置初始时间,一进入页面时,后台报日期转换类型错误的 issues/215
  • 用户管理同步企微无用按钮去掉
  • 警告错误处理【<Suspense> slots expect a single root node. Vite&Vue】
  • 【代码生成】原生 jvxe 表单新增时 一对多子表不显示,导致表单保存不了
  • 【代码生成】erp模式 一对一,可添加多条数据
  • 【代码生成】Tab风格 一对多子表校验不通过时,点击提交表单空白了,流程附加页面也有此问题
  • 给部门表加个是否有子节点,提升性能
  • 钉钉对接https前缀问题【issues/I5WRIN】
  • header中租户key命名不规范由tenant-id改成 X-Tenant-Id
  • BasicTable高度自适应功能失效,设置BasicTable组件maxHeight失效
  • ERP示例修改
  • 钉钉发送消息失败的问题 #4499
2023-03-04 16:53
57093 jeecg 1662000782 JEECG

日期:2023-03-04

日志:3.4.4 版本修复一些bug的最后版本

最后提交信息为: 1
2022-11-18 13:40
57093 jeecg 1662000782 JEECG

升级日志

修复了系列bug,进一步保障现有版本的稳定,vue3做了vite3升级,低代码模块新增亮点功能。

一、Vue3前端问题修复

  • 切换pnpm安装依赖
  • 升级到vite3
  • 系统UI美化
  • 图标本地化,内网也不影响图片渲染
  • 修复在消息中心,信息模板中编码为空提示重复问题
  • 修复Antd3升级问题,导致所有功能表单的下拉搜索框搜索无效issues/218
  • 修复Antd3升级问题,导致表格分页选择失效 issues/4185
  • 【重要性能问题】解决点击online功能测试,重新加载首页问题 issues/I5XBZF
  • 字段校验问题,一进入表单就校验
  • vue3 最新版 online报表 参数不生效
  • 必填的form的validate校验反过来了issues/4189
  • 所有功能表单的下拉搜索框搜索无效issues/218
  • JDictSelectTag选择显示有问题issues/226
  • JSelectMultiple搜索问题issues/227
  • "version": "3.4.3" 换肤功能无效issues/236
  • online表单开发,没有数据,提示token失效issues/4132
  • vue3版本,online在线表单,新增页面无法显示联动控件issues/4008
  • 部门管理员能获取系统全部角色issues/4122
  • v-deep报警信息issues/143
  • clearSubRows时报错TypeErrorissues/166
  • online表单开发代码生成选择Vue3风格,生成的代码却是vue2的issues/4151
  • GUI代码生成器issues/4150
  • basic table 增加伸缩列issues/185
  • basic table 增加伸缩列issues/I5571O
  • online表单-数据库属性,字段拖拽排序时,无法成功。issues/191
  • 前端启动报类型找不到issues/200
  • online表单生成的预览之后放在菜单表单里面不可以用issues/201
  • 打包到服务器上,定时任务点“立即执行“报错issues/204
  • online开发,使用部门选择组件时,多个默认参数时,仍然有问题。点击“确认”按钮,没反应issues/4166
  • 列设置功能不能拖拽列issues/181
  • 下拉搜索,使用动态字典,在线页面不报错,生成的代码报错issues/183
  • 配置聚合路由的地址时,报系统已存在该值的错误。issues/176
  • 平台用户登录失败锁定用户issues/4109
  • VUE3 3.4.3版本 online报表参数无效issues/225
  • Online JTreeSelect控件changeOptions方法未生效issues/4173
  • online在线表单生成,附表形式表单没有联动组件或省市区组件issues/194
  • JFormContainer组件禁用时无法下载文件issues/224
  • 用户编辑中所属部门与负责部门不显示部门名称,只显示departIdsissues/163
  • ERP风格下列设置问题issues/127
  • online代码生成Tab风格,新增数据中的字表tab页面错乱issues/4117
  • 配置下级菜单为隐藏路由后,二级菜单无法点击,并且显示了三角符号issues/4013
  • online报表可以实现用“张 ”来模糊查询而不是“张* ”issues/I5VC3M
  • 部门选择组件中,在online中多个扩展参数时,存储字段变更为部门编码时,表单无法实现issues/I5V6L3
  • online报表字典配置列使用sql字典形式不能实现下拉框issues/I5JCIV
  • 空指针异常issues/I5M2QM
  • 在线表单时间组件条件样式问题issues/I5RWTV
  • 菜单问题issues/I5JJTL
  • 带参数的路由菜单点击右上角刷新报错issues/I5VXTW
  • RangePicker日期选择器异常issues/I5X0J0
  • 新版本打开online功能测试重新进入平台issues/I5XBZF
  • Online表单开发自己录入的属性保存不了issues/I5W9BW
  • 用户管理权限部门很多全选保存后导致编辑按钮消失issues/3972
  • BasicTable 调用插入函数 默认插入两条记录issues/136
  • JVxeTable默认行数无效issues/4019
  • 标签页样式更多下拉显示样式错乱问题issues/169
  • JEditableTable组件,当数据超过9条,不显示issues/I5IGXC
  • jvxetoolbar的bugissues/I5E385
  • online报表导出功能,"合计"行无法识别负数issues/I5LL7W
  • [JVxeTable] setValues 必须传递数组issues/I5RAXT
  • 接入钉钉登录,提交开始报错issues/I5WRIN
  • autopoi导入时报错issues/4144

二、后端问题修复

  • Apache Shiro 身份认证绕过漏洞 issues/4222
  • online报表参数无效 【jeecgboot-vue3/issues/225】
  • vue3代码生成器模板优化
  • 修复了一些已知安全漏洞
  • 修复使用带命名空间启动网关swagger看不到接口文档
  • 修复 Monitor 无法使用--spring.profiles.active 方式,使用配置文件
  • 修复yml文件格式不规范导致的打包启动问题
  • nacos log4j 是2.13.3版本版本,存在漏洞
  • 修复 labelWidth 设置无效的问题,默认宽度设置去掉,改成自适应
  • 默认排序字段逻辑兼容处理
  • 上传接口对文件类型进行限制,避免恶意脚本上传攻击风险
  • online表单开发代码生成选择Vue3风格,生成的代码却是vue2的 issues/4151
  • CVE-2022-2647问题修复issues/4096
  • Excel导入 带公式的时候精度丢失issues/3369
  • check存在sql注入漏洞issues/4129
  • deleteRecycleBin is affected by sql injectionissues/4125
  • putRecycleBin is affected by sql injectionissues/4126
  • 企业微信官方通讯录同步接口调整issues/4058
  • queryTableData is affected by sql injectionissues/4128
  • 这里有几处没有换成预编译,但个人建议修复issues/4127
  • exlce模板导出如果模板中有多个合并单元格的循环表格,第二个表格读取错误issues/4142
  • 第三方登录字典没有缓存issues/3998
  • 乐观锁报错v3.2.0,需要加注解issues/3847
  • oss外链经过转编码后,部分无效issues/4023
  • 包分离模式部署运行时,在线生成代码失败(已提供修改意见)issues/4084
  • 微服务@Dict注解显示commonApi异常NoSuchBeanDefinitionExceptionissues/4192
  • 阿里云OSS上传失败,却返回前端上传成功issues/I5JOXL
  • 在线表单Oracle环境下同步数据库报错issues/I5KJUJ
  • 菜单批量删除问题:主菜单及其菜单一起选中删除报错(实际已删除)issues/I5LCXS
  • 单体升级微服务最新版本3.4.3,启动jeecg-demo-cloud-start失败issues/4190
  • 代码生成时判断del_flag存在自动生成逻辑删除代码 issues/4196

三、低代码模块升级

  • 支持关联记录和他表字段控件
  • 支持三级联动控件
  • online报表查询支持字典下拉搜索控件
  • online报表查询,字符串类型默认支持模糊查询,不需要输入*
  • online代码生成,支持选择那种前端代码生成(vue3\vue2\vue3原生)
最后提交信息为: jeecgboot 3.4.4版本发布
2022-10-28 10:07
57093 jeecg 1662000782 JEECG

版本:v3.4.3 | 2022-10-18

升级日志

VUE3版本低代码模块首个全功能稳定版,online表单、online报表专项升级,新增很多亮点功能。
提醒:此版本的online后台与vue2 UI不兼容,vue2暂时不要升级后台。

升级SQL

ALTER TABLE `onl_cgform_field`
MODIFY COLUMN `field_show_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表单控件类型' AFTER `dict_text`;

ALTER TABLE `onl_cgform_field` 
ADD COLUMN `db_is_persist` tinyint(1) NULL COMMENT '是否需要同步数据库字段, 1是0否' AFTER `db_is_null`;
update onl_cgform_field set db_is_persist = 1;

Online表单

  • 代码生成支持在线预览代码
  • 支持表单右侧评论区(留言、历史、附件)
  • online子表支持弹出表单维护
  • 修复BasicTable的自定义列不显示问题
  • 支持js增强
  • 新版online表单详情查看效果
  • 优化简化Online对接积木报表使用体验,列表添加打印按钮
  • 修复Online日期控件遮挡问题
  • 支持popup
  • online下拉框优化 兼容数据字典配置
  • online表单列表,操作列支持固定到最左侧
  • online表单样式优化,label超出4个字符 省略显示

Online报表

  • online报表,查询条件样式优化
  • online报表,路由参数和动态参数 查询结果不生效
  • online报表,jdbc连接地址漏洞问题
  • Online报表新增选中导出

修复 issues

版本:v3.4.3-GA | 2022-10-28

升级日志

此部分为近两周内修复和发布的新功能。

重磅低代码新功能

  • online表单,支持关联记录和他表字段控件
  • online表单,支持三级联动控件
  • online代码生成,支持选择那种前端代码生成(vue3\vue2\vue3原生)
  • 支持任意弹表单(钻取)
  • online报表查询,支持字典下拉搜索控件
  • online报表查询,字符串类型默认支持模糊查询,不需要输入*

修复严重Bug

  • 解决点击online功能测试,重新加载首页问题 issues/I5XBZF
  • 访问online表单开发菜单,提示token失效 #4132
  • 解决带参数的路由菜单点击右上角刷新报错
  • 用户添加按钮看不见问题
  • online代码生成选择Vue3风格,生成的代码却是vue2的 #4151
  • GUI代码生成器报错 #4150
  • vue3版本,online在线表单,新增页面无法显示联动控件 #4008
  • 解决标签页样式更多下拉显示样式错乱问题
2022-09-28 14:20
57093 jeecg 1662000782 JEECG

升级日志

重点升级ant-design-vue到3.2.12、升级vite等前端依赖;优化基础功能、修复bug等;本次未升级online相关功能。

Vue3 UI升级

  • 升级ant-design-vue到3.2.12、升级vite等前端依赖
  • 升级antd3后,moment全部替换为dayjs
  • websocket功能优化
  • 表单支持右侧嵌入评论区、附件区
  • 代码格式化调整
  • 自动检查vue3, 自动切换vue3库表
  • 菜单列表支持通过菜单名模糊查询
  • 支持年度控件
  • 同步vben部分代码
  • 升级antd3后一系列兼容改造工作
  • 表单label支持自定义显示字数,超长截取显示
  • Table表格自定义排序字段例子(角色列表)
  • 用户设置上传头像不生效解决
  • Table的全屏功能有问题,默认关闭
  • 系统通知,未读的排到最上面
  • 编译后主题色切换不生效黑屏的问题
  • 系统通知图标,没有随着主题色变
  • 修复labelWidth设置无效的问题
  • form表单label宽度支持设置,默认去掉一些表单的宽度设置,默认自适应

升级and3后兼容问题(遇到请修改)

  • Table废弃了 slots 插槽,需要修改写法(目前老用法可以继续用,会有警告)
  • Form.tem只能收集一个表单项的数据,如果有多个表单项,会导致收集搭乱(item里面有多个元素,会报警告)
  • antd3采用dayjs替换掉了moment,升级需要搜索moment换成dayjs(dayjs与moment语法差不多,替换不难)
  • 针对Table废弃slots 插槽和Form.tem只能一个表单项,代码尚未改造完,虽然有警告,但不影响使用(antd3做了兼容)
  • Tabs的动画默认没有了,如果出现问题,需要加上animated参数
  • 样式更名.ant-tabs-bar —> .ant-tabs-nav
  • 下拉类型的SelectTypes更名为SelectValue
  • 更多升级日志见 从 ant-design-vue 2.x 版本升级到 ant-design-vue 3.x 版本
  • form表单label宽度设置问题修复,如表单宽度效果有问题,可以去掉宽度设置

新功能升级

  • 新版系统通知风格(支持直接打开业务单)
  • 消息模板新增Markdown类型
  • 在线文件存储,文档预览文档采用pdf模式预览
  • 钉钉和企业微信推送支持markdown格式
  • Swagger2文档,token保存问题
  • 文件存储minio上传失败,提示错误不准确(禁止特殊文件类型上传)
  • 重构系统通知WebSocket代码,简化逻辑
  • 新建部门的ID规则改造为IdWorker
  • jdbc连接地址漏洞问题修复
  • /actuator/ shiro默认不排除,有漏洞风险

修复bug

2022-08-06 13:44
57093 jeecg 1662000782 JEECG

升级日志

不兼容的升级点:Websocket安全加强,增加 token 校验、接口签名拦截器的时间戳改造、System模块重构大。平滑升级有难度,请仔细对比修改日志。

重点升级

  • websocket安全加强,增加token校验
  • 【签名改造】 解决X-TIMESTAMP时区问题
  • System模块开展代码p3c规范扫描大重构
  • 升级代码生成器,支持生成权限注解和菜单的SQL
  • vue2弹窗支持任意拖动位置
  • 微服务模式下,多租户不支持问题修复
  • 模板消息重构,提供全局统一推送接口(支持钉钉、企业微信、邮件、短信、系统消息)
  • 提供数据脱敏注解
  • 发现的SQL漏洞修复
  • Vue3前端与后台版本号同步,功能也已经全部同步

后台问题

Vue2前端

  • online在线生成小问题issues/3420
  • 通过Online表单开发后,数据达到57万后,导出的excel中提示超时issues/I4JRE8
  • 代码生成app页面没有此jsissues/I4WFGF
  • character '@' that cannot start any tokenissues/I4XI00
  • vue有些页面报错,但是在线演示的却没有issues/I4X63V
  • JeecgBoot一对多示例,表单删除issues/I4VYOC
  • 项目运行起来后前端访问列表页下的角色列表和用户列表报错issues/3472
  • 给新建用户赋予角色的逻辑漏洞issues/3461
  • 启动的时候提示信息issues/I52HJC
  • 单标签页模式下,打开外部链接 报错误 “这是最后一页,不能再关闭了啦”issues/3546
  • 用户为上级 负责部门下拉框选项的数据没有数据,需要从普通切换到上级才能有数据issues/I52Z8Z
  • 富文本编辑器在服务器图片上传是相对路径issues/I4BCC3
  • j-vxe-table点击事件冲突问题issues/I54E2M
  • 部门用户可以有 admin权限的问题issues/3806
  • JTreeSelect树形下拉框(异步加载) 自定义查询条件 查询结果问题issues/3709
  • 下拉搜索框条件过滤issues/I5DAPN
  • 内嵌子表风格bugissues/3800

Vue3前端

  • 代码编辑器默认样式改成idea风格
  • 支持企业微信/钉钉 oauth2登录
  • 角色支持首页配置
  • 我的消息--全部已读等接口报错issues/3420
  • JTreeSelect 下拉树自定义组件 查询不到数据issues/96
  • online配置部门选择后编辑,查看数据应该显示部门名称,不是部门代码issues/I5F3P4
  • 前端升级到vue3后,从企业微信和钉钉的工作台免登入失败issues/I5BG1I
  • Online对接积木报表后不显示打印按钮issues/3843
  • JVxeTypes.upload 文件上传的时候,触发不了编辑issues/I5FTO6
  • 是否支持OAuth2登录issues/I5DJZ8
  • 附表问题控件类型问题issues/3854
  • 列表查看详情,富文本不能下拉issues/I5ABAO
  • 顶部菜单混合模式 分割菜单点击 导航无法显示issues/I5BIPO

Autopoi

  • [issues/I4PU45] @excel里面新增属性fixedIndex
  • 导入字典替换需要将---替换成_,不然数据库会存
  • mybatis-plus升级 时间字段变成了jdk8的LocalDateTime,导致格式化失败
  • AutoPOI (Excel工具)==>excel根据模板导出功能issues/3687
  • AutoPoi excel导入 ImportParams 中没有startSheetIndex参数issues/I57UPC
  • autopoi模板导出Excel功能,#fe: 横向遍历不好用issues/3328
最后提交信息为: 提供自动切换vue3菜单的功能
2022-06-27 10:42
57093 jeecg 1662000782 JEECG

升级日志

重大版本发布,全功能趋于稳定健壮。

升级SQL

UPDATE sys_permission 
SET del_flag = 1 
WHERE id IN (
	'1438108182116425729',
	'1438108183219527682',
	'1438108185660612609',
	'1438108185815801858',
	'1438108185958408193',
	'1438108186289758209'
)

重点升级

  • 代码生成器提供vue3原生表单模板生成
  • 代码生成器支持菜单sql生成
  • 捕获接口超时异常,跳转到登录界面
  • JSwitch组件当查询条件时的,query模式下的重置问题
  • 常用示例,报错优化
  • 修改部门弹窗初始赋值问题
  • 登录后选择租户和部门功能优化
  • 单表原生组件示例添加
  • 分类树添加的时候,下拉值不实时变更的问题-
  • BasicTable新增 alertAfter 插槽
  • JVxeTable“无痕刷新示例”的checkbox无法自动更新
  • 第一次加载时,点击第一个输入框,光标会跑到富文本输入框
  • 下拉多选JSelectMultiple,搜索时,查不到数据
  • [issues/54]树字典,勾选,然后批量删除,系统错误
  • 校验唯一方法修改(必填校验)
  • 修复路由添加时Path无法添加问题
  • 用户选择单选/多选特殊处理
  • markdown 无法上传
  • 列表配置要缓存
  • 合并vben最新版代码,解决表格字段排序问题
  • 系统编码规则,最后一个输入框不能删除
  • 用户编辑负责部门后列表不刷新负责部门信息
  • 【issues/69】JVxeTable即时保存demo报错
  • 【issues/I57GNY】批量删除后,批量操作按钮还处于显示状态
  • 修复列表更多中,当只有一个菜单时显示多余分割线问题

Issues处理

2022-06-15 18:56
57093 jeecg 1662000782 JEECG

项目介绍

Jeecgboot-Vue3 采用 Vue3.0、Vite、 Ant-Design-Vue、TypeScript 等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。JeecgBoot企业级的低代码平台对应的vue3前端版本!

强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省成本,同时又不失灵活性

当前版本:v1.2.0 | 2022-06-06

升级日志

此版本重点支持 online表单、online报表、popup等新功能,升级修复很多已知bug、解决首次访问慢等问题。

升级sql

-- online低代码菜单(online表单、online报表)
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 ('1455100420297859074', '', '在线开发', '/online', 'layouts/default/index', 1, NULL, '/online/cgform', 0, NULL, '0', 2.00, 0, 'ant-design:cloud-outlined', 0, 0, 0, 0, NULL, 'admin', '2021-11-01 17:12:29', 'admin', '2022-05-11 16:38:26', 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 ('1455101470794850305', '1455100420297859074', 'Online表单开发', '/online/cgform', 'super/online/cgform/index', 1, NULL, NULL, 1, NULL, '0', 1.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2021-11-01 17:16:40', 'admin', '2022-04-04 18:36:25', 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 ('1457678003102879745', '1455100420297859074', '系统编码规则', '/system/fillrule', 'system/fillRule/index', 1, NULL, NULL, 1, NULL, '0', 9.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2021-11-08 19:54:53', 'admin', '2021-11-18 10:49:40', 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 ('1458353686530232321', '1455100420297859074', '系统校验规则', '/system/checkrule', 'system/checkRule/index', 1, NULL, NULL, 1, NULL, '0', 15.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2021-11-10 16:39:48', 'admin', '2021-11-18 10:49:48', 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 ('1460888189937176577', '1455100420297859074', 'Online报表配置', '/online/cgreport', 'super/online/cgreport/index', 1, NULL, NULL, 1, NULL, '0', 2.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2021-11-17 16:31:01', 'admin', '2021-12-08 10:55:32', 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 ('1461270075543347202', '1455100420297859074', 'Online表单视图', '/online/copyform/:code', 'super/online/cgform/CgformCopyList', 1, NULL, NULL, 1, NULL, '0', 99.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2021-11-18 17:48:30', NULL, NULL, 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 ('1461291438825558017', '1455100420297859074', 'AUTO在线报表', '/online/cgreport/:id', 'super/online/cgreport/auto/OnlCgReportList', 1, NULL, NULL, 1, NULL, '0', 2.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2021-11-18 19:13:23', 'admin', '2021-11-19 20:16:13', 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 ('1465686870713782273', '1455100420297859074', 'AUTO在线表单', '/online/cgformList/:id', 'super/online/cgform/auto/default/OnlineAutoList', 1, NULL, NULL, 1, NULL, '0', 5.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2021-11-30 22:19:16', NULL, NULL, 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 ('1509417558230999041', '1455100420297859074', 'AUTO树表单列表', '/online/cgformTreeList/:id', 'super/online/cgform/auto/tree/OnlineAutoTreeList', 1, NULL, NULL, 1, NULL, '0', 5.00, 0, NULL, 1, 0, 1, 0, NULL, 'admin', '2022-03-31 14:29:24', NULL, NULL, 0, 0, NULL, 0);

重点升级

  • 支持低代码模块:online表单、online报表
  • 新增数字范围组件 JRangeNumber
  • 支持 popup弹窗组件
  • JVxeTable支持键盘操作
  • vite首次打开界面加载慢问题/解决
  • 框架进行整体大重构,解决非常多问题
  • 支持jeeccgboot3.2.0版本的路由配置界面
  • 【签名改造】 X-TIMESTAMP牵扯
  • 【websocket安全】websocket 服务端,存在性能和安全问题。 #3278
  • 修复目前后台接口挂了界面跳转404,改为直接跳转到登录界面
  • 调用表单的 resetFields不会清空当前信息,界面显示上一次的数据
  • 设置disabled,图片上传没有被禁用
  • 【vue3】用户管理抽屉移动不能自适应
  • 解决菜单配置外部网址带#号,打不开的问题
  • 租户管理确认删除样式问题
  • 职务管理,职务编码重复时,没有友好提示
  • 修复更多下拉菜单,只有点到字上才有效
  • 解决字典组件,赋值的时候,闪动效果
  • 系统管理等功能 页面样式、引入文件首字母大小写不匹配问题修复

Issues处理

安装与使用

  • Get the project code
git clone https://github.com/jeecgboot/jeecgboot-vue3.git
  • Installation dependencies
cd jeecgboot-vue3
yarn install
  • 配置后台接口地址
.env.development
  • run
yarn serve
  • build
yarn build
最后提交信息为: 非开源功能说明
2022-03-21 11:08
57093 jeecg 1662000782 JEECG

项目介绍

Jeecgboot-Vue3 采用 Vue3.0、Vite、 Ant-Design-Vue、TypeScript 等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。 是在 Vben-Admin 基础上研发的,适合于JeecgBoot的新版前端VUE3框架。

  • 全新的VUE3技术栈,不只追赶技术潮流,更兼备大型项目优势。
  • 提供了详细的 零基础入门视频,不懂vue3的也可快速入门。
  • 非在Vue2版上简单升级,而是完全重写,力求每行代码的精美。

当前版本:v1.0.0 | 2021-03-21

源码下载

  • 重要必看—切换Vue3路由: http://vue3.jeecg.com/2671576
  • 后台版本要求:jeecgboot v3.0+以上, 3.0版本为兼容vue3.0前端,做了大量适配工作。
Vue3前端源码 后端源码
github https://github.com/jeecgboot/jeecgboot-vue3 https://github.com/jeecgboot/jeecg-boot
码云 https://gitee.com/jeecg/jeecgboot-vue3 https://gitee.com/jeecg/jeecg-boot

技术文档

Install and use

  • Get the project code
git clone https://github.com/jeecgboot/jeecgboot-vue3.git
  • Installation dependencies
cd jeecgboot-vue3
yarn install
  • run
yarn serve
  • build
yarn build

功能模块

Vue3版已实现了系统管理、系统监控、报表、各种组件、前端权限、GUI代码生成 等平台基础模块(Online表单、Online报表尚未发布)

├─首页
│  ├─首页(四套首页满足不同场景需求)
│  ├─工作台
├─系统管理
│  ├─用户管理
│  ├─角色管理
│  ├─菜单管理
│  ├─权限设置(支持按钮权限、数据权限)
│  ├─表单权限(控制字段禁用、隐藏)
│  ├─部门管理
│  ├─我的部门(二级管理员)
│  └─字典管理
│  └─分类字典
│  └─系统公告
│  └─职务管理
│  └─通讯录
│  └─对象存储
│  └─多租户管理
├─系统监控
│  ├─网关路由配置(gateway)
│  ├─定时任务
│  ├─数据源管理
│  ├─系统日志
│  ├─消息中心(支持短信、邮件、微信推送等等)
│  ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
│  ├─系统通知
│  ├─SQL监控
│  ├─性能监控
│  │  ├─监控 Redis
│  │  ├─Tomcat
│  │  ├─jvm
│  │  ├─服务器信息
│  │  ├─请求追踪
│  │  ├─磁盘监控
├─消息中心
│  ├─我的消息
│  ├─消息管理
│  ├─模板管理
├─积木报表设计器
│─报表示例
│  ├─曲线图
│  └─饼状图
│  └─柱状图
│  └─折线图
│  └─面积图
│  └─雷达图
│  └─仪表图
│  └─进度条
│  └─排名列表
│  └─等等
│─大屏模板
│  ├─作战指挥中心大屏
│  └─物流服务中心大屏
├─代码生成器(GUI)
│  ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
│  ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
│  ├─代码生成器模板(生成代码,自带excel导入导出)
│  ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
│  ├─高级查询器(弹窗自动组合查询条件)
│  ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
│  ├─平台移动自适应支持
│─常用示例
│  ├─自定义组件示例
│  ├─JVxeTable示例(ERP行业复杂排版效果)
│  ├─单表模型例子
│  └─一对多模型例子
│  └─打印例子
│  └─一对多内嵌示例
│  └─异步树Table
│  └─图片拖拽排序
│  └─图片翻页
│  └─图片预览
│  └─PDF预览
│─封装通用组件	
│  ├─行编辑表格JVxeTable
│  └─省略显示组件
│  └─时间控件
│  └─高级查询 (未实现)
│  └─用户选择组件
│  └─报表组件封装
│  └─字典组件
│  └─下拉多选组件
│  └─选人组件
│  └─选部门组件
│  └─通过部门选人组件
│  └─封装曲线、柱状图、饼状图、折线图等等报表的组件(经过封装,使用简单)
│  └─在线code编辑器
│  └─上传文件组件
│  └─树列表组件
│  └─表单禁用组件
│  └─等等
│─更多页面模板
│  └─Mock示例(子菜单很多)
│  └─页面&导航(子菜单很多)
│  └─组件&功能(子菜单很多)
├─高级功能
│  ├─支持微前端
│  ├─提供CAS单点登录
│  ├─集成Websocket消息通知机制
│  ├─支持第三方登录(QQ、钉钉、微信等)
│  ├─系统编码规则
├─Online在线开发(尚未实现)
│  ├─Online在线表单 
│  ├─Online代码生成器
│  ├─Online在线报表 
└─更多功能开发中。。
   

入门必备

本项目需要一定前端基础知识,请确保掌握 Vue 的基础知识,以便能处理一些常见的问题。 建议在开发前先学一下以下内容,提前了解和学习这些知识,会对项目理解非常有帮助:

系统效果

输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

浏览器支持

本地开发推荐使用Chrome 最新版浏览器,不支持Chrome 80以下版本。

生产环境支持现代浏览器,不支持 IE。

IEIE  EdgeEdge FirefoxFirefox ChromeChrome SafariSafari
not support last 2 versions last 2 versions last 2 versions last 2 versions
最后提交信息为: 入门视频
JavaScript
1
https://gitee.com/jeecg/jeecgboot-vue3.git
git@gitee.com:jeecg/jeecgboot-vue3.git
jeecg
jeecgboot-vue3
jeecgboot-vue3

搜索帮助