企业级自定义表单引擎解决方案(十四)--表单模板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 (首次加载可能有点慢,用的阿里云最差的服务器)
自定义表单文章地址: (采用WWF开发,已过时,已改用Elsa实现, )