一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

表单处理方法和装置、计算机可读存储介质、电子设备与流程

2021-12-04 00:07:00 来源:中国专利 TAG:


1.本公开实施例涉及计算机技术领域,具体而言,涉及一种表单处理方法、表单处理装置、计算机可读存储介质以及电子设备。


背景技术:

2.在目前的前端开发中,表单在网页中较为常见,是网页与用户交换信息的重要方式。目前常见的表单页面开发方法为:对表单开发任务进行拆分,由前端和服务端并行进行开发。但是,前端和服务端并行开发的方式存在以下缺点:当表单页面数量较多时,前端需要开发较多的表单页面,不同表单页面之间的复用程度低,导致开发效率低下。
3.为了解决上述问题,出现了对表单进行配置化的技术,即,将要渲染的表单项内容转换成配置数据,根据配置数据渲染出内置组件,但是这种技术,一方面,不同表单页面的复用程度低;另一方面,表单项的值的填充与收集不能自动完成,需要手动开发完成。
4.因此,需要提供一种新的表单处理方法。
5.需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的目的在于提供一种表单处理方法、表单处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的表单页面复用程度低的问题。
7.根据本公开的一个方面,提供一种表单处理方法,包括:
8.获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据;
9.根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中;
10.获取所述表单项中的表单值,并将所述表单值发送至服务端。
11.在本公开的一种示例性实施例中,获取与当前页面对应的表单渲染模板,包括:
12.获取所述当前页面的统一资源定位符,对所述统一资源定位符进行解析,获取所述统一资源定位符中的查询参数;
13.判断所述查询参数中是否存在所述表单渲染模板的唯一标识,当存在时,基于所述唯一标识向所述服务端发送请求,并接收所述服务端发送的与所述唯一标识对应的表单渲染模板;
14.当不存在时,获取保存在本地的表单渲染模板。
15.在本公开的一种示例性实施例中,根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,包括:
16.创建并注册组件库;
17.获取所述表单渲染配置集合中包括的表单项渲染配置,根据所述表单项渲染配置的类型以及当前运行环境,在所述组件库中确定与所述表单项渲染配置对应的组件;
18.根据所述表单项渲染配置以及与所述表单项渲染配置对应的组件对所述当前页面进行渲染,得到所述目标表单页面;其中,所述目标表单页面中的表单项与所述表单项渲染配置相对应。
19.在本公开的一种示例性实施例中,创建并注册组件库,包括:
20.确定所述组件库中包括的组件在使用时的运行环境,根据所述组件在使用时的运行环境选择组件库包;
21.对所述组件库中的组件添加属性、方法以及监听器,并通过注册接口对所述组件库中的组件进行注册。
22.在本公开的一种示例性实施例中,将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中,包括:
23.对所述目标表单页面中包括的表单项进行广播;
24.与所述表单项对应的组件接收到广播之后,根据与所述表单项对应的所述表单项渲染配置中的值路径,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中。
25.在本公开的一种示例性实施例中,所述表单数据为树结构值对象;
26.根据与所述表单项对应的所述表单项渲染配置中的值路径,在所述表单数据中获取与所述表单项对应的表单值,包括:
27.根据所述表单项渲染配置中的值路径在所述树结构值对象中进行寻址,得到与所述表单项对应的表单值。
28.在本公开的一种示例性实施例中,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中,包括:
29.当与所述表单项对应的表单项渲染配置中包括所述表单项的交互配置时,获取所述表单项的事件配置以及与所述表单项存在交互关系的第一表单项;
30.在所述表单项中填充表单值时,触发与所述事件配置对应的事件回调函数,以及与所述第一表单项的事件配置对应的第一事件回调函数;
31.通过与所述表单项对应的表单值、所述事件回调函数以及所述第一事件回调函数,得到与所述第一表单项对应的第一表单值,并将所述第一表单值填充在所述第一表单项中。
32.在本公开的一种示例性实施例中,在将所述表单值填充在所述表单项中之后,所述表单处理方法还包括:
33.当与所述表单项对应的组件检测到表单值发生变化,且与第一表单项对应的交互配置中不包括所述表单项时,触发与所述表单项对应的事件配置中的事件回调函数;
34.通过所述事件回调函数,对所述表单项进行渲染,并且获取表单项的最终值,并将所述最终值同步至所述表单数据。
35.在本公开的一种示例性实施例中,获取所述表单项中的表单值,并将所述表单值发送至服务端,包括:
36.当所述目标表单页面的数据提交事件被触发时,获取所述目标表单页面中包括的
表单项中填充的表单值;
37.在确认所述目标表单页面中包括的表单项中填充的表单值获取完成后,对获取到的所述表单值进行序列化,并将经过序列化的表单值发送至服务端。
38.根据本公开的一个方面,提供一种表单处理装置,包括:
39.表单渲染模板获取模块,用于获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据;
40.表单数据填充模块,用于根据所述表单渲染配置集合对所述当前页面进行渲染,得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中;
41.表单值发送模块,用于获取所述表单项中的表单值,并将所述表单值发送至服务端。
42.根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一示例性实施例所述的表单处理方法。
43.根据本公开的一个方面,提供一种电子设备,包括:
44.处理器;以及
45.存储器,用于存储所述处理器的可执行指令;
46.其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的表单处理方法。
47.本公开实施例提供的一种表单处理方法,一方面,获取与当前页面对应的表单渲染模板,对该表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据,根据表单渲染集合进行渲染,并将表单数据填充在渲染得到的表单项中,解决了现有技术中表单页面数量较多时,需要开发较多的表单页面的问题,提高了表单页面的复用率;另一方面,当将表单数据中包括的表单值填充到对应的表单项中后,可以自动获取表单项中的表单值,并将获取到的表单值发送至服务端,解决了现有技术中表单项的值的填充与收集不能自动完成的问题,提高了表单页面的开发效率。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1示意性示出根据本公开示例实施例的一种表单处理方法的流程图。
51.图2示意性示出根据本公开示例实施例的一种表单处理系统的框图。
52.图3示意性示出根据本公开示例实施例的一种获取与当前页面对应的表单渲染模板的方法流程图。
53.图4示意性示出根据本公开示例实施例的一种根据表单渲染配置集合对当前页面进行渲染得到目标表单页面的方法流程图。
54.图5示意性示出根据本公开示例实施例的一种渲染模块的工作示意图。
55.图6示意性示出根据本公开示例实施例的一种在渲染模块中注册组件的方法流程图。
56.图7示意性示出根据本公开示例实施例的一种控制模块的工作示意图。
57.图8示意性示出根据本公开示例实施例的一种将表单数据中包括的表单值填充在对应的表单项中的方法流程图。
58.图9示意性示出根据本公开示例实施例的一种在表单数据中获取与表单项对应的表单值,并将表单值填充在表单项中的方法流程图。
59.图10示意性示出根据本公开示例实施例的一种将表单值填充在对应的表单项之后的表单处理方法的流程图。
60.图11示意性示出根据本公开示例实施例的一种获取表单项中的表单值,并将表单值发送至服务端的方法流程图。
61.图12示意性示出根据本公开示例实施例的一种表单处理装置的框图。
62.图13示意性示出根据本发明示例实施例的用于实现上述表单处理方法的电子设备。
具体实施方式
63.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
64.此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
65.在目前的前端开发中,常见的开发方法为:对表单开发任务进行拆分,由前端和服务端并行进行开发,具体的,由前端手动开发完成表单以及表单项的渲染,通过前端向服务端发起请求,并从服务端中获取表单的初始值,并将初始值填充在对应的表单项中,当用户对表单完成编辑或输入之后点击提交按钮,前端收集表单中所有表单项的值,并将获取到的表单项的表单值发送至服务端。由前端和服务端并行进行开发的方式的缺点是当表单页面数量较多时,前端需要开发较多的页面,每个页面都需要开发响应的表单项渲染、表单项交互、初始值填充、数据收发以及接口调用等逻辑,不同表单页面之间的复用程度低,导致表单页面的开发效率下降。
66.为了解决表单项需要手动开发以及手动渲染的问题,出现了对表单进行配置化的
技术,即,将要渲染的表单项的内容转换成配置数据,在根据数据渲染出内置组件,但是这种技术,一方面,无法解决表单项之间的交互逻辑问题,需要手动开发完成,且仅支持简单的内置组件或者内置组件的简单组合,不能扩展自定义组件;另一方面,表单项中表单值的填充与收集不能自动完成,需要手动开发完成;再一方面,不同表单页面的复用程度低,当大型表单应用中的任意一个表单内容需要调整时,前后端均需要参与需求开发,整个项目需要重新上线,不够灵活。
67.基于上述一个或者多个问题,本示例实施方式中首先提供了一种表单处理方法,该方法可以运行于设备终端,该设备终端可以包括台式计算机、便携式计算机、智能手机和平板电脑等等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该表单处理方法可以包括以下步骤:
68.步骤s110.获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据;
69.步骤s120.根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中;
70.步骤s130.获取所述表单项中的表单值,并将所述表单值发送至服务端。
71.上述表单处理方法,一方面,获取与当前页面对应的表单渲染模板,对该表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据,根据表单渲染集合进行渲染,并将表单数据填充在渲染得到的表单项中,解决了现有技术中表单页面数量较多时,需要开发较多的表单页面的问题,提高了表单页面的复用率;另一方面,当将表单数据中包括的表单值填充到对应的表单项中后,可以自动获取表单项中的表单值,并将获取到的表单值发送至服务端,解决了现有技术中表单项的值的填充与收集不能自动完成的问题,提高了表单页面的开发效率。
72.以下,对本公开示例实施例的表单处理方法中涉及的各步骤进行详细的解释以及说明。
73.首先,对本公开示例实施例的应用场景以及发明目的进行解释以及说明。具体的,本公开示例实施例可以应用于开发表单的页面中,主要研究如何提高表单开发的效率。
74.在本公开中主要将表单渲染与表单项的交互逻辑转化为可配置的表单渲染模板,存储在服务端。一方面,当设备终端获取到表单渲染模板之后,对表单渲染模板进行解析,获得表单渲染配置集合以及表单数据,根据表单渲染配置集合中包括的表单渲染配置渲染出单个表单项,并根据表单渲染配置中的值路径在表单数据中获取与单个表单项对应的表单值,即,表单初始值,并将该表单初始值填充在对应的表单项中;另一方面,支持自定义注册组件,当该表单项的表单渲染配置中包括该表单项与其他表单项的交互配置时,自定义组件检测到表单值填充至该表单项中时,执行相应的注册事件,并根据该表单项的表单值得到与该表单项具有交互关系的其他表单项的表单值,并对其他表单项的表单值进行填充,避免了手动开发,提高了开发效率;再一方面,当触发数据提交事件时,自动获取表单项中的表单值,并将获取到的表单值持久化在服务端,实现了表单值的自动填充与收集。
75.其次,对本公开示例实施例中涉及到的表单处理系统进行解释以及说明。参考图2所示,该表单处理系统可以包括设备终端210以及服务端220,其中,设备终端210中可以包括网络模块211、解析模块212、渲染模块213、控制模块214以及数据收发模块215,其中,网
络模块210,用于设备终端向服务端发送表单渲染模板请求、将数据收发模块215收集到的表单项的表单值发送至服务端,以及接收服务端发送的表单渲染模板;解析模块212,与网络模块211网络连接,用于对接收到的表单渲染模板进行解析,得到表单项渲染配置集合以及表单数值,并将表单数值发送至数据收发模块215;渲染模块213,与解析模块212网络连接,用于接收表单项渲染配置集合,并根据表单项渲染配置集合中的表单项渲染配置在当前页面中渲染出单个表单项,进行渲染,得到目标表单页面;控制模块214,与解析模块212网络连接,用于获取表单项的事件配置,根据该表单项的事件配置注册事件以及注册事件回调函数,当监听到表单项满足该注册事件时,调用与该注册事件对应的注册事件回调函数;数据收发模块215,与解析模块212、渲染模块213以及控制模块214网络连接,用于接收解析模块212发送的表单数值,以及获取目标表单页面中包括的表单项中的表单值,对表单值进行序列化;服务端220,与设备终端210网络连接,用于接收设备终端发送的表单渲染模板请求,并根据接收到的请求匹配对应的表单渲染模板,并将匹配到的表单渲染模板发送至设备终端210。
76.以下,将结合图2对步骤s110

步骤s130进行详细的解释以及说明。
77.在步骤s110中,获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据。
78.其中,将表单渲染和表单项交互逻辑转化为可配置,即可得到表单渲染模板,表单渲染模板可以为与当前页面对应的表单渲染模板,也可以为存储在本地的通用渲染模板,在本示例实施例中对此不做具体限定;表单项渲染配置集合中包括一个或者多个表单项渲染配置,对一个表单项渲染配置进行渲染可以得到一个表单项,表单项渲染配置中可以包括:表单项的唯一标识、表单项标题、与表单项对应的组件的组件类型、值路径、组件的初始隐藏状态、组件的初始可编辑状态、组件的配置信息以及表单项的交互配置;其中,组件类型可以为文本框、文本域、单选、多选、下拉框或者时间选择等中的一种,在本示例实施例中对组件类型不做具体限定。
79.在本示例实施例中,参考图3所示,获取与当前页面对应的表单渲染模板,可以包括步骤s310

步骤s330:
80.步骤s310.获取所述当前页面的统一资源定位符,对所述统一资源定位符进行解析,获取所述统一资源定位符中的查询参数;
81.步骤s320.判断所述查询参数中是否存在所述表单渲染模板的唯一标识,当存在时,基于所述唯一标识向所述服务端发送请求,并接收所述服务端发送的与所述唯一标识对应的表单渲染模板;
82.步骤s330.当不存在时,获取保存在本地的表单渲染模板。
83.以下,将对步骤s310

步骤s330进行解释以及说明。具体的,首先,获取用户的终端设备所在的当前页面的url(uniform resource locator,统一资源定位符),对该统一资源定位符进行解析得到该统一资源定位符中包括的查询参数search;然后,判断查询参数中是否存在于表单渲染模板的唯一标识对应的值,当查询参数中存在与表单渲染模板的唯一标识对应的值时,则将与表单渲染模板的唯一标识对应的值作为接口参数,向服务端请求与该唯一标识对应的表单渲染模板,当查询参数中不存在时,则获取存储在设备终端本地的表单渲染模板。当得到表单渲染模板之后,可以通过渲染模块213对该表单渲染模板进行
渲染。
84.在步骤s120中,根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中。
85.在本示例实施例中,参考图4所示,根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,可以包括步骤s410

步骤s430:
86.步骤s410.创建并注册组件库;
87.步骤s420.获取所述表单渲染配置集合中包括的表单项渲染配置,根据所述表单项渲染配置的类型以及当前运行环境,在所述组件库中确定与所述表单项渲染配置对应的组件;
88.步骤s430.根据所述表单项渲染配置以及与所述表单项渲染配置对应的组件对所述当前页面进行渲染,得到所述目标表单页面;其中,所述目标表单页面中的表单项与所述表单项渲染配置相对应。
89.以下,将对步骤s410

步骤s430进行解释以及说明。具体的,参考图5所示的渲染模块的工作示意图,渲染模块213在进行渲染之前,用户的设备终端首先会在渲染模块中注册一系列的组件501,以形成组件库;然后,当渲染模块213接收到表单渲染配置集合中包括的任一表单项渲染配置502时,会根据表单项渲染配置的类型以及当前运行环境在组件库中进行匹配,当组件库中存在与该表单项渲染配置对应的组件时,确定与该表单渲染配置对应的组件的唯一标识,根据该表单项渲染配置以及与该表单项渲染配置对应的组件的唯一标识,在当前页面中输出与该表单项渲染配置对应的组件以及表单项标题,并根据表单项渲染配置中包括的组件的初始隐藏状态、组件的初始可编辑状态以及组件的配置信息控制渲染在当前页面的组件你的初始状态和可选行为;当组件库中不存在与该表单项渲染配置对应的组件时,则获取默认组件对该默认组件进行渲染;当将表单渲染配置集合中的表单项渲染配置都渲染在当前页面之后,可以得到目标表单页面。其中,表单项渲染配置对应一个表单项;组件的初始隐藏状态为当将组件渲染到当前页面时,是否对该组件进行显示,组件的初始隐藏状态可以为是,也可以为否,在本示例实施例中对此不做具体限定;组件的初始可编辑状态为组件渲染到当前页面之后,用户是否可以对该组件进行编辑,组件的初始可编辑状态可以为可编辑,也可以为不可编辑,在本示例实施例中对此不做具体限定。
90.在本公开中通过渲染模块,不仅实现了内置组件的注册,也实现了自定义组件的注册,使得可以方便的扩展和替换项目组件库,提高了表单的开发效率。
91.进一步的,参考图6所示,在渲染模块中注册组件可以包括步骤s610以及步骤s620:
92.步骤s610.确定所述组件库中包括的组件在使用时的运行环境,根据所述组件在使用时的运行环境选择组件库包;
93.步骤s620.对所述组件库中的组件添加属性、方法以及监听器,并通过注册接口对所述组件库中的组件进行注册。
94.以下,将对步骤s610、步骤s620进行解释以及说明。具体的,在创建组件时,可以通过调用渲染模块的注册接口来实现。在对组件进行注册之前,首先要选择组件使用时的运行环境,即,选择组件库包,当确定组件的组件库包时,渲染模块会为组件分配唯一标识;然后,可以对组件添加属性、方法、监听器使得组件可以实现赋值、取值以及参数解析等操作;
最后,通过渲染模块的注册接口对该组件来进行注册;其中,组件使用时的运行环境可以为移动端,也可以为pc端,在本示例实施例中对组件使用时的运行环境不做具体限定;监听器的主要作用为处理父级组件广播通信和递归地处理子组件的事件冒泡通信,其中,父级组件广播通信可以为将控制模块的广播从父级组件一次传送至各子组件,事件冒泡通信为子组件中的初始值发生变化时,将该变化依次传递给上一级组件。在本示例实施例中通过渲染模块的注册接口进行自定义注册组件,实现了项目组件库的扩展与替换,提高了表单的处理效率。
95.进一步的,当根据表单渲染配置集合中包括的表单项渲染配置对当前页面进行渲染,得到目标表单页面,其中,目标表单页面中可以包括一个表单项或者多个表单项,则,可以获取与每个表单项对应的初始值,并将与每个表单对应的初始值填充在对应的表单项中,参考图7所示的控制模块的工作示意图,首先,根据表单项的事件配置701中的注册事件在控制模块214注册对应的事件回调函数,当数据收发模块215接收到表单数据之后,通过控制模块214对目标表单页面中的表单项702进行广播,控制模块214进行广播,表单项702接收到广播之后获取与该表单项702对应的表单值,并通过渲染模块213将表单值渲染在表单项702中,当对表单项渲染完成之后,可以通过数据收发模块215获取表单项中的表单值。
96.在本示例实施例中,参考图8所示,将表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中,可以包括步骤s810以及步骤s820:
97.步骤s810.对所述目标表单页面中包括的表单项进行广播;
98.步骤s820.与所述表单项对应的组件接收到广播之后,根据与所述表单项对应的所述表单项渲染配置中的值路径,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中。
99.以下,将对步骤s810、步骤s820进行解释以及说明。具体的,数据收发模块215在接收到解析模块212发送的表单数据之后,首先,会对接收到的表单数据进行复制,对复制得到的表单数据进行存储,并通过控制模块214对目标表单页面中表单项进行广播,当目标表单页面中的表单项接收到广播后,获取与表单项对应的表单项渲染配置,并根据表单项渲染配置中的值路径在表单数据中获取与表单项对应的表单值,并将获取到的表单值填充在表单项中。
100.其中,表单数据为树结构值对象,表单项可以根据值路径从树结构值对象中获取与表单项对应的表单值,则根据与表单项对应的表单项渲染配置中的值路径,在表单数据中获取与表单项对应的表单值,可以包括:
101.根据所述表单项渲染配置中的值路径在所述树结构值对象中进行寻址,得到与所述表单项对应的表单值。
102.具体的,首先,获取与表单项对应的表单项渲染配置中的值路径;然后,根据值路径在树结构值对象中进行寻址,获取与表单项对应的表单值,并将获取到的表单值填充在表单项中。
103.在本示例实施例中,参考图9所示,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中,可以包括步骤s910

步骤s930:
104.步骤s910.当与所述表单项对应的表单项渲染配置中包括所述表单项的交互配置时,获取所述表单项的事件配置以及与所述表单项存在交互关系的第一表单项;
105.步骤s920.在所述表单项中填充表单值时,触发与所述事件配置对应的事件回调函数,以及与所述第一表单项的事件配置对应的第一事件回调函数;
106.步骤s930.通过与所述表单项对应的表单值、所述事件回调函数以及所述第一事件回调函数,得到与所述第一表单项对应的第一表单值,并将所述第一表单值填充在所述第一表单项中。
107.以下,将对步骤s910

步骤s930进行解释以及说明。具体的,控制模块根据与表单项对应的事件配置中的注册事件,在模块内注册与注册事件对应的事件回调函数;其中,注册事件可以为表单项更新事件,则,与表单项更新事件对应的事件回调函数可以为更新事件回调函数;注册事件也可以为其他事件,在本示例实施例中对此不做具体限定。
108.在进行表单值的填充时,还需要判断是否有与当前填充表单值的表单项存在关联关系的表单项,即,判断与表单项对应的表单项渲染配置中包括的交互配置中是否存在与表单项存在交互关系的表单项;当存在时,获取表单项的事件配置、与该表单项有交互关系的第一表单项以及与第一表单项对应的事件配置;当将获取到的表单值填充到表单项之后,与该表单项对应的组件监听到表单值之后,根据该表单项的唯一标识触发事件配置中的表单项更新事件,同时,触发与该表单项具有交互关系的表单项对应的事件配置中的表单项更新事件,当控制模块监听到表单项的表单项更新事件时,触发与表单项对应的更新事件回调函数,并通知渲染模块对第一表单项的表单值进行渲染,即,通过更新事件回调函数,确定与表单项有交互关系的第一表单项的表单值,并将第一表单项的表单值填充在第一表单项中。其中,事件配置中包括与表单项对应的注册事件,以及注册事件的处理逻辑;表单项a的更新事件回调函数即为与表单项a对应的事件回调函数,表单项b以及表单项c的更新事件回调函数即为与表单项b以及表单项c对应的第一事件回调函数。
109.举例而言,当表单项a的事件配置中包括依赖表单项a的表单项b以及表单项c,当表单项a中的表单值发生变化时,会根据表单项a的唯一标识触发表单项a的表单更新事件,同时触发表单项b以及表单项c的表单更新事件,监控模块监听到表单项的更新触发事件之后,触发与表单项a、表单项b以及表单项c对应的更新事件回调函数,通过更新事件回调函数确定通知渲染模块去渲染表单项b以及表单项c的表单值,以使得渲染模块根据表单项a的表单值得到表单项b以及表单项c的表单值,并将表单项b以及表单项c的表单值填充在表单项b以及表单项c中。
110.在本示例实施例中,参考图10所示,当将表单项的表单值填充在对应的表单项之后,表单处理方法还包括步骤s1010以及步骤s1020:
111.步骤s1010.当与所述表单项对应的组件检测到表单值发生变化,且与第一表单项对应的交互配置中不包括所述表单项时,触发与所述表单项对应的事件配置中的事件回调函数;
112.步骤s1020.通过所述事件回调函数,对所述表单项进行渲染,并且获取表单项的最终值,并将所述最终值同步至所述表单数据。
113.以下,将对步骤s1010、步骤s1020进行解释以及说明。具体的,当表单项与其他表单项不存在交互关系,即,其他表单项的交互配置中不包括该表单项,且与该表单项对应的组件监听到该表单项的表单值发生变化时,会根据该表单项的唯一标识触发与该表单项对应的表单项更新事件,当监控模块监听到表单项更新事件之后,触发与该表单项对应的更
新事件回调函数,通过该更新事件回调函数确定表单项的值,通知渲染模块对该表单项进行再次渲染,并通知数据收发模块根据更新事件回调函数的唯一标识获取表单项的最终值,并将最终值同步至表单数据中。
114.举例而言,当表单项a与其他表单项不存在交互关系,即,其他表单项的交互配置中不包含表单项a,且表单项a的表单值发生变化时,根据表单项a的唯一标识触发表单项a的表单项更新事件,当监控模块监控到表单项a的表单项更新事件之后,触发与表单项a对应的更新事件回调函数,通过该更新事件回调函数确定表单项a的最终值,通知渲染模块对表单项a的表单值进行再次渲染,以及通知数据收发模块获取表单项a的最终值,并通过数据收发模块将表单项a的最终值同步至表单数据中。
115.本示例实施例中,通过将表单项的交互逻辑转换为表单渲染模板中的交互配置,当表单项中的表单值发生变化时,可以触发与该表单项有交互关系的其他表单项的表单值的变化,解决了现有技术中表单项之间的交互需要手动开发完成的问题,提高了表单项数据更新的效率。
116.在步骤s130中,获取所述表单项中的表单值,并将所述表单值发送至服务端。
117.在本示例实施例中,参考图11所示,获取所述表单项中的表单值,并将所述表单值发送至服务端,可以包括步骤s1110以及步骤s1120:
118.步骤s1110.当所述目标表单页面的数据提交事件被触发时,获取所述目标表单页面中包括的表单项中填充的表单值;
119.步骤s1120.在确认所述目标表单页面中包括的表单项中填充的表单值获取完成后,对获取到的所述表单值进行序列化,并将经过序列化的表单值发送至服务端。
120.以下,将对步骤s1110、步骤s1120进行解释以及说明。具体的,首先,用户触发目标表单页面中的数据提交事件时,数据收发模块获取目标表单页面中的表单值,并对获取到的表单值进行序列化,并将序列化后的表单值发送至服务端。
121.本公开示例实施例提供的表单处理方法至少具有以下优点:一方面,通过设备终端获取表单的表单渲染模板,获取对表单渲染模板进行解析,获得表单渲染配置集合以及表单数据,根据表单渲染配置集合中包括的表单渲染配置渲染出单个表单项,并根据表单渲染配置中的值路径在表单数据中获取与表单项的初始值,并将该初始值填充在对应的表单项中,提高了表单页面的生成效率;另一方面,支持自定义注册组件,当该表单项与其他表单项存在交互关系时,自定义组件检测到该表单项的表单值发生变化时,执行相应的注册事件,并对其他表单项的表单值进行填充,避免了手动开发,提高了开发效率;再一方面,当触发数据提交事件时,自动获取表单项中的表单值,并将获取到的表单值持久化在服务端,实现了表单值的自动填充与收集。
122.本公开示例实施例还提供了一种表单处理装置,参考图12所示,可以包括:表单渲染模板获取模块1210、表单数据填充模块1220以及表单值发送模块1230。其中:
123.表单渲染模板获取模块1210,用于获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集合以及表单数据;
124.表单数据填充模块1220,用于根据所述表单渲染配置集合对所述当前页面进行渲染,得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中;
125.表单值发送模块1230,用于获取所述表单项中的表单值,并将所述表单值发送至服务端。
126.上述表单处理装置中各模块的具体细节已经在对应的表单处理方法中进行了详细的描述,因此此处不再赘述。
127.在本公开的一种示例性实施例中,获取与当前页面对应的表单渲染模板,包括:
128.获取所述当前页面的统一资源定位符,对所述统一资源定位符进行解析,获取所述统一资源定位符中的查询参数;
129.判断所述查询参数中是否存在所述表单渲染模板的唯一标识,当存在时,基于所述唯一标识向所述服务端发送请求,并接收所述服务端发送的与所述唯一标识对应的表单渲染模板;
130.当不存在时,获取保存在本地的表单渲染模板。
131.在本公开的一种示例性实施例中,根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,包括:
132.创建并注册组件库;
133.获取所述表单渲染配置集合中包括的表单项渲染配置,根据所述表单项渲染配置的类型以及当前运行环境,在所述组件库中确定与所述表单项渲染配置对应的组件;
134.根据所述表单项渲染配置以及与所述表单项渲染配置对应的组件对所述当前页面进行渲染,得到所述目标表单页面;其中,所述目标表单页面中的表单项与所述表单项渲染配置相对应。
135.在本公开的一种示例性实施例中,创建并注册组件库,包括:
136.确定所述组件库中包括的组件在使用时的运行环境,根据所述组件在使用时的运行环境选择组件库包;
137.对所述组件库中的组件添加属性、方法以及监听器,并通过注册接口对所述组件库中的组件进行注册。
138.在本公开的一种示例性实施例中,将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中,包括:
139.对所述目标表单页面中包括的表单项进行广播;
140.与所述表单项对应的组件接收到广播之后,根据与所述表单项对应的所述表单项渲染配置中的值路径,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中。
141.在本公开的一种示例性实施例中,所述表单数据为树结构值对象;
142.根据与所述表单项对应的所述表单项渲染配置中的值路径,在所述表单数据中获取与所述表单项对应的表单值,包括:
143.根据所述表单项渲染配置中的值路径在所述树结构值对象中进行寻址,得到与所述表单项对应的表单值。
144.在本公开的一种示例性实施例中,在所述表单数据中获取与所述表单项对应的表单值,并将所述表单值填充在所述表单项中,包括:
145.当与所述表单项对应的表单项渲染配置中包括所述表单项的交互配置时,获取所述表单项的事件配置以及与所述表单项存在交互关系的第一表单项;
146.在所述表单项中填充表单值时,触发与所述事件配置对应的事件回调函数,以及与所述第一表单项的事件配置对应的第一事件回调函数;
147.通过与所述表单项对应的表单值、所述事件回调函数以及所述第一事件回调函数,得到与所述第一表单项对应的第一表单值,并将所述第一表单值填充在所述第一表单项中。
148.在本公开的一种示例性实施例中,在将所述表单值填充在所述表单项中之后,所述表单处理方法还包括:
149.当与所述表单项对应的组件检测到表单值发生变化,且与第一表单项对应的交互配置中不包括所述表单项时,触发与所述表单项对应的事件配置中的事件回调函数;
150.通过所述事件回调函数,对所述表单项进行渲染,并且获取表单项的最终值,并将所述最终值同步至所述表单数据。
151.在本公开的一种示例性实施例中,获取所述表单项中的表单值,并将所述表单值发送至服务端,包括:
152.当所述目标表单页面的数据提交事件被触发时,获取所述目标表单页面中包括的表单项中填充的表单值;
153.在确认所述目标表单页面中包括的表单项中填充的表单值获取完成后,对获取到的所述表单值进行序列化,并将经过序列化的表单值发送至服务端。
154.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
155.此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
156.在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
157.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
158.下面参照图13来描述根据本发明的这种实施方式的电子设备1300。图13显示的电子设备1300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
159.如图13所示,电子设备1300以通用计算设备的形式表现。电子设备1300的组件可以包括但不限于:上述至少一个处理单元1310、上述至少一个存储单元1320、连接不同系统组件(包括存储单元1320和处理单元1310)的总线1330以及显示单元1340。
160.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1310执行,使得所述处理单元1310执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1310可以执行如图1中所示的步骤s110:获取与当前页面对应的表单渲染模板,对所述表单渲染模板进行解析,得到表单项渲染配置集
合以及表单数据;s120:根据所述表单渲染配置集合对所述当前页面进行渲染得到目标表单页面,并将所述表单数据中包括的表单值填充在所述目标表单页面中包括的表单项中;s130:获取所述表单项中的表单值,并将所述表单值发送至服务端。
161.存储单元1320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)13201和/或高速缓存存储单元13202,还可以进一步包括只读存储单元(rom)13203。
162.存储单元1320还可以包括具有一组(至少一个)程序模块13205的程序/实用工具13204,这样的程序模块13205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
163.总线1330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
164.电子设备1300也可以与一个或多个外部设备1400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1300交互的设备通信,和/或与使得该电子设备1300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1350进行。并且,电子设备1300还可以通过网络适配器1360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1360通过总线1330与电子设备1300的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
165.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
166.在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
167.根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
168.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读
存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
169.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
170.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
171.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
172.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
173.本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献