掘金 后端 ( ) • 2024-04-02 11:09

先说一下低代码平台,那是唬人的,难道代码还分高低?开发一款集成开发平台绝对不是一篇文章能解决的,重要的事情说三遍,千万别做低代码平台,千万别做低代码平台,千万别做低代码平台。 但是实际工作中效率工具是经常存在的,集中精力专门解决一个问题,所以我们设想开发一款表单相关的工具。

现在的web开发中,无疑表格是我们最常用的一个组件,一般我们会采用代码方式集成一张查询页面,这个交付过程也非常快速。这类表格开源的非常多,很多前端组件库自带表格组件,无论是react,vue还是angular,都有拿来即用的组件,另外也有独立专做一款表格组件的开源作者,比如vxe-tablehttps://github.com/x-extends/vxe-table)功能非常强大。

image.png

后来我们发现一款叫airtable的在线表格,这款表格做的非常醒目,很符合互联网企业的风格。 image.png

airtable实际上是一种视图表格,你可以建立多个表格,并且一个表格可以引用另一个表格(关联)的数据,用户可以按需要任意的增加字段,字段的类型也非常丰富,如果你用的熟练了,可以快速搭建出轻量的业务应用,比如“跟踪客户信息表格组”,“管理产品开发和需求进度的表格组”等,对于小的团队协同业务时非常有用,因为不用去要求信息部门提需求定制专用页面来协同数据。另外有二次开发能力的用户,还可以通过api等把数据同步回公司的数据库服务器。

不过这种方式也带来了一个问题,数据碎片化,无序增减字段导致同步数据成本增加,为后期数据再利用增加了障碍,还有就是所有数据必须在线操作,对于设计和业务等部门数据安全要求高的用户可能存在一些疑虑。

还有就是部分企业用户想要的是可以快速处理结构化数据,能够直接从数据中查询数据或保存数据,在这种需求前提下,我们开始考虑是否可以借鉴一些airtable的漂亮展示数据的优点,同时又能直接支持我们的现有数据库,根据这个需求,我们将功能拆解成:数据集,模板,前端渲染和交互。

1)数据集

包含访问数据库访问,数据查询和保存。我们的做法是创建一个数据源,然后创建数据集,数据集采用SQL语句查询数据,返回字段和数据。 image.png 为一个数据集配置查询SQL语句: image.png 然后我们就有了对应的字段 image.png 这些字段我们可以为模板设计时使用。

2)模板设计

接下来我们创建一张模板,并为模板配置可用的数据集,打开模板设计器,通过可视化配置页面上需要展示的字段和静态文本等。

image.png 模板间是相互可以链接的,并可以将字段值作为url参数传入到下一张模板中,这里我们还创建以一张明细表模板。

image.png

3)发布模板

创建完模板,我们就可以发布模板了,在小组的主题管理中引用需要的模板即可,然后为模板配上角色,这样拥有角色的用户才可以访问。

image.png

发布完模板后,用户立即就可以访问了,下面是两张页面截图。

查询列表页面,基于数据样式化的设置,让表格数据更加醒目,同时具有excel编辑单元格风格的操作体验,可以批量保存数据。

image.png

明细列表页面,这个图中包含了4个数据集,分别是订单基本信息,收货地址,开票信息和产品明细,在页面加载时一次性从服务获取的,而不是分4次获取,这样也是为了提高性能和降低开销。

image.png

后端执行的SQL语句日志。

image.png

总结

到这里,我们整个流程非常清晰,实现这些功能是没有编写前后端代码,但是SQL代码是需要写的,其余都是配置过程,这种热部署热更新能够快速适应业务上变更,而且数据直接存取到数据库,免去了同步和导数据的工作,另外数据项可带用户信息和时间戳,所有数据查询日志和保存日志也是非常详尽,为后期数据恢复和追溯提供保障。

今天我们先大概的讲一下整个过程,后面我们还将分享更多的细节,欢迎大家点赞收藏。

需要在线体验的可以访问:http://demo.yunform.cn