近期有个项目需要对接FormCreate 实现将设计信息、表单配置与全局数据源保存到数据库。并且需要在数据库中保存填写的数据并提供相应接口返回
1.设计信息与表单配置信息可单独保存在数据库中直接使用两个字段保存即可。如图:

2.数据填写数据存储与设计信息关联
在提交设计信息时可以从设计中将非设计元素的Json串提取出来(属性对照可参照FormCreate说明)
{
"type": "input",
"field": "F9wzmhstyu3oabc",
"title": "输入框",
"$required": false,
"_fc_id": "id_Fydamhstyu3oacc",
"name": "ref_Fpvemhstyu3oadc",
"display": true,
"hidden": false,
"_fc_drag_tag": "input"
}
这里我们需要先生成一个填写业务数据表名称保存到设计信息表中,业务数据表的列则从提取出来的非设计元素的Json串中获取,如图:

此处由于设计信息是用户自行完成,自由度比较高所以不能使用固定的拆分逻辑,需要使用递归来
筛选出所有非设计元素的Json串
3.表单填写的业务数据查询
以上说到的是设计信息与业务表的生成与关联。在使用中填写的数据会存储到业务数据表中使用主键关联即可查询出填写的数据列表来返回。我这的业务表生成的列是使用_fc_id的值,但前端数据绑定使用的是field,前期确认时发现使用_fc_id比较保险不会重复,所以这里需要使用_fc_id到设计信息中获取对应的field的值作为Key返回,而value就是_fc_id对应列的内容
4.针对分步表单的特殊处理
针对分步表单的处理,其实可使用上面说的逻辑来实现,只是需要将步骤拆分新增设计信息与生成业务表。因为分步表单可能会涉及到填写权限的问题,所以需要拆分生成来控制填写权限,
分步表单的填写同样需要拆分保存 最后可以生成一个总表来用来查询回显数据
总结
其实开发过程中遇到许多坑,东西比较多这里就不一一赘述了,发布这个帖子就是跟大家交流一下,给刚刚开始对接的朋友一些建议
如果有好的建议欢迎大家留言讨论
707

被折叠的 条评论
为什么被折叠?



