• [二】用amis做一个管理系统 - 基于官方示例的改造


    不要等待机会,而是创造机会。                

    amis 有两种使用方法:

    • JS SDK,可以用在任意页面中
    • React,可以用在 React 项目中

    SDK 版本适合对前端或 React 不了解的开发者。

    我们选用sdk方式,整个系统依amis为主题,页面的json配置通过接口获取。

    改造思路:

    前端依sdk为主 + 自定义事件

    后端使用jdk18+springboot3+mybatisplus

    1、amis相关操作封装

    初始话sdk:创建dom元素,加载amis相关的静态资源

    1. initSdk(version, theme) {
    2. let id = this.domId;
    3. let themeCss = {
    4. 'cxd': '/sdk.css',
    5. 'dark': '/dark.css',
    6. }
    7. let assets = [
    8. {src: './assets/amis/sdk-' + version + themeCss[theme], type: 'link'},
    9. {src: './assets/amis/sdk-' + version + '/helper.css', type: 'link'},
    10. {src: './assets/amis/sdk-' + version + '/iconfont.css', type: 'link'},
    11. {src: './assets/amis/sdk-' + version + '/sdk.js', type: 'script'},
    12. {src: './assets/amis/lib/umd_history.min.js', type: 'script'},
    13. {src: './assets/amis/lib/vue.min.js', type: 'script'}
    14. ]
    15. // 加载相关资源
    16. domUtils.loadAll(assets);
    17. if (domUtils.queryOne('#' + id) == null) {
    18. let dom = domUtils.createDom('div', {"id": id});
    19. domUtils.appendBody(dom);
    20. }
    21. }
    更新Schema
    1. /**
    2. * 更新Schema
    3. * @param amisJSON
    4. */
    5. updateSchema(amisJSON) {
    6. let that = this;
    7. // 初始化
    8. function creteAmis(that, json) {
    9. if (!that.amisScoped) {
    10. setTimeout(() => {
    11. creteAmis(that, amisJSON);
    12. }, 100)
    13. return;
    14. }
    15. that.amisScoped.updateSchema(json);
    16. }
    17. creteAmis(that, amisJSON);
    18. }

    2、编辑器相关集成

    地址:amis-editor-demo(地址已经失效了)

    官网地址:amis-editor-demo

    3、后端实现

    curd操作......略略略

    4、表设计

    1. CREATE TABLE `amis_page` (
    2. `id` bigint(0) NOT NULL,
    3. `page_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    4. `page_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '页面名称',
    5. `page_json` json NULL,
    6. `page_version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本号',
    7. `page_desc` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '页面描述',
    8. `create_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP,
    9. `create_by` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    10. PRIMARY KEY (`id`) USING BTREE
    11. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

  • 相关阅读:
    天宇优配|上架秒光 “3时代”的大额存单受宠
    springboot-scanBasePackages包扫描
    在C++中怎么把std::string类型的数字转成int类型的数字
    拖拽按钮 + 获取定位(源码)
    Spring之ioc
    Java单例模式的完整实现,从0到1带你一步步优化
    【UNIAPP】踩坑问题记录(持续更新)
    shell中实用eval命令和安全问题
    C++编程规范总结
    字符设备驱动_1:基本概念和数据结构
  • 原文地址:https://blog.csdn.net/cocoManager/article/details/132811748