企业级自定义表单引擎解决方案(十三)--表单模板1
  8Uu6rgXuFR1h 2024年01月20日 60 0
BPM

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


 

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

模板一:单表模板(ListFormSimple_ts)

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

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

示例演示

 

 

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

  • 步骤一,新建对象

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

特殊字段说明:

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

  • 步骤二,快速创建表单

 

快速创建表单大致逻辑: 将模块里面的表单、视图、规则等所有配置数据从数据库里面查询到内存中,将列表视图里面的列、查询、导入导出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

  • 步骤三,配置菜单

 

 将最外层表单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 )

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年01月20日 0

暂无评论

推荐阅读
  Pax0HD0RCiKL   2024年01月20日   18   0   0 BPM
  XXXKmD2Lv7W8   2024年04月23日   38   0   0 BPM