表单控件状态变更
前言
涉及:无代码、代码块、Q-Source被动更新 、单项选择逻辑表单、关联已有数据 支持轻流版本:600系列版本(6.0.0等)、700版本(如7.0.0等)
一、场景描述
用户在填写表单时,通过选择某个来源信息(例如从已有的数据源中获取)填充了表单数据。在填写过程中,用户发现来源信息需要调整。用户希望直接修改来源信息,同时确保:
-
修改后的信息能够实时反映到表单中。
-
变更后的信息也会同步更新到来源数据中(即来源数据被永久修改)。
用户希望在不关闭当前页面的情况下完成变更操作,避免中断填写流程,同时达到数据同步的效果。
目标
• 支持用户修改来源数据,且同步更新表单中的填充内容。
• 确保来源数据和表单数据一致性。
• 提供流畅的操作体验,避免频繁跳转页面或中断操作。
关键需求
-
实时同步:来源数据的变更要即时更新到表单中,同时将新数据保存到来源数据库或系统中。
-
无中断编辑:用户可以在当前页面完成变更和同步,无需多次跳转或刷新页面。
二、实现思路
第一步:设置创建数据来源应用
难度:无
创建数据来源的应用,并确定主键字段(可以是表单中的某一个字段如姓名、项目名称等,也可是系统自带的编号、数据ID等信息)
注:使用数据ID作为主键需要在表单中增加一个字段存储其值。

第二步:创建逻辑显隐配置表单
难度:无
用于给单项选择字段下达自动显示或者隐藏字段指令的配置表单。


第三步:创建业务表单
难度:中
1、表单中添加业务字段并配置其业务逻辑,如:数据关联、关联已有数据。
字段配置如下: 姓名字段:数据关联字段,关联人员基础信息表、展示来源应用的「姓名字段」,可编辑
电话:电话字段,关联已有数据,关联人员基础信息表,通过筛选「姓名字段」展示来源应用的「电话字段」,不可编辑

2、添加一个新的电话字段(加上这个新添加的电话字段,共有两个电话字段)
字段配置如下: 电话:电话字段,关联已有数据,关联人员基础信息表,通过筛选「姓名字段」展示来源应用的「电话字段」,可编辑
注:第一个电话字段是不可编辑,新加的这个电话字段是可编辑

3、添加单项选择字段,组成逻辑显示模块,实现逻辑显隐。
字段配置如下:
编辑状态:单项选择字段,逻辑表单配置,实现效果点击false展示「不可编辑的电话字段」,点击true展示「可编辑的电话字段」。


4、添加逻辑计算相关的字段,组成计算模块
字段配置如下:
逻辑块1:数字字段,无其他配置
逻辑块2:数字字段,无其他配置
逻辑块3:数字字段,公式配置,判断「逻辑块1」和「逻辑块2」是否相同,如果相同则输出“false”,否则“true”


5、给逻辑显隐模块添关联已有数据配置
字段配置如下:
编辑状态:单项选择字段,关联已有数据,关联显隐逻辑控制应用,显示来源字段的「输出」,筛选条件将来源应用的「输入字段」匹配当前表单的「逻辑块3字段」,逻辑表单配置,实现效果点击false展示「不可编辑的电话字段」,点击true展示「可编辑的电话字段」。 实现效果:当字段「逻辑块1」和「逻辑块2」值相同时展示不可编辑的「电话字段」,如果值不同则展示不可编辑的「电话字段」。

6、添加「点击修改」控件(代码块)
字段配置如下: 点击修改:标题使用的是空字符,按钮文案为“点击修改”,不自动触发。 逻辑块1:配置关联已有数据,关联代码块「点击修改」 编辑状态:将「点击修改」添加到逻辑显隐的“false”中
「点击修改」代码逻辑: 获取「逻辑块1」字段当前数字值增加1,并输出。
注:「 」,「」包裹的就是空字符,可自行复制。 实现效果:点击「点击修改」代码块后可实现「逻辑块1」字段值的累增。



7、添加「点击保存」控件(代码块)
字段配置如下: 点击保存:标题使用的是空字符,按钮文案为“点击保存”,不自动触发。 逻辑块2:配置关联已有数据,关联代码块「点击保存」 编辑状态:将「点击保存」添加到逻辑显隐的“true”中
「点击保存」代码逻辑: 获取「逻辑块2」字段当前数字值增加1,并输出。
注:「 」,「」包裹的就是空字符,可自行复制。 实现效果:点击「点击保存」代码块后可实现「逻辑块2」字段值的累增。


8、初步测试
表现描述如下: 1、打开表单后,「逻辑块1」和「逻辑块2」字段因为没有代码块的触发,值为空。「逻辑块3」字段展示值为“false”。「编辑状态」字段因关联已有数据,展示值为“false”,逻辑显隐展示出了不可编辑的「电话」字段和「点击修改」代码块字段。
2、点击「点击修改」,「逻辑块1」值累增1,「逻辑块2」值不变,「逻辑块3」字段因「逻辑块1」和「逻辑块2」字段值不同,触发公式计算显示为“true”。「编辑状态」字段因关联已有数据,展示值为“true”,逻辑显隐展示出了可编辑的「电话」字段和「点击保存」代码块字段。
3、点击「点击保存」,「逻辑块2」值累增1,「逻辑块1」值不变,「逻辑块3」字段因「逻辑块1」和「逻辑块2」字段值相同,触发公式计算显示为“false”。「编辑状态」字段因关联已有数据,展示值为“false”,逻辑显隐展示出了不可编辑的「电话」字段和「点击修改」代码块字段。
9、来源应用创建Q-Source被动更新
配置如下:
1、接收数据类型为json
2、设置好接收数据的解析
3、更新数据设置成为主键字段 注:接收到的数据必须要有主键字段的值。


10、给「点击保存」代码块添加psot数据发送功能。
「点击保存」代码逻辑: 1、获取「逻辑块2」字段当前数字值增加1,并输出。 2、获取可编辑「电话」字段的值和「姓名」字段的值。
3、将配置的Q-Source获取到的webhook的url地址,通过post的http请求,将「电话」和「姓名」字段的值发送给Q-Source。

注:代码比较糙,只为了实现当前功能随便写的。
11、设置字段的表单内隐藏

12、完成全部配置,并测试最终效果。
表现描述如下: 1、打开表单后,展示出了「姓名」、不可编辑「电话」字段、「点击修改」代码块字段
2、点击「点击修改」字段,不可编辑「电话」字段变更为了可编辑状态,「点击修改」代码块字段变更为了「点击保存」代码块字段。
3、修改「电话」字段值后,点击「点击保存」,可编辑「电话」字段变更为了不可编辑状态,「点击保存」代码块字段变更为了「点击修改」代码块字段。「电话」字段值展示为了修改后的。
4、来源应用中对应的值也发送了更新,更新为最新值。