1. 概述
个人低代码平台,包含:用户管理、机构管理、角色管理、功能管理、用户角色管理、角色功能管理、菜单管理、字典管理。
2. 技能要求
- 必备
- SpringBoot
- MyBatis
- MySQL
- React.js
- Dva
- Ant-design
- Mock.js
- RBAC
扩展
源代码
- 清单 | 类型 | 类别 | 资源路径 | 描述 | | —- | —- | —- | —- | | 后端 | 数据库 | src/main/resources/sql//base.sys.ddl | 系统表初始化(必备) | | 后端 | | src/main/resources/sql//base.business.ddl | 业务表初始化(按需添加) | | 后端 | | src/main/resources/sql//base.sys.init.sql | 系统数据初始化(必备) | | 后端 | | src/main/resources/sql//base.business.init.sql | 业务数据初始化(按需添加) | | 后端 | | src/main/resources/sql//base.business.test.sql | 测试数据(按需添加) | | 后端 | | src/main/resources/sql//example* | 参考示例 |
4. 开发流程
1. 后端开发流程
- 导入后端基础工程(polaris_dev_app.zip或者示例工程后端),修改工程配置(数据库连接配置、上传下载配置、端口配置等)。
- 初始化工程:使用数据库客户端工具连接数据库,并执行“base.sys.ddl”、“base.sys.init.sql”。
- 创建业务库表,根据业务需要将库表创建语句编写到“base.business.ddl”,权限控制相关信息编辑到“base.business.init.sql”,之后执行。
- 功能开发。
- 服务接口定义:service/*Service.java
- *Mapper接口定义:mapper/*Mapper.java
- 服务开发:service/impl/*ServiceImpl.java
- Mapper.xml开发:mapper/biz/*Mapper-${db.type}.xml
- 控制器开发:controller/*Controller.java
- 测试。
- 导入前端基础工程。
- 配置菜单(功能码)。
- 功能开发。
- 页面组件开发
- 数据模型开发
- 数据接口开发
- 测试。
- Mock开发
- 检视前端
- 本地联调。
5. 操作指引
开发环境
1. 运行环境
安装Node.js,尽量安装最新稳定版,安装过程略。
推荐使用yarn来管理依赖包。node -v
npm -v
配置镜像源。npm install -g yarn
# npm镜像源配置
npm config set registry https://registry.npm.taobao.org
# yarn镜像源配置
yarn config set registry https://registry.npm.taobao.org/
2. 开发工具
推荐VSCode作为前端React开发的IDE工具,安装过程略。3. 浏览器
推荐使用Chrome作为调试浏览器,安装过程略。4. 本地调试
启动Mock测试:npm run start # npm start
yarn start
Mock示例:npm run mock
yarn mock
export default {
// ${FUNCCODE}:功能码,如:SZXJCXT022;req:请求参数;res:响应结果;
[`POST /mock/${FUNCCODE}`](req, res) {
const reqData = JSON.parse(req.body.REQ_MESSAGE).REQ_BODY.REQ_PARAM;
setTimeout(() => {
res.json({
RSP_BODY: {
ifMock: !reqData.ifMock,
elements: [...global.DataMockList.data],
page: { ...global.DataMockList.page },
},
RSP_HEAD: { TRAN_SUCCESS: true },
});
}, 50);
},
}
配置菜单
前置操作
- 已配置功能码:配置功能菜单时需要事先配置好功能码,若为纯菜单(非叶子节点菜单)则无需该前置条件。
1. 界面操作方式
登录低代码平台,依次进入:“系统管理” → “菜单管理”,点击“添加”,录入菜单信息,最后点击“添加”即可。
2. 数据库操作方式
-- 示例
use polarisdb;
-- 根菜单
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-tgqdmgr', 'tgqdmgr', '统管清单维护', '-1', 0, '0000', null, 'administrator', CURRENT_TIMESTAMP, '0001', 'user');
-- 二级菜单
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-SZXJCXT022', 'SZXJCXT022', '条件查询', 'M-tgqdmgr', 1, '0001', 'SZXJCXT022', 'administrator', CURRENT_TIMESTAMP, '0001', null);
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-SZXJCXT023', 'SZXJCXT023', '新增', 'M-tgqdmgr', 2, '0001', 'SZXJCXT023', 'administrator', CURRENT_TIMESTAMP, '0001', null);
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-SZXJCXT024', 'SZXJCXT024', '导入', 'M-tgqdmgr', 3, '0001', 'SZXJCXT024', 'administrator', CURRENT_TIMESTAMP, '0001', null);
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-SZXJCXT025', 'SZXJCXT025', '导出', 'M-tgqdmgr', 4, '0001', 'SZXJCXT025', 'administrator', CURRENT_TIMESTAMP, '0001', null);
INSERT INTO BASE_MENU (MENU_ID, MENU_CODE, MENU_NAME, PARENT_MENU_ID, MENU_ORDER, IS_LEAF, FUNC_CODE, UPDATE_USER, UPDATE_TIME, DELETE_FLAG, ICON) VALUES ('M-SZXJCXT026', 'SZXJCXT026', '历史版本管理', 'M-tgqdmgr', 5, '0001', 'SZXJCXT026', 'administrator', CURRENT_TIMESTAMP, '0001', null);
配置组织机构
配置用户
配置功能码
- 已配置功能码:配置功能菜单时需要事先配置好功能码,若为纯菜单(非叶子节点菜单)则无需该前置条件。
前置操作
- 无。
1. 界面操作方式
登录低代码平台,依次进入:“系统管理” → “功能管理”,点击“添加”,录入功能信息,最后点击“添加”即可。
2. 数据库操作方式
-- 示例
use polarisdb;
-- 新增业务功能码
INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT022', 'SZXJCXT022', '条件查询', 'administrator', CURRENT_TIMESTAMP, '0001');
INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT023', 'SZXJCXT023', '新增', 'administrator', CURRENT_TIMESTAMP, '0001');
INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT024', 'SZXJCXT024', '导入', 'administrator', CURRENT_TIMESTAMP, '0001');
INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT025', 'SZXJCXT025', '导出', 'administrator', CURRENT_TIMESTAMP, '0001');
INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT026', 'SZXJCXT026', '历史版本管理', 'administrator', CURRENT_TIMESTAMP, '0001');
配置权限
6. 工程部署
本地联调模式
容器运行模式7. 演示效果
- 无。