『新年首版』JeecgBoot v3.6.2 版本發(fā)布,企業(yè)級(jí)低代碼開(kāi)發(fā)平臺(tái)
項(xiàng)目介紹
JeecgBoot 是一款企業(yè)級(jí)的低代碼平臺(tái)!前后端分離架構(gòu) SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服務(wù)。強(qiáng)大的代碼生成器讓前后端代碼一鍵生成!JeecgBoot 引領(lǐng)低代碼開(kāi)發(fā)模式 (OnlineCoding-> 代碼生成 -> 手工 MERGE), 幫助解決 Java 項(xiàng)目 70% 的重復(fù)工作,讓開(kāi)發(fā)更多關(guān)注業(yè)務(wù)。既能快速提高效率,節(jié)省成本,同時(shí)又不失靈活性!
當(dāng)前版本:v3.6.2 | 2023-01-08
源碼下載
github 地址
- https://github.com/jeecgboot/jeecg-boot
- https://github.com/jeecgboot/jeecgboot-vue3
gitee 地址
- https://gitee.com/jeecg/jeecg-boot
- https://gitee.com/jeecg/jeecgboot-vue3
升級(jí)日志
重點(diǎn)升級(jí) ant-design-vue v4.0 版、提供新版儀表盤功能大升級(jí)、提供 springboot3 版本分支!
升級(jí)內(nèi)容
- 升級(jí) ant-design-vue 到最新版 4.0.8
- 提供新版儀表盤,儀表盤采用后臺(tái)集成模式(類似積木報(bào)表)
- 從 3.6.2 版本增加 flyway 自動(dòng)升級(jí)數(shù)據(jù)庫(kù)機(jī)制 (支持 mysql5.7、mysql8)
- 提供 springboot3 版本分支
- 默認(rèn)全部接口加權(quán)限注解,提高系統(tǒng)安全(犧牲了使用成本)
- 升級(jí) hutool 版本號(hào),解決 hutool 漏洞問(wèn)題
- 重構(gòu)企業(yè)微信同步邏輯,適配企業(yè)微信最新接口規(guī)則
- 租戶套餐邏輯改造
- 代碼生成器升級(jí),支持高級(jí)查詢器默認(rèn)生成
- 通知公告詳情查看樣式優(yōu)化
- 升級(jí)富文本組件到最新版 tinymce 6.6.2
- 增加 UI 組件示例代碼
- 解決字典注解跨服務(wù)、多數(shù)據(jù)源問(wèn)題
- online 生成表單時(shí)候后測(cè)試視圖,提示 “表名不合法,存在 SQL 注入風(fēng)險(xiǎn)!—>t_prod$1”
- oracle 下 online 報(bào)表,新增報(bào)表正常 編輯保存時(shí) 報(bào)錯(cuò)
- 3.6.0 版本 通知公告中發(fā)布的富文本消息,在我的消息中查看沒(méi)有樣式?Issue #834
- 儀表盤設(shè)計(jì)器中的甘特圖的數(shù)據(jù)源,其數(shù)據(jù)格式是怎樣的??Issue #5490
- Spring boot 3.x support · Issue #5486
- 源碼中 feign 客戶端不拋出異常,且分布式事務(wù) seata 不生效?Issue #5214
- 字典 code 解碼失敗,可能是使用了非法字符,請(qǐng)檢查!?Issue #5655
- sentinel 配置文件修改賬號(hào)密碼,logging.level.pattern 等配置無(wú)效!?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ù)選框和展開(kāi)框在一個(gè)方框內(nèi)?Issue #947
- 在多數(shù)據(jù)源模式下數(shù)據(jù)字典 Dict 不能指定自定義數(shù)據(jù)源?Issue #4138
- 分布式獨(dú)立數(shù)據(jù)源 dictTable?Issue #5643
- BasicTable 組件設(shè)置默認(rèn)展開(kāi)不生效;?Issue #945
- 【Online 表單開(kāi)發(fā)】表單添加多個(gè)外鍵無(wú)法保存 #948
- 最新 3.6.1 在線表單開(kāi)發(fā)中表單編輯頁(yè)面中單選按鈕不能默認(rèn)選中 #927
權(quán)限升級(jí)
- Online 代碼生成器目錄,加權(quán)限 @RequiresPermissions ("online:codeGenerate:projectPath"),需要授權(quán)才能訪問(wèn)
- 定時(shí)任務(wù)管理接口,加權(quán)限 @RequiresRoles ("admin"),只有 admin 角色才能操作
- 系統(tǒng)表白名單接口,加權(quán)限 @RequiresRoles ("admin"),只有 admin 角色才能操作
升級(jí) SQL
ALTER TABLE onl_drag_pageMODIFY 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_compMODIFY COLUMN page_Id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面ID' AFTER parent_id;ALTER TABLE onl_drag_pageADD COLUMN visits_num int(11) NULL DEFAULT NULL COMMENT '訪問(wèn)次數(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": "直接訪問(wèn)"n },n {n "value": 200,n "name": "郵件營(yíng)銷"n },n {n "value": 400,n "name": "聯(lián)盟廣告"n },n {n "value": 600,n "name": "網(wǎng)頁(yè)查詢"n },n {n "value": 800,n "name": "廣告點(diǎn)擊"n }n ],n "option": {n "title": {n "text": "基礎(chǔ)漏斗圖",n "show": truen },n "grid": {n "bottom": 115n },n "card": {n "title": "",n "extra": "",n "rightHref": "",n "size": "default"n },n "tooltip": {n "trigger": "item",n "formatter": "{a} <br/> : {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": 1n },n "emphasis": {n "label": {n "fontSize": 20n }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": "直接訪問(wèn)"n },n {n "value": 310,n "name": "郵件營(yíng)銷"n },n {n "value": 234,n "name": "聯(lián)盟廣告"n }n ],n "option": {n "title": {n "text": "基礎(chǔ)漏斗圖",n "show": truen },n "grid": {n "bottom": 115n },n "card": {n "title": "",n "extra": "",n "rightHref": "",n "size": "default"n },n "tooltip": {n "trigger": "item",n "formatter": "{a} <br/> : {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": 1n },n "emphasis": {n "label": {n "fontSize": 20n }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, '{rn "w": 12,rn "h": 12,rn "dataType": 1,rn "url": "",rn "timeOut": 0,rn "chartData": []rn}', '1', 'jeecg', '2022-09-09 15:21:08', 'jeecg', '2022-09-09 15:41:56' );UPDATE onl_drag_comp SET comp_config = '{rn "dataType": 1,rn "background": "#ffffff",rn "url": "http://api.jeecg.com/mock/33/chart",rn "timeOut": 0,rn "turnConfig": {rn "url": ""rn },rn "linkageConfig": [],rn "dataMapping": [],rn "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;",rn "chartData": [rn {rn "value": 0,rn "name": ""rn }rn ],rn rn "option": {rn "grid": {rn "bottom": 115rn },rn "card": {rn "title": "",rn "extra": "",rn "rightHref": "",rn "size": "default"rn },rn "title": {rn "text": "",rn "show": truern }rn }rn}' 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 },rn "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": 0n }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 = '{rn "id": "116606b2-4620-42d6-9202-36f39288a8d5",rn "component": "JBar",rn "config": {rn "formType": "design",rn "dataType": 4,rn "timeOut": 0,rn "option": {rn "grid": {rn "show": false,rn "top": 90,rn "bottom": 115rn },rn "card": {rn "title": "",rn "extra": "",rn "rightHref": "",rn "size": "default"rn },rn "title": {rn "text": "每日新增記錄",rn "show": true,rn "textStyle": {rn "color": "#464646"rn }rn },rn "tooltip": {rn "trigger": "axis",rn "axisPointer": {rn "type": "shadow",rn "label": {rn "show": true,rn "backgroundColor": "#333"rn }rn }rn },rn "yAxis": {rn "splitLine": {rn "interval": 2rn },rn "lineStyle": {rn "color": "#f3f3f3"rn }rn },rn "series": [rn {rn "data": [rn rn ],rn "type": "bar",rn "barWidth": 40,rn "itemStyle": {rn "color": "#64b5f6",rn "borderRadius": 0rn }rn }rn ]rn },rn "size": {rn "height": 500rn },rn "dataNum": "",rn "chart": {rn "category": "Bar",rn "subclass": "JBar",rn "isGroup": falsern },rn "typeFields": [rn rn ],rn "nameFields": [rn {rn "fieldName": "create_time",rn "fieldTxt": "創(chuàng)建時(shí)間",rn "fieldType": "date",rn "widgetType": "date",rn "customDateType": "3"rn }rn ],rn "valueFields": [rn {rn "fieldName": "record_count",rn "fieldTxt": "記錄數(shù)量",rn "fieldType": "count",rn "widgetType": "text"rn }rn ],rn "assistYFields": [rn rn ],rn "assistTypeFields": [rn rn ],rn "calcFields": [rn rn ],rn "tableName": "test_1031",rn "sorts": {rn "name": "",rn "type": ""rn },rn "filter": {rn "queryField": "create_time",rn "queryRange": "month",rn "customTime": null,rn "conditionMode": "and",rn "conditionFields": [rn rn ]rn },rn "analysis": {rn "isRawData": true,rn "showMode": 1,rn "showData": 1,rn "isCompare": false,rn "compareType": "",rn "trendType": "1",rn "compareValue": null,rn "showFields": [rn rn ]rn },rn "formId": "test_1031",rn "formName": "test1031",rn "compStyleConfig": {rn "summary": {rn "showY": true,rn "showTotal": false,rn "showField": "",rn "totalType": "sum",rn "showName": "總計(jì)"rn },rn "showUnit": {rn "numberLevel": "",rn "decimal": 0,rn "position": "suffix",rn "unit": ""rn },rn "assist": {rn "showUnit": {rn "numberLevel": "",rn "decimal": 0,rn "position": "suffix",rn "unit": ""rn },rn "summary": {rn "showY": true,rn "showField": "",rn "totalType": "sum",rn "showName": "總計(jì)"rn }rn },rn "headerFreeze": true,rn "unilineShow": true,rn "columnFreeze": true,rn "lineFreeze": truern }rn }rn}', 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ù)交流
- 開(kāi)發(fā)文檔:https://help.jeecg.com
- 官方網(wǎng)站: http://www.jeecg.com
- 在線演示:http://boot3.jeecg.com
- 快速入門:入門視頻 | 代碼生成
為什么選擇 JeecgBoot?
開(kāi)源界 “小普元” 超越傳統(tǒng)商業(yè)平臺(tái)。引領(lǐng)低代碼開(kāi)發(fā)模式 (OnlineCoding-> 代碼生成器 -> 手工 MERGE),低代碼開(kāi)發(fā)同時(shí)又支持靈活編碼, 可以幫助解決 Java 項(xiàng)目 70% 的重復(fù)工作,讓開(kāi)發(fā)更多關(guān)注業(yè)務(wù)。既能快速提高開(kāi)發(fā)效率,節(jié)省成本,同時(shí)又不失靈活性。
- 采用最新主流前后分離框架(SpringBoot Mybatis-plus Ant-Design Vue),容易上手;代碼生成器依賴性低,靈活的擴(kuò)展能力,可靈活實(shí)現(xiàn)二次開(kāi)發(fā);
- 開(kāi)發(fā)效率很高,采用代碼生成器,單表數(shù)據(jù)模型和一對(duì)多 (父子表)、樹(shù)列表等數(shù)據(jù)模型,增刪改查功能自動(dòng)生成,菜單配置直接使用(前端代碼和后端代碼都一鍵生成);
- 代碼生成器提供強(qiáng)大模板機(jī)制,支持自定義模板風(fēng)格。目前提供四套風(fēng)格模板(單表兩套、一對(duì)多兩套)
- 封裝完善的用戶、角色、菜單、組織機(jī)構(gòu)、數(shù)據(jù)字典、在線定時(shí)任務(wù)等基礎(chǔ)功能。強(qiáng)大的權(quán)限機(jī)制,支持訪問(wèn)授權(quán)、按鈕權(quán)限、數(shù)據(jù)權(quán)限、表單權(quán)限等
- 零代碼在線開(kāi)發(fā)能力,在線配置表單、在線配置報(bào)表、在線配置圖表、在線設(shè)計(jì)表單
- 常用共通封裝,各種工具類 (定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel 導(dǎo)入導(dǎo)出等), 基本滿足 80% 項(xiàng)目需求
- 簡(jiǎn)易 Excel 導(dǎo)入導(dǎo)出,支持單表導(dǎo)出和一對(duì)多表模式導(dǎo)出,生成的代碼自帶導(dǎo)入導(dǎo)出功能
- 集成簡(jiǎn)易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成圖形報(bào)表、pdf、excel、word 等報(bào)表;
- 采用前后分離技術(shù),頁(yè)面 UI 精美,針對(duì)常用組件做了封裝:時(shí)間、行表格控件、截取顯示控件、報(bào)表組件,編輯器等等
- 查詢過(guò)濾器:查詢功能自動(dòng)生成,后臺(tái)動(dòng)態(tài)拼 SQL 追加查詢條件;支持多種匹配方式(全匹配 / 模糊查詢 / 包含查詢 / 不匹配查詢);
- 數(shù)據(jù)權(quán)限(精細(xì)化數(shù)據(jù)權(quán)限控制,控制到行級(jí),列表級(jí),表單字段級(jí),實(shí)現(xiàn)不同人看不同數(shù)據(jù),不同人對(duì)同一個(gè)頁(yè)面操作不同字段
- 在線配置報(bào)表(無(wú)需編碼,通過(guò)在線配置方式,實(shí)現(xiàn)曲線圖,柱狀圖,數(shù)據(jù)等報(bào)表)
- 頁(yè)面校驗(yàn)自動(dòng)生成 (必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間空間等);
- 提供單點(diǎn)登錄 CAS 集成方案,項(xiàng)目中已經(jīng)提供完善的對(duì)接代碼
- 表單設(shè)計(jì)器,支持用戶自定義表單布局,支持單表,一對(duì)多表單、支持 select、radio、checkbox、textarea、date、popup、列表、宏等控件
- 專業(yè)接口對(duì)接機(jī)制,統(tǒng)一采用 restful 接口方式,集成 swagger-ui 在線接口文檔,Jwt token 安全驗(yàn)證,方便客戶端對(duì)接
- 接口安全機(jī)制,可細(xì)化控制接口授權(quán),非常簡(jiǎn)便實(shí)現(xiàn)不同客戶端只看自己數(shù)據(jù)等控制
- 高級(jí)組合查詢功能,在線配置支持主子表關(guān)聯(lián)查詢,可保存查詢歷史
- 提供各種系統(tǒng)監(jiān)控,實(shí)時(shí)跟蹤系統(tǒng)運(yùn)行情況(監(jiān)控 Redis、Tomcat、jvm、服務(wù)器信息、請(qǐng)求追蹤、SQL 監(jiān)控)
- 消息中心(支持短信、郵件、微信推送等等)
- 集成 Websocket 消息通知機(jī)制
- 提供 APP 發(fā)布方案:
- 支持多語(yǔ)言,提供國(guó)際化方案;
- 數(shù)據(jù)變更記錄日志,可記錄數(shù)據(jù)每次變更內(nèi)容,通過(guò)版本對(duì)比功能查看歷史變化
- 平臺(tái) UI 強(qiáng)大,實(shí)現(xiàn)了移動(dòng)自適應(yīng)
- 平臺(tái)首頁(yè)風(fēng)格,提供多種組合模式,支持自定義風(fēng)格
- 提供簡(jiǎn)單易用的打印插件,支持谷歌、IE 瀏覽器等各種瀏覽器
- 示例代碼豐富,提供很多案例參考
- 采用 maven 分模塊開(kāi)發(fā)方式
- 支持菜單動(dòng)態(tài)路由
- 權(quán)限控制采用 RBAC(Role-Based Access Control,基于角色的訪問(wèn)控制)
開(kāi)源版界面
PC 端
系統(tǒng)交互
儀表盤設(shè)計(jì)器
圖表示例
報(bào)表設(shè)計(jì)器
UNIAPP 效果
手機(jī)端
PAD 端
在線接口文檔
商業(yè)功能介紹
流程設(shè)計(jì)器
簡(jiǎn)版流程設(shè)計(jì)器
表單設(shè)計(jì)器
大屏設(shè)計(jì)器
零代碼應(yīng)用
歡迎吐槽,歡迎 star~