『新年首版』JeecgBoot v3.6.2 版本發(fā)布,企業(yè)級低代碼開發(fā)平臺
作者:admin
發(fā)布時(shí)間:2024-01-08
點(diǎn)擊數(shù):
項(xiàng)目介紹
JeecgBoot是一款企業(yè)級的低代碼平臺!前后端分離架構(gòu) SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服務(wù)。強(qiáng)大的代碼生成器讓前后端代碼一鍵生成! JeecgBoot引領(lǐng)低代碼開發(fā)模式(OnlineCoding-> 代碼生成-> 手工MERGE), 幫助解決Java項(xiàng)目70%的重復(fù)工作,讓開發(fā)更多關(guān)注業(yè)務(wù)。既能快速提高效率,節(jié)省成本,同時(shí)又不失靈活性!
當(dāng)前版本:v3.6.2 | 2023-01-08
源碼下載
github地址
gitee地址
升級日志
重點(diǎn)升級ant-design-vue v4.0版、提供新版儀表盤功能大升級、提供springboot3版本分支! antd4和springboot3升級存在不兼容的,自己的代碼參考文檔Antd4升級文檔 | Springboot3升級文檔
升級內(nèi)容
升級 ant-design-vue 到最新版 4.0.8 提供新版儀表盤,儀表盤采用后臺集成模式(類似積木報(bào)表) 從3.6.2+版本增加flyway自動(dòng)升級數(shù)據(jù)庫機(jī)制(支持mysql5.7、mysql8) 提供springboot3版本分支 默認(rèn)全部接口加權(quán)限注解,提高系統(tǒng)安全(犧牲了使用成本) 升級hutool版本號,解決hutool漏洞問題 重構(gòu)企業(yè)微信同步邏輯,適配企業(yè)微信最新接口規(guī)則 租戶套餐邏輯改造 代碼生成器升級,支持高級查詢器默認(rèn)生成 通知公告詳情查看樣式優(yōu)化 升級富文本組件到最新版tinymce 6.6.2 增加UI組件示例代碼 解決字典注解跨服務(wù)、多數(shù)據(jù)源問題 online生成表單時(shí)候后測試視圖,提示“表名不合法,存在SQL注入風(fēng)險(xiǎn)!--->t_prod$1” oracle下 online報(bào)表,新增報(bào)表正常 編輯保存時(shí) 報(bào)錯(cuò) 3.6.0版本 通知公告中發(fā)布的富文本消息,在我的消息中查看沒有樣式 · Issue #834 儀表盤設(shè)計(jì)器中的甘特圖的數(shù)據(jù)源,其數(shù)據(jù)格式是怎樣的? · Issue #5490 Spring boot 3.x support · Issue #5486 源碼中feign客戶端不拋出異常,且分布式事務(wù)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參數(shù)后異常 · Issue #901 3.6.1 npm run build 失敗 · Issue #939 刪除二次彈窗在接口報(bào)code500時(shí),應(yīng)該取消或者刪除之后就不展示二次彈窗了 · Issue #936 生成的前端代碼,復(fù)選框和展開框在一個(gè)方框內(nèi) · Issue #947 在多數(shù)據(jù)源模式下數(shù)據(jù)字典Dict不能指定自定義數(shù)據(jù)源 · Issue #4138 分布式獨(dú)立數(shù)據(jù)源 dictTable · Issue #5643 BasicTable組件設(shè)置默認(rèn)展開不生效; · Issue #945 【Online表單開發(fā)】表單添加多個(gè)外鍵無法保存 #948 最新3.6.1在線表單開發(fā)中表單編輯頁面中單選按鈕不能默認(rèn)選中 #927
權(quán)限升級
Online代碼生成器目錄,加權(quán)限@RequiresPermissions("online:codeGenerate:projectPath"),需要授權(quán)才能訪問 定時(shí)任務(wù)管理接口,加權(quán)限@RequiresRoles("admin"),只有admin角色才能操作 系統(tǒng)表白名單接口,加權(quán)限@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 '應(yīng)用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 '訪問次數(shù)' 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\": \"數(shù)值\",\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\": \"聯(lián)盟廣告\"\n },\n {\n \"value\": 600,\n \"name\": \"網(wǎng)頁查詢\"\n },\n {\n \"value\": 800,\n \"name\": \"廣告點(diǎn)擊\"\n }\n ],\n \"option\": {\n \"title\": {\n \"text\": \"基礎(chǔ)漏斗圖\",\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\": \"數(shù)值\",\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\": \"聯(lián)盟廣告\"\n }\n ],\n \"option\": {\n \"title\": {\n \"text\": \"基礎(chǔ)漏斗圖\",\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', '數(shù)據(jù)集解析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', '數(shù)據(jù)源添加', 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', '數(shù)據(jù)源刪除', 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', '數(shù)據(jù)源批量刪除', 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', '數(shù)據(jù)源連接', 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面板設(shè)計(jì)\",\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\": \"創(chuàng)建時(shí)間\",\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\": \"記錄數(shù)量\",\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\": \"總計(jì)\"\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\": \"總計(jì)\"\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 = '儀表盤設(shè)計(jì)器', 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';
-- 補(bǔ)充權(quán)限
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);
技術(shù)交流
開發(fā)文檔:https://help.jeecg.com 官方網(wǎng)站: http://www.jeecg.com 在線演示:http://boot3.jeecg.com 快速入門:入門視頻 | 代碼生成
為什么選擇 JeecgBoot?
開源界“小普元”超越傳統(tǒng)商業(yè)平臺。引領(lǐng)低代碼開發(fā)模式(OnlineCoding-> 代碼生成器 -> 手工MERGE),低代碼開發(fā)同時(shí)又支持靈活編碼, 可以幫助解決Java項(xiàng)目70%的重復(fù)工作,讓開發(fā)更多關(guān)注業(yè)務(wù)。既能快速提高開發(fā)效率,節(jié)省成本,同時(shí)又不失靈活性。
采用最新主流前后分離框架(SpringBoot+Mybatis-plus+Ant-Design+Vue),容易上手; 代碼生成器依賴性低,靈活的擴(kuò)展能力,可靈活實(shí)現(xiàn)二次開發(fā); 開發(fā)效率很高,采用代碼生成器,單表數(shù)據(jù)模型和一對多(父子表)、樹列表等數(shù)據(jù)模型,增刪改查功能自動(dòng)生成,菜單配置直接使用(前端代碼和后端代碼都一鍵生成); 代碼生成器提供強(qiáng)大模板機(jī)制,支持自定義模板風(fēng)格。目前提供四套風(fēng)格模板(單表兩套、一對多兩套) 封裝完善的用戶、角色、菜單、組織機(jī)構(gòu)、數(shù)據(jù)字典、在線定時(shí)任務(wù)等基礎(chǔ)功能。強(qiáng)大的權(quán)限機(jī)制,支持訪問授權(quán)、按鈕權(quán)限、數(shù)據(jù)權(quán)限、表單權(quán)限等 零代碼在線開發(fā)能力,在線配置表單、在線配置報(bào)表、在線配置圖表、在線設(shè)計(jì)表單 常用共通封裝,各種工具類(定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel導(dǎo)入導(dǎo)出等),基本滿足80%項(xiàng)目需求 簡易Excel導(dǎo)入導(dǎo)出,支持單表導(dǎo)出和一對多表模式導(dǎo)出,生成的代碼自帶導(dǎo)入導(dǎo)出功能 集成簡易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成圖形報(bào)表、pdf、excel、word等報(bào)表; 采用前后分離技術(shù),頁面UI精美,針對常用組件做了封裝:時(shí)間、行表格控件、截取顯示控件、報(bào)表組件,編輯器等等 查詢過濾器:查詢功能自動(dòng)生成,后臺動(dòng)態(tài)拼SQL追加查詢條件;支持多種匹配方式(全匹配/模糊查詢/包含查詢/不匹配查詢); 數(shù)據(jù)權(quán)限(精細(xì)化數(shù)據(jù)權(quán)限控制,控制到行級,列表級,表單字段級,實(shí)現(xiàn)不同人看不同數(shù)據(jù),不同人對同一個(gè)頁面操作不同字段 在線配置報(bào)表(無需編碼,通過在線配置方式,實(shí)現(xiàn)曲線圖,柱狀圖,數(shù)據(jù)等報(bào)表) 頁面校驗(yàn)自動(dòng)生成(必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間空間等); 提供單點(diǎn)登錄CAS集成方案,項(xiàng)目中已經(jīng)提供完善的對接代碼 表單設(shè)計(jì)器,支持用戶自定義表單布局,支持單表,一對多表單、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件 專業(yè)接口對接機(jī)制,統(tǒng)一采用restful接口方式,集成swagger-ui在線接口文檔,Jwt token安全驗(yàn)證,方便客戶端對接 接口安全機(jī)制,可細(xì)化控制接口授權(quán),非常簡便實(shí)現(xiàn)不同客戶端只看自己數(shù)據(jù)等控制 高級組合查詢功能,在線配置支持主子表關(guān)聯(lián)查詢,可保存查詢歷史 提供各種系統(tǒng)監(jiān)控,實(shí)時(shí)跟蹤系統(tǒng)運(yùn)行情況(監(jiān)控 Redis、Tomcat、jvm、服務(wù)器信息、請求追蹤、SQL監(jiān)控) 消息中心(支持短信、郵件、微信推送等等) 集成Websocket消息通知機(jī)制 提供APP發(fā)布方案: 支持多語言,提供國際化方案; 數(shù)據(jù)變更記錄日志,可記錄數(shù)據(jù)每次變更內(nèi)容,通過版本對比功能查看歷史變化 平臺UI強(qiáng)大,實(shí)現(xiàn)了移動(dòng)自適應(yīng) 平臺首頁風(fēng)格,提供多種組合模式,支持自定義風(fēng)格 提供簡單易用的打印插件,支持谷歌、IE瀏覽器等各種瀏覽器 示例代碼豐富,提供很多案例參考 采用maven分模塊開發(fā)方式 支持菜單動(dòng)態(tài)路由 權(quán)限控制采用 RBAC(Role-Based Access Control,基于角色的訪問控制)
開源版界面
PC端





系統(tǒng)交互


圖表示例





儀表盤設(shè)計(jì)器


報(bào)表設(shè)計(jì)器




UNIAPP效果


手機(jī)端


PAD端



在線接口文檔


更多高級功能
流程設(shè)計(jì)




簡版流程設(shè)計(jì)



表單設(shè)計(jì)器



大屏設(shè)計(jì)器




零代碼應(yīng)用





歡迎吐槽,歡迎star~
