6

企业级自定义表单引擎解决方案(十三)--表单模板1 - spritekuang

 1 year ago
source link: https://www.cnblogs.com/spritekuang/p/16461431.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

.net core研发的自定义表单引擎,采用强大的规则引擎将所有的业务串联起来的,和其他低代码平台是有本质的区别的,目标是完全解放繁琐的CRUD工作。


常规的业务,在需求以及数据库设计完成之后,可能就仅仅在界面上几分钟的配置就能够完成所有的开发、测试、部署工作,完全解放繁琐的CRUD工作。
表单模板能够快速创建常规的业务模块,系统尽量将常规的业务功能做成模板,方便快速的创建业务模块功能,选择一个模板之后,会将模板对应的表单、子表单、子视图、控件等所有自定义表单相关的定义全部自动创建出来。

模板一:单表模板(ListFormSimple_ts)

最常见的业务,即对数据库单张表的管理,包括一个表格和编辑对话框。

示例为演示创建一个常见的用户管理,单表数据。

68374-20220709164247187-483393764.gif

 三步创建一个单表应用模块

  • 步骤一,新建对象

68374-20220709164513023-81089217.png

新建对象的同时,会根据界面上的配置,生成对应的数据库表以及相应的字段,系统根据界面上的配置,动态拼接创建数据库的Sql语句,执行Sql代码,创建数据库物理表,具体逻辑可以查看对应的源码。

特殊字段说明:

用户名必填
登录名必填且唯一
工号为自动生成的流程号,前缀为Sprite,流水8位,采用Redis管理自增
性别、职务、职称为数据字典
电话和邮箱为自定义验证
联系地址为Text多行文本

  • 步骤二,快速创建表单

68374-20220709165224476-673415273.png

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

表单字段说明:

  • 表单模板选择

选择特定的模板,这里选择ListFormSimple_ts,即包含一个表格和编辑对话框管理单表,表格包含新增、编辑、删除、批量删除、导入导出Excel、分页、排序、查询、高级查询等基础功能,编辑表单包含字段各种验证、默认控件渲染等。

  • 对象Map

模板其实也是一个自定义表单功能模块,对象Map即用新的对象替换模板中使用对象的地方,值为:Simple_ts:User_b

  • 描述Map

替换弹窗等,界面显示的字段,值为:单表_模板:用户管理

业务分类方便管理,值为:用户部门

  • Item表单行

定义编辑视图生成多少列,默认为2列,这里定义显示3列,值为:User_b:3

  • 步骤三,配置菜单

68374-20220709170156295-2065495151.png

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

如此三步骤,就完成了一个常规的业务功能模块,不需要任何开发工作,完全解放CRUD工作。

目前已经开发了10个左右常规模板,后续还会陆续增加其他模板,后续再写文章介绍其他模板。


wike文档地址:https://gitee.com/kuangqifu/sprite/wikis/pages
开源地址:https://gitee.com/kuangqifu/sprite
体验地址: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 )


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK