• 企业级自定义表单引擎解决方案(十四)--表单模板2


    • .net core研发的自定义表单引擎,采用强大的规则引擎将所有的业务串联起来的,和其他低代码平台是有本质的区别的,目标是完全解放繁琐的CRUD工作。
    • 常规的业务,在需求以及数据库设计完成之后,可能就仅仅在界面上几分钟的配置就能够完成所有的开发、测试、部署工作,完全解放繁琐的CRUD工作。
    • 表单模板能够快速创建常规的业务模块,系统尽量将常规的业务功能做成模板,方便快速的创建业务模块功能,选择一个模板之后,会将模板对应的表单、子表单、子视图、控件等所有自定义表单相关的定义全部自动创建出来。

    前段时间一直在搞QT方向的研发,想在QT这条路上有所突破,再将资源引流到自定义表单方面,自定义表单进度基本出于停滞状态,结果由于疫情原因和大环境影响,QT基本没什么项目资源。QT方面也是做了一套开发框架,很多低代码的思想在里面,唉,欲哭无泪,后面计划开源出来。接下来精力应该全部转向到自定义表单的研发上面来,不断的进行迭代优化。

    树相信每个项目都会遇到,除了常见的树之外,还有树型列表,在这里我把常见的情况做成的模板,可以方便的生成对应的功能表单。
    模板二:TreeListFormTree_ts(单树_模板列表表单)

    此模板为一棵树型列表,树列表为树型结构,没有分页,没有导入导出功能,包括增删改查以及高级查询,后台自动处理关于树特性的业务逻辑。
    示例演示

    •  步骤一,新建对象

     

     

     Object对象“是否为树”需要勾选,勾选之后,系统自动在数据库增加PId、TreeCode、Path、Title等字段,且运行时动态维护这几个字段的值,具体生成逻辑可查看后台源码。

    下面是Mysql自动生成的数据库表:

    CREATE TABLE `Tree_t` (
    `Id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
    `StringField` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
    `DateTimeField` datetime(6) DEFAULT NULL,
    `DictField` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `IntField` int DEFAULT NULL,
    `TextField` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
    `AutoNoField` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `DecimalField` decimal(10,2) DEFAULT NULL,
    `DateField` date DEFAULT NULL,
    `PId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `TreeCode` varchar(767) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `Path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `Icon` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `Title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `CreatorId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    `CreationTime` datetime(6) NOT NULL,
    `CreatorDept` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    PRIMARY KEY (`Id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

    • 步骤二,快速创建表单

     

     快速创建表单大致逻辑: 将模块里面的表单、视图、规则等所有配置数据从数据库里面查询到内存中,将列表视图里面的列、查询、导入导出Excel配置以及编辑视图里面的行、列数据全部删除,将数据库里的所有数据的Id提取出来,并构造出IdMap数据字典,字典Key为原Id,Value为新生成的Id(所有数据都包含主键,且主键类型为Guid),按照配置,根据新的对象的字段类型生成列表视图里面的列、导入导出Excle以及编辑视图里的行、列数据,其他数据全部保留,用新的Id替换原始Id值,再一起保存到数据库,同时刷新缓存,这样,一个新的业务表单就完成了。具体逻辑可查询开源的源码。

    • 步骤三,配置菜单

     

    将最外层表单Id值拷贝过来,填写对应的字段即可。

     模板三:TreeListFormTree_ts(单树Tree_模板列表表单)

    传统的一棵树,在很多地方都可以使用

    示例演示:

     

     

    •  步骤一,新建对象

    步骤同上,用的同一张表

    • 步骤二,快速创建表单

     

     

    • 步骤三,配置菜单

    将生成的表单Id配置到菜单中。

     


     

    wike文档地址:https://gitee.com/kuangqifu/sprite/wikis/pages
    后端开源地址:https://gitee.com/kuangqifu/sprite

    前端开源地址:https://gitee.com/kuangqifu/spritefronts
    体验地址:http://47.108.141.193:8031 (首次加载可能有点慢,用的阿里云最差的服务器)
    自定义表单文章地址:https://www.cnblogs.com/spritekuang/
    流程引擎文章地址:https://www.cnblogs.com/spritekuang/category/834975.html (采用WWF开发,已过时,已改用Elsa实现,https://www.cnblogs.com/spritekuang/p/14970992.html )

  • 相关阅读:
    软件测试学习笔记九
    [Vue]写一个简单的文件上传控件
    扫地机器人还能创新吗?云鲸给了个Yes
    【macOS付费软件推荐】第3期:Sibelius Ultimate
    常说的I2C协议是干啥的(电子硬件)
    Shell 脚本编程(二) —— 条件判断 (test命令) + 多路分支语句(if 、case)
    04-java数据结构之栈的学习
    【算法3.12】二分图 - 匈牙利算法 NTR算法(完结)
    选择器进阶与表单表格
    Revit SDK 介绍:RayTraceBounce 光线反弹
  • 原文地址:https://www.cnblogs.com/spritekuang/p/16828038.html