【提效工具】 自制一款简单实用的表单(表格)元素生成器

691 阅读4分钟

「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!

背景介绍

最近,公司开始了一个新的项目,这是一个租赁业务系统。拿到需求之后,我大吃一惊,因为每个功能节点很复制,至少表格及表单中的元素数量之多远远超过我的想象。
然而,项目组中前端人数有限。如果按照以往项目开发模式,我们很可能天天都要加班。所以,自制一款实用的页面元素生成工具 势在必行。

speed.webp

开发模式介绍

先讲一下我们的开发模式:
1.设计师提供设计稿(设计风格、设计稿的模板)。
2.需求分析师提供需求文档及输入输出文档。
3.后端工程师提供pdm文件。

前端工程师先了解需求,然后对照以四个文件,画出前端的页面。 进而实现相关逻辑,并和后端同事联调接口。

其中画前端页面的过程,需要对照输入输出,及PDM文件,把表单和表格的字段一个一个的写到页面中。这是一个繁琐枯燥的过程,虽然没有技术含量,却很耗时间。

所以,我就考虑自己实现一个功能,能够快速的完成这一过程。既可以提高效率,又可以节省体力,节省时间,干更有意义的事情。

实现思路

  1. 查询数据--后端提供一个接口,根据数据库表名称,查询相应表结构。
  2. 渲染数据--将查询到的表结构数据渲染到一个表格中。
  3. 配置数据--在表格中编辑该元素的名称,类型,排序。
  4. 生成配置--根据表格中的数据生成元素的配置对象。
  5. 导出配置

think.webp

页面效果

image.png

顶部操作区

image.png

a. 下拉选用于切换后端不同的服务(eg: imfbp-fls-web/imfbp-crm-web)
b. 文本框用于如输入数据库表名称。
c. 新增按钮: 可以手动新增一个字段(有时候,数据表没有,但是页面需要显示的字段)
d. 表单结果/表格结果/极简结果: 三种输出的模式, 根据生成的数据需要在表格使用还是表单使用进行灵活选择。
e. 一键复制: 将右侧预览效果的数据复制到剪切板(少按一次Ctrl+C)
f. 排序数据/全部数据切换:控制输出的仅有有排序序号的数据,还是所有表格数据。

左侧编辑区

image.png

左侧编辑区域是一个可编辑表格,其中每一行表示一个字段。这里可以对该字段进行配置。 包括:

  1. 配置字段的标题。(默认取数据库表的备注字段,也可以自定义)
  2. 字段渲染的组件类型(文本、日期、金额、下拉选、富文本等)
  3. 细节配置:比如 字典配置 字典编码。 参照配置参照编码
  4. 默认值配置
  5. 是否可编辑
  6. 排序(在生成的表单(表格)中的渲染顺序)
右侧预览区

image.png

可以查看左侧配置后最终获取的json对象是否符合自己预期。 同时也可以进行微调。

总结与思考

  1. 我实现这个功能使用的是React, 思路简单, 使用vue也同样可以实现。
  2. 注意,最终生成的结果是一个JSON格式的配置数组,这是和我们使用的表单及表格组件适配的,传入对应组件即可渲染出页面。 当然如果期望返回具体的表单元素组件,实现思路一样,稍作调整即可。
  3. 根据表名称查询到数据比较多(100多个字段)时,表格进行行编辑操作时,页面会出现明显的卡顿现象。
  4. 我在具体项目开发过程中,使用这个工具感觉还是不错的,确实可以提高开发效率。

核心代码

点击查看完整代码