1. 概述

个人低代码平台,包含:用户管理、机构管理、角色管理、功能管理、用户角色管理、角色功能管理、菜单管理、字典管理。

2. 技能要求

  • 必备
    • SpringBoot
    • MyBatis
    • MySQL
    • React.js
    • Dva
    • Ant-design
    • Mock.js
    • RBAC
  • 扩展

    • EasyExcel
    • DB2/Oracle

      3. 资源清单

  • 源代码

  • 清单 | 类型 | 类别 | 资源路径 | 描述 | | —- | —- | —- | —- | | 后端 | 数据库 | 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. 后端开发流程

  1. 导入后端基础工程(polaris_dev_app.zip或者示例工程后端),修改工程配置(数据库连接配置、上传下载配置、端口配置等)。
  2. 初始化工程:使用数据库客户端工具连接数据库,并执行“base.sys.ddl”、“base.sys.init.sql”。
  3. 创建业务库表,根据业务需要将库表创建语句编写到“base.business.ddl”,权限控制相关信息编辑到“base.business.init.sql”,之后执行。
  4. 功能开发。
  • 服务接口定义:service/*Service.java
  • *Mapper接口定义:mapper/*Mapper.java
  • 服务开发:service/impl/*ServiceImpl.java
  • Mapper.xml开发:mapper/biz/*Mapper-${db.type}.xml
  • 控制器开发:controller/*Controller.java
  1. 测试。
  • 初始化数据:将测试数据添加至“base.business.test.sql”,之后执行。
  • 单元测试:编写单元测试类,并测试。

    2. 前端开发流程

  1. 导入前端基础工程。
  2. 配置菜单(功能码)。
  3. 功能开发。
  • 页面组件开发
  • 数据模型开发
  • 数据接口开发
  1. 测试。
  • Mock开发
  • 检视前端
  1. 本地联调。

    5. 操作指引

    开发环境

    1. 运行环境

    安装Node.js,尽量安装最新稳定版,安装过程略。
    1. node -v
    2. npm -v
    推荐使用yarn来管理依赖包。
    1. npm install -g yarn
    配置镜像源。
    1. # npm镜像源配置
    2. npm config set registry https://registry.npm.taobao.org
    3. # yarn镜像源配置
    4. yarn config set registry https://registry.npm.taobao.org/

    2. 开发工具

    推荐VSCode作为前端React开发的IDE工具,安装过程略。

    3. 浏览器

    推荐使用Chrome作为调试浏览器,安装过程略。

    4. 本地调试

    1. npm run start # npm start
    2. yarn start
    启动Mock测试:
    1. npm run mock
    2. yarn mock
    Mock示例:
    1. export default {
    2. // ${FUNCCODE}:功能码,如:SZXJCXT022req:请求参数;res:响应结果;
    3. [`POST /mock/${FUNCCODE}`](req, res) {
    4. const reqData = JSON.parse(req.body.REQ_MESSAGE).REQ_BODY.REQ_PARAM;
    5. setTimeout(() => {
    6. res.json({
    7. RSP_BODY: {
    8. ifMock: !reqData.ifMock,
    9. elements: [...global.DataMockList.data],
    10. page: { ...global.DataMockList.page },
    11. },
    12. RSP_HEAD: { TRAN_SUCCESS: true },
    13. });
    14. }, 50);
    15. },
    16. }

    配置菜单

  • 前置操作

    • 已配置功能码:配置功能菜单时需要事先配置好功能码,若为纯菜单(非叶子节点菜单)则无需该前置条件。

      1. 界面操作方式

      登录低代码平台,依次进入:“系统管理” → “菜单管理”,点击“添加”,录入菜单信息,最后点击“添加”即可。
      低代码平台-菜单管理.png

      2. 数据库操作方式

      1. -- 示例
      2. use polarisdb;
      3. -- 根菜单
      4. 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');
      5. -- 二级菜单
      6. 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);
      7. 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);
      8. 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);
      9. 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);
      10. 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. 界面操作方式

      登录低代码平台,依次进入:“系统管理” → “功能管理”,点击“添加”,录入功能信息,最后点击“添加”即可。
      低代码平台-功能管理.png

      2. 数据库操作方式

      1. -- 示例
      2. use polarisdb;
      3. -- 新增业务功能码
      4. INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT022', 'SZXJCXT022', '条件查询', 'administrator', CURRENT_TIMESTAMP, '0001');
      5. INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT023', 'SZXJCXT023', '新增', 'administrator', CURRENT_TIMESTAMP, '0001');
      6. INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT024', 'SZXJCXT024', '导入', 'administrator', CURRENT_TIMESTAMP, '0001');
      7. INSERT INTO BASE_FUNC (FUNC_ID, FUNC_CODE, FUNC_NAME, UPDATE_USER, UPDATE_TIME, DELETE_FLAG) VALUES ('F-SZXJCXT025', 'SZXJCXT025', '导出', 'administrator', CURRENT_TIMESTAMP, '0001');
      8. 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. 演示效果