数据表单生成方法、装置、设备及存储介质与流程

文档序号:31068856发布日期:2022-08-09 20:47阅读:124来源:国知局
数据表单生成方法、装置、设备及存储介质与流程

1.本技术涉及表单开发技术领域,尤其涉及到一种数据表单生成方法、装置、设备及存储介质。


背景技术:

2.随着网络应用的普及以及网络用户增多,各种需要处理的数据也越来越多。通常情况下,一般基于表单实现数据处理,例如,基于表单实现数据录入、数据显示等等。
3.在传统的前端表单开发中,一般是通过现有组件库提供的表单工具做数据录入,然而在利用组件库提供的表单工具进行数据录入时,对于一些复杂的场景则比较疲软(比如某些公司内部的运营配置台等)。这些场景的复杂度通常较高,数据结构层级较深,联动关系非常复杂,使用现有一些组件库提供的表单方案开发表单比较繁琐,进而导致表单开发效率较低。


技术实现要素:

4.有鉴于此,本技术提供了一种数据表单生成方法、装置、设备及存储介质,主要目的在于解决传统的前端表单开发中,在面对数据结构层级较深,联动关系较为复杂的表单方案时,开发工作量大、工作效率低的技术问题。
5.根据本技术的一个方面,提供了一种数据表单生成方法,该方法包括:
6.获取待生成的目标数据表单的数据结构,所述数据结构包括至少两个数据结构层级,所述至少两个数据结构层级间具有层级顺序;
7.确定各个所述数据结构层级对应的第一层级组件;
8.判断所述至少两个数据结构层级中是否存在包含联动逻辑的目标数据结构层级,若是,则将所述联动逻辑注入所述目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件;
9.按照所述层级顺序拼装所述第一层级组件和/或所述第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到所述目标数据表单。
10.可选地,所述第一层级组件中包含预设插槽,所述预设插槽用于创建所述第一层级组件之间的挂载连接,所述挂载连接用于将当前数据结构层级下第一层级组件所产生的组件数据传输至上一数据结构层级中,若判断所述至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级,所述方法还包括:
11.按照所述至少两个数据结构层级间的层级顺序,确定各个所述第一层级组件所属的组件层级;
12.根据所述组件层级由低到高的顺序,将各个所述组件层级依次更新为当前组件层级,并确定所述当前组件层级的上一组件层级,以及将所述当前组件层级对应的第一层级组件插入所述上一组件层级对应第一层级组件的预设插槽中;
13.重复上述过程,直至判定所述当前组件层级对应为最高组件层级,则完成对各个
所述组件层级中第一层级组件的拼装,得到目标表单组件,并对所述目标表单组件进行渲染处理,得到所述目标数据表单。
14.可选地,若判断所述至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级,则将所述联动逻辑注入所述目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件,包括:
15.将所述联动逻辑写入高阶组件,利用所述高阶组件包裹所述目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件。
16.可选地,所述按照所述层级顺序拼装所述第一层级组件和/或所述第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到所述目标数据表单,包括:
17.根据至少两个所述数据结构层级的层级顺序,确定所述第一层级组件和/或所述第二层级组件所属的组件层级;
18.利用高阶组件按照所述组件层级由低到高的顺序,依次将各个组件层级下的第一层级组件或第二层级组件确定为当前组件层级下的目标层级组件,将所述目标层级组件传入所述当前组件层级对应上一组件层级的第一层级组件或第二层级组件中,得到更新后的目标层级组件;
19.重复上述对所述目标层级组件的更新过程,直至判定所述目标层级组件传入最高组件层级对应的第一层级组件或第二层级组件中,判定完成对各个组件层级中第一层级组件或第二层级组件的拼装,得到目标表单组件;
20.通过渲染所述目标表单组件,得到所述目标数据表单。
21.可选地,所述按照所述层级顺序拼装所述第一层级组件和/或所述第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到所述目标数据表单,包括:
22.按照所述至少两个数据结构层级间的层级顺序,向createform函数输入各个数据结构层级下的层级组件参数,利用所述createform函数依据所述各个数据结构层级下的层级组件参数生成目标表单组件,所述层级组件参数包括组件层级、所述组件层级对应的第一层级组件或第二层级组件;
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.所述输入模块,可用于按照所述至少两个数据结构层级间的层级顺序,向createform函数输入各个数据结构层级下的层级组件参数,利用所述createform函数依据所述各个数据结构层级下的层级组件参数生成目标表单组件,所述层级组件参数包括组件层级、所述组件层级对应的第一层级组件或第二层级组件;
51.所述渲染单元,可用于通过渲染所述目标表单组件,得到所述目标数据表单。
52.可选地,所述装置还包括:监听模块、调整模块;
53.所述监听模块,用于实时监听所述目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;
54.所述调整模块,用于依据所述第二层级组件注入的联动逻辑,实时对与产生值变化的第二层级组件存在联动关系的其他层级组件的值进行调整。
55.可选地,所述目标表单组件中配置有第一钩子函数,所述监听模块,具体用于:调用所述第一钩子函数,实时监测所述目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;或,通过利用监听器监测预设字典树中所述第一层级组件或所述第二层级组件对应树节点的变化,确定所述第一层级组件或所述第二层级组件的值的变化情况,其中,所述预设字典树是根据所述目标数据表单的数据结构预先生成的,所述字典树中的树节点对应所述第一层级组件或所述第二层级组件。
56.可选地,所述调整模块,具体用于:当监听到任一第二层级组件的值发生变化时,根据所述联动逻辑确定与产生值变化的第二层级组件存在联动关系,且组件层级小于所述第二层级组件对应组件层级的其他层级组件;对所述其他层级组件的值进行联动调整。
57.可选地,所述目标表单组件中配置有第二钩子函数,所述装置还包括:接收模块、控制模块;
58.所述接收模块,可用于接收用户通过调用所述第二钩子函数发送的增量操作请求,所述增量操作请求中携带有目标操作组件层级;
59.所述控制模块,可用于响应于所述增量操作请求,输出所述目标操作组件层级下的表单操作对象,并根据用户操作对所述表单操作对象进行增量控制。
60.依据本技术又一个方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据表单生成方法。
61.依据本技术再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据表单生成方法。
62.借由上述技术方案,本技术提供的一种数据表单生成方法、装置、设备及存储介质,可在获取到待生成的目标数据表单的数据结构后,对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级,进而确定各个数据结构层级对应的第一层级组件,之后对至少两个数据结构层级中判定存在包含联动逻辑的目标数据结构层级进行联动逻辑注入,得到具有联动关系的第二层级组件;最后按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。通过本技术中的技术方案,针对层级嵌套较深或联动逻辑复杂的表单开发,可通过将数据表单以分层的形式开发,开发时仅需关心具体某一层的结构和逻辑,独立开发某一层的组件,无需考虑层级之间的关系。每一层相关的组件开发完毕后,通过把各层拼装组合起来就形成了完整的表单。这样无论真实结构有多少层,每次面对的数据结构只有一层,复杂度就不存在了,大大提高开发效率。并且将联动逻辑和组件本身解耦,可极大提升组件的复用率。
63.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
64.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本地申请的不当限定。在附图中:
65.图1示出了本技术实施例提供的一种数据表单生成方法的流程示意图;
66.图2示出了本技术实施例提供的另一种数据表单生成方法的流程示意图;
67.图3示出了本技术实施例提供的又一种数据表单生成方法的流程示意图;
68.图4示出了本技术实施例提供的一种数据表单生成的实例示意图;
69.图5示出了本技术实施例提供的一种数据表单生成装置的结构示意图;
70.图6示出了本技术实施例提供的另一种数据表单生成装置的结构示意图;
71.图7示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
72.下文将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互结合。
73.针对传统的前端表单开发中,在面对数据结构层级较深,联动关系较为复杂的表单方案时,开发工作量大、工作效率低的技术问题,本技术提供了一种数据表单生成方法,如图1所示,该方法包括:
74.101、获取待生成的目标数据表单的数据结构,数据结构包括至少两个数据结构层级,至少两个数据结构层级间具有层级顺序。
75.其中,目标数据表单为前端页面(如网页、app)常见的数据录入手段,可包括数据结构简单的表单(比如登录时输入用户名和密码),也可包括具有更多数据录入项、更复杂的数据结构以及更多数据间关联关系(也称联动关系)的数据结构复杂的表单。本技术中的技术方案旨在能够实现简单表单快速生成的同时,针对复杂表单同样也能实现快速生成,保证复杂表单的开发效率。对于数据结构,比如在登录场景下,数据结构就是{用户名,密
码,验证码},此时对应单层结构,数据结构比较简单;另外一些场景,比如简历,数据结构就比较复杂,数据结构可为{姓名,电话,项目经历[项目1,项目2,项目3

],工作经历[经历1,经历2,经历3

],

},可以看到,此时是双层结构;在更复杂的应用场景中,数据结构还可对应两层以上的数据结构。对于本技术,优选基于包含至少两个数据结构层级的数据结构,生成数据表单(当然对于包含一个数据结构层级的数据结构同样适用)。其中,对于数据结构层级,示例性的,当数据结构中出现列表(数组)时,首先称其为一层,列表中如果又出现列表,则是第二层,以此类推。
[0076]
对于本技术的执行主体可为数据表单生成系统,可配置在客户端侧或服务端侧,能够在获取到待生成的目标数据表单的数据结构后,对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级,进而确定各个数据结构层级对应的第一层级组件,之后对至少两个数据结构层级中判定存在包含联动逻辑的目标数据结构层级进行联动逻辑注入,得到具有联动关系的第二层级组件;最后按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。
[0077]
102、确定各个数据结构层级对应的第一层级组件。
[0078]
其中,组件可以代表页面中的一块视图和与其相关的一些功能。比如登录框,可以是一个组件,它有输入用户名和密码的视图和能力,也有点击登录后调用后端接口的能力。具体的,组件粒度由开发人员根据实际应用场景自行定义,在此不进行具体的限定。
[0079]
在具体的应用场景中,在获取到待生成的目标数据表单的数据结构后,可根据数据结构进行数据结构层级的拆分,得到至少两个数据结构层级。相应的,对于本实施例,可针对每一个数据结构层级筛选对应的第一层级组件,第一层级组件是指能够实现对应数据结构层级下表单功能的组件。如果某一数据结构层级对应的数据较多,也可以把这一层再拆分为几个层级子组件,但最后几个层级子组件一定要组成一个第一层级组件来表达这一层的数据结构。其中,在确定各个数据结构层级对应的第一层级组件时,为实现对层级组件的复用,可首先确定各个数据结构层级对应的数据类型,进而从预设组件库中筛选与该数据类型匹配的至少两个子组件或一个完整组件,进一步将至少两个子组件对应的组合组件或该完整组件确定为该数据结构层级对应的第一层级组件;若在预设组件库中未筛选出与该数据类型匹配的子组件以及完整组件,则需要针对该数据结构层级开发对应的第一层级组件。在完成开发后,可按照该数据结构层级对应的数据类型将开发出的第一层级组件更新存储至预设组件库中,便于后续对该组件的复用。
[0080]
103、判断至少两个数据结构层级中是否存在包含联动逻辑的目标数据结构层级,若是,则将联动逻辑注入目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件。
[0081]
其中,对于联动逻辑,示例性的,比如在修改密码时,一般有一个新密码输入框和一个再次确认密码输入框,当第二个输入框中的内容必须与第一个输入框的内容一致,才能通过校验,显然这两个输入框的内容是有关联关系的,该关联关系即对应联动逻辑。在具体的应用场景中,联动逻辑可包括多个种类,比如数据到数据的联动(上述例子就是),数据到视图的联动(数据改变导致视图变化),视图到数据的联动(视图改变导致数据变化)等等。第二层级组件是在第一层级组件的基础上,附加联动逻辑后的增量组件,在本技术中,通过将联动逻辑和组件本身解耦,在具体的应用时能够根据所需的联动关系进行对第一层
级组件的二次更新,在满足用户个性化需求的同时,也能够提升原始组件的复用率。
[0082]
在具体的应用场景中,若判断至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级,则说明待生成的目标数据表单为数据结构较为简单的表单,此时可进一步执行下述实施例步骤203至205,通过拼装各个数据结构层级对应的第一层级组件,得到目标表单组件,并对目标表单组件进行渲染处理,得到目标数据表单;若判断至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级,即待生成的目标数据表单为数据结构较为复杂的表单,则可进一步执行本实施例步骤103以及后续的实施例步骤104,得到目标数据表单。作为扩展内容,若判断至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级时,还可进一步执行下述实施例步骤303至306a,或实施例步骤303至304b,通过拼装第一层级组件和第二层级组件,或拼装第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。
[0083]
104、按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。
[0084]
对于本实施例,承接上述实施例中的内容,在拼装第一层级组件和/或第二层级组件,得到目标表单组件时,具体可包括以下三种优选实现场景:第一种、当判断至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级时,不需要进行联动逻辑的注入,此时可直接按照层级顺序拼装第一层级组件,得到目标表单组件;第二种、当判断至少两个数据结构层级中存在部分包含联动逻辑的目标数据结构层级时,表示存在部分第一层级组件需要进行联动逻辑的增量注入,这样每一个数据结构层级可对应一个第一层级组件或第二层级组件,进一步可按照层级顺序拼装所有数据结构层级中的第一层级组件和第二层级组件,得到目标表单组件;第三种、当判断至少两个数据结构层级全部为包含联动逻辑的目标数据结构层级时,即每一个第一层级组件都需要进行联动逻辑的增量注入,这样每一个数据结构层级均对应一个第二层级组件,进一步可按照层级顺序拼装第二层级组件,得到目标表单组件。
[0085]
通过本实施例中数据表单生成方法,可在获取到待生成的目标数据表单的数据结构后,对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级,进而确定各个数据结构层级对应的第一层级组件,之后对至少两个数据结构层级中判定存在包含联动逻辑的目标数据结构层级进行联动逻辑注入,得到具有联动关系的第二层级组件;最后按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。通过本技术中的技术方案,针对层级嵌套较深或联动逻辑复杂的表单开发,可通过将数据表单以分层的形式开发,开发时仅需关心具体某一层的结构和逻辑,独立开发某一层的组件,无需考虑层级之间的关系。每一层相关的组件开发完毕后,通过把各层拼装组合起来就形成了完整的表单。这样无论真实结构有多少层,每次面对的数据结构只有一层,复杂度就不存在了,大大提高开发效率。并且将联动逻辑和组件本身解耦,可极大提升组件的复用率。
[0086]
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种资源共享的处理方法,如图2所示,该方法包括:
[0087]
201、获取待生成的目标数据表单的数据结构,数据结构包括至少两个数据结构层级,至少两个数据结构层级间具有层级顺序。
[0088]
针对多层的数据结构,在现有的技术实现方案中,主要是直接利用现有组件库的能力进行数据表单的生成。这样做会导致需要额外编写大量代码,理解起来不直观,同时可能导致组件复用率低。多层数据结构会带来额外的复杂度,这种复杂度在传统方案中是一个棘手的问题,层级越深,问题越大,并且没有什么太好的解决方案。有鉴于此,对于本实施例,在获取到待生成的目标数据表单的数据结构后,可对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级。通过对数据结构拆分的分层开发方式,可在开发时仅需关心具体某一层的结构和逻辑,独立开发某一层的组件,无需考虑层级之间的关系。每一层相关的组件开发完毕后,通过把它们拼装起来就形成了完整的表单。这样无论真实结构有多少层,每次开发面对的数据结构只有一层,能够消除多层数据结构带来的复杂度,大大提高开发效率。
[0089]
202、确定各个数据结构层级对应的第一层级组件。
[0090]
对于本实施例,确定各个数据结构层级对应第一层级组件的具体实现过程,可参见实施例步骤102中的描述,在此不再赘述。
[0091]
203、若判断至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级,则按照至少两个数据结构层级间的层级顺序,确定各个第一层级组件所属的组件层级。
[0092]
如图4所示,将数据结构进行层级拆分,得到五个数据结构层级,且五个数据结构层级按照层级顺序由高到低分别为:第一层、第二层、第三层、第四层、第五层;进一步可按照数据结构层级间的层级顺序,确定各个第一层级组件所属的组件层级由高到低分别为:第一组件层级n1、第二组件层级n2、第三组件层级n3、第四组件层级n4、第五组件层级n5,即第一组件层级n1中的第一层级组件n1嵌套了第二组件层级n2中第一层级组件n2的所有内容,第一层级组件n1可以控制第一层级组件n2;第二组件层级n2中的第一层级组件n2嵌套了第二组件层级n3中第一层级组件n3的所有内容,第一层级组件n2可以控制第一层级组件n3;第三组件层级n3中的第一层级组件n3嵌套了第四组件层级n4中第一层级组件n4的所有内容,第一层级组件n3可以控制第一层级组件n4;第四组件层级n4中的第一层级组件n4嵌套了第五组件层级n5中第一层级组件n5的所有内容,第一层级组件n4可以控制第一层级组件n5。
[0093]
204、根据组件层级由低到高的顺序,将各个组件层级依次更新为当前组件层级,并确定当前组件层级的上一组件层级,以及将当前组件层级对应的第一层级组件插入上一组件层级对应第一层级组件的预设插槽中。
[0094]
在具体的应用场景中,第一层级组件中可配置预设插槽,预设插槽用于创建第一层级组件之间的挂载连接,挂载连接用于将当前数据结构层级下第一层级组件所产生的组件数据传输至上一数据结构层级中。在具体的应用场景中,每一个第一层级组件中留出一个固定的位置用于插入下一层级组件,并且下一层级组件用变量传入上一层级组件中,这样每一层级组件并不知道下层是什么结构,但都有一个或多个预设插槽可以插入下一层级组件,而下层的数据结构则由下一层级组件具体负责。这样每一层级组件与其他层级组件之间是解耦的,可以复用在其他任何地方。对于本实施例,在将当前组件层级对应的第一层级组件插入上一组件层级对应第一层级组件的预设插槽中时,可把下一层级组件插入的位置用本方案提供的另一个组件formaccess包裹起来,formaccess用于提供下层数据结构的挂载点。比如如果给formaccess组件一个属性name=”address”,则下一层级组件产生的数
据就会挂载在本层数据的address字段之下。
[0095]
205、重复上述过程,直至判定当前组件层级对应为最高组件层级,则完成对各个组件层级中第一层级组件的拼装,得到目标表单组件,并对目标表单组件进行渲染处理,得到目标数据表单。
[0096]
例如,承接实施例步骤203的实例,对于实施例步骤204、205,可按照组件层级由低到高的顺序,首先将第五组件层级n5更新为当前组件层级,将第四组件层级n4确定为第五组件层级n5的上一组件层级,将第五组件层级n5对应的第一层级组件n5插入上一组件层级对应第一层级组件n4的预设插槽中;在上述组件插入完成后,进一步将第四组件层级n4更新为当前组件层级,将第三组件层级n3确定为第四组件层级n4的上一组件层级,将第四组件层级n4对应的第一层级组件n4插入上一组件层级对应第一层级组件n3的预设插槽中;在上述组件插入完成后,进一步将第三组件层级n3更新为当前组件层级,将第二组件层级n2确定为第三组件层级n3的上一组件层级,将第三组件层级n3对应的第一层级组件n3插入上一组件层级对应第一层级组件n2的预设插槽中;在上述组件插入完成后,进一步将第二组件层级n2更新为当前组件层级,将第一组件层级n1确定为第二组件层级n2的上一组件层级,将第二组件层级n2对应的第一层级组件n2插入上一组件层级对应第一层级组件n1的预设插槽中;在上述组件插入完成后,进一步将第一组件层级n1更新为当前组件层级,鉴于第一组件层级n1无上一组件层级,即当前组件层级对应为最高组件层级,则此时可判定完成对各个组件层级中第一层级组件的拼装,得到目标表单组件,进一步通过对目标表单组件进行渲染处理,即可得到目标数据表单。
[0097]
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了又一种资源共享的处理方法,如图3所示,该方法包括:
[0098]
301、获取待生成的目标数据表单的数据结构,数据结构包括至少两个数据结构层级,至少两个数据结构层级间具有层级顺序。
[0099]
302、确定各个数据结构层级对应的第一层级组件。
[0100]
对于本实施例,确定各个数据结构层级对应第一层级组件的具体实现过程,可参见实施例步骤102中的描述,在此不再赘述。
[0101]
303、若判断至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级,则将联动逻辑写入高阶组件,利用高阶组件包裹目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件。
[0102]
其中,高阶组件(higher order component,hoc)是一个函数,接收一个组件,然后返回一个新的组件,即用一个组件包裹另外一个组件,得到一个新的组件。
[0103]
对于本实施例,可在至少两个数据结构层级中提取包含联动逻辑的目标数据结构层级,进一步将每个联动逻辑写一个高阶组件,在高阶组件中完成这个逻辑,然后用这个高阶组件包裹目标数据结构层级下的第一层级组件,得到该目标数据结构层级下的第二层级组件。需要说明的是,在用高阶组件向第一层级组件注入联动逻辑时,每一数据结构层级的联动逻辑最好分开写,然后分别包裹在每一数据结构层级的第一层级组件之外,这样有利于复用,当有问题需要排查时,也方便定位。
[0104]
304a、根据至少两个数据结构层级的层级顺序,确定第一层级组件和/或第二层级组件所属的组件层级。
[0105]
如图4所示,将数据结构进行层级拆分,得到五个数据结构层级,且五个数据结构层级按照层级顺序由高到低分别为:第一层、第二层、第三层、第四层、第五层;若基于实施例步骤303确定存在包含联动逻辑的目标数据结构层级为第二层和第四层,即在针对每一个数据结构层级确定对应的层级组件时,第一层、第三层、第五层可对应为不具有联动关系第一层级组件,第二层、第四层可对应为具有联动关系的第二层级组件。对于本实施例,可进一步可按照数据结构层级间的层级顺序,确定各个第一层级组件和/或第二层级组件所属的组件层级由高到低分别为:第一组件层级n1、第二组件层级n2、第三组件层级n3、第四组件层级n4、第五组件层级n5。即第一组件层级n1中的第一层级组件n1嵌套了第二组件层级n2中第二层级组件n2的所有内容,第一层级组件n1可以控制第二层级组件n2;第二组件层级n2中的第二层级组件n2嵌套了第二组件层级n3中第一层级组件n3的所有内容,第二层级组件n2可以控制第一层级组件n3;第三组件层级n3中的第一层级组件n3嵌套了第四组件层级n4中第二层级组件n4的所有内容,第一层级组件n3可以控制第二层级组件n4;第四组件层级n4中的第二层级组件n4嵌套了第五组件层级n5中第一层级组件n5的所有内容,第二层级组件n4可以控制第一层级组件n5。
[0106]
305a、利用高阶组件按照组件层级由低到高的顺序,依次将各个组件层级下的第一层级组件或第二层级组件确定为当前组件层级下的目标层级组件,将目标层级组件传入当前组件层级对应上一组件层级的第一层级组件或第二层级组件中,得到更新后的目标层级组件。
[0107]
306a、重复上述对目标层级组件的更新过程,直至判定目标层级组件传入最高组件层级对应的第一层级组件或第二层级组件中,判定完成对各个组件层级中第一层级组件或第二层级组件的拼装,得到目标表单组件,通过渲染目标表单组件,得到目标数据表单。
[0108]
例如,承接实施例步骤304a的实例,对于实施例步骤305a、306a,可按照组件层级由低到高的顺序,首先将第五组件层级n5更新为当前组件层级、第四组件层级n4确定为第五组件层级n5的上一组件层级,以及将第五组件层级n5对应的第一层级组件n5确定为目标层级组件,进一步将目标层级组件传入第四组件层级n4对应的第二层级组件n4中,得到更新后的目标层级组件;之后将第四组件层级n4更新为当前组件层级、第三组件层级n3确定为第四组件层级n4的上一组件层级,以及将第四组件层级n4中更新后的目标层级组件传入第三组件层级n3对应的第一层级组件n3中,得到又一次更新后的目标层级组件;之后将第三组件层级n3更新为当前组件层级、第二组件层级n2确定为第三组件层级n3的上一组件层级,以及将第三组件层级n3中更新后的目标层级组件传入第二组件层级n2对应的第二层级组件n2中,得到再一次更新后的目标层级组件;最后将第二组件层级n2更新为当前组件层级、第一组件层级n1确定为第二组件层级n2的上一组件层级,以及将第二组件层级n2中更新后的目标层级组件传入第一组件层级n1对应的第一层级组件n1中,得到又一次更新后的目标层级组件。鉴于第一组件层级n1无上一组件层级,即当前组件层级对应为最高组件层级,则此时可判定目标层级组件已传入最高组件层级对应的第一层级组件或第二层级组件中,进一步将最终更新后的目标层级组件确定为目标表单组件,进一步通过对目标表单组件进行渲染处理,即可得到目标数据表单。
[0109]
与实施例步骤304a对应的实施例步骤304b、按照至少两个数据结构层级间的层级顺序,向createform函数输入各个数据结构层级下的层级组件参数,利用createform函数
依据各个数据结构层级下的层级组件参数生成目标表单组件,层级组件参数包括组件层级、组件层级对应的第一层级组件或第二层级组件,以及组件的层级依赖,通过渲染目标表单组件,得到目标数据表单。
[0110]
在判断至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级,且经过实施例步骤303利用高阶组件向目标数据结构层级下的第一层级组件注入联动逻辑,得到具有联动关系的第二层级组件后,当采用实施例步骤304a至306a中所描述的方法对第一层级组件和第二层级组件进行拼装时,方式较为复杂。有鉴于于此,可利用createform函数生成组件拼装的快捷入口,具体的,可直接按照层级顺序向createform函数输入各个组件层级,各个组件层级对应的第一层级组件或第二层级组件,createform函数则会直接输出拼装完成的目标表单组件。通过createform函数,可以很方便快速的进行层级组件组合、联动逻辑注入。
[0111]
如图4所示,将数据结构进行层级拆分,得到五个数据结构层级,且五个数据结构层级按照层级顺序由高到低分别为:第一层、第二层、第三层、第四层、第五层;若基于实施例步骤303确定存在包含联动逻辑的目标数据结构层级为第二层和第四层,即在针对每一个数据结构层级确定对应的层级组件时,第一层、第三层、第五层可对应为不具有联动关系的第一层级组件,第二层、第四层可对应为具有联动关系的第二层级组件。对于本实施例,进一步可按照数据结构层级间的层级顺序,确定各个第一层级组件和/或第二层级组件所属的组件层级由高到低分别为:第一组件层级n1、第二组件层级n2、第三组件层级n3、第四组件层级n4、第五组件层级n5。进一步可依次向create form函数输入各个数据结构层级下的层级组件参数包括:第五组件层级n5、第五组件层级n5对应的第一层级组件n5;第四组件层级n4、第四组件层级n4对应的第二层级组件n4(具有联动关系);第三组件层级n3、第三组件层级n3对应的第一层级组件n3;第二组件层级n2对应的第二层级组件n2(具有联动关系);第一组件层级n1对应的第一层级组件n1。需要说明的是,在向create form函数输入各个数据结构层级下的层级组件参数时,还可按照各个第一层级组件和/或第二层级组件所属的组件层级由低到高的层级顺序,具体可根据实际应用场景进行确定,在此不进行具体的限定。其中,层级顺序用于表示层级组件间的层级依赖关系,即第五层依赖于第四层,第四层依赖于第三层,第三层依赖于第二层,第二层依赖于第一层。作为一种可选方式,还可在向createform函数输入各个数据结构层级下的层级组件参数时,不按照层级顺序输入,并在层级组件参数中增加层级依赖关系这一参数,即此时层级组件参数包括各个组件层级,各个组件层级对应的第一层级组件或第二层级组件,以及各个组件层级的层级依赖关系。
[0112]
在具体的应用场景中,为使在生成目标数据表单后,能够实现对目标数据表单动态联动应用,作为一种优选方式,实施例步骤具体还可以包括:实时监听目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;依据第二层级组件注入的联动逻辑,实时对与产生值变化的第二层级组件存在联动关系的其他层级组件的值进行调整。
[0113]
相应的,目标表单组件中配置有第一钩子函数(如react钩子usefieldschange和usefieldsvalue),在实时监听目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况时,实施例步骤具体还可以包括:调用第一钩子函数,实时监测目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;或,通过利用监听器监测预设字典
树中第一层级组件或第二层级组件对应树节点的变化,确定第一层级组件或第二层级组件的值的变化情况,其中,预设字典树是根据目标数据表单的数据结构预先生成的,字典树中的树节点对应第一层级组件或第二层级组件。
[0114]
其中,基于字典树的变化监听是根据开发者编写的表单结构(也可以说是数据结构)自动产生一个能够代表该结构的字典树。例如:一个数据结构是{name:string,address:{country:string,street:string}},则会自动产生相对应的字典树{name:watchers[],address:{children:{country:watchers[],street:watchers[]}},watchers是一个或多个监听变化的watcher,当country变化时,我们得到变化的路径[“address”,“country”],这样就可以顺着字典树找到对应的树节点,拿出watchers[],这个寻找过程非常迅速,因为我们已经有了目标路径,最后调用watcher实例的方法通知到监听器watcher。
[0115]
传统方案是当表单内容变化时,广播到每一组件,由每一个组件自行判断要做什么事情。但随着表单规模的增长,这种方式势必会消耗更多的性能,也就是一次广播的时间复杂度是o(n),n代表表单规模。而本技术提供的基于字典树的表单内容变化监听,不是广播而更像是搜索树,这样一来每次变化的处理时间与表单规模就无关了,只与树的高度有关。但实际情况下,表单不可能有太多层,根据历史开发经验,最大不超过6层,6层以上运营人员操作起来也很复杂,所以产品设计上就会尽量避免太多层的表单。即可以认为树的高度是有限的,也就可以认为每次变化处理的时间复杂度是o(1),比o(n)降低了一个数量级。
[0116]
相应的,在依据第二层级组件注入的联动逻辑,实时对与产生值变化的第二层级组件存在联动关系的其他层级组件的值进行调整时,实施例步骤具体可以包括:当监听到任一第二层级组件的值发生变化时,根据联动逻辑确定与产生值变化的第二层级组件存在联动关系,且组件层级小于第二层级组件对应组件层级的其他层级组件;对其他层级组件的值进行联动调整。
[0117]
例如,第二层级组件n1、第二层级组件n2、第二层级组件n4间存在联动关系,当监听到第二层级组件n2的值发生变化时,根据联动逻辑确定与产生值变化的第二层级组件存在联动关系,且组件层级小于第二层级组件n2对应组件层级的其他层级组件为第二层级组件n4,鉴于第二层级组件n2的组件层级高于第二层级组件n4,故当第二层级组件n2的值发生变化时,则可进一步对第二层级组件n4的值进行联动调整。如第二层级组件n2对应的数据内容为“城市”,第二层级组件n4对应的数据内容为“学校列表”,当第二层级组件n2的值由城市c更新为城市d时,第二层级组件n4的值也应联动更新为d城市所对应的学校列表。
[0118]
在具体的应用场景中,应对复杂的联动逻辑,传统方案往往是在表单最外层监听表单内部的变化,根据这些变化做相应的动作。这种方案有很多问题,其一、在最外层监听和处理逻辑,那么对于底层的组件控制力就比较弱,要控制它需要写很多额外代码;其二、这种方式只能监听数据变化,但是不能监听比如用户点击按钮事件等变化,如果要实现,需要写额外代码;其三、在多层数据结构的表单中,想要精确知道是哪一层变化比较麻烦,需要编写很多判断代码。以及在传统方案中,如果开发者想要改变表单数据只有一种办法,就是利用antd提供的一个工具,比如调用form.setfieldsvalue({

})就能够改变表单里的数据,但是这种方式在面对多层数据结构的表单时有很多弊端。首先比如想改变一个在数据结构中所处位置比较底层的数据,那么需要把整个数据完全复制一份,然后修改底层的
一处数据,最后再调用form.setfieldsvalue({完整数据})来进行修改,可以看到改一个小地方的代价很大;其次当像上面那样修改了数据之后,会导致整个组件树全部更新一遍,性能很差。
[0119]
有鉴于此,在本技术中,目标表单组件中还配置有第二钩子函数(如react钩子uselocalform),在操作表单(比如获取、设置表单的值)时,可通过调用react钩子uselocalform,获取一个表单操作对象,最方便的是,在哪一层调用,就能获取对应那一层数据结构的操作对象,所以在操作某一层数据时,无需考虑其他层级的数据长什么样子,只要考虑这一层就行了。同时监听数据变化也是一样,可通过调用目标表单组件中的第一钩子函数(如react钩子usefieldschange和usefieldsvalue),通过这两个钩子可以监听本层(也可以跨层)数据的变化,在数据变化时完成联动逻辑。通过本技术中的技术方案,针对上述传统方案的技术问题,本技术可简化表单数据操作难度,具体可实现一种增量操作,比如一个三层的数据结构,可以通过本方案提供的工具(react钩子uselocalform)获得一个只能操作第三层数据的表单控制器,这样种种操作都是从第三层开始,而无需复制完整的数据。此外,还可实现联动逻辑抽离,传统方案提供的监听数据变化的手段很少,也很僵硬。在消除多层数据结构带来的复杂度提升的前提下,本方案提供了两种react钩子usefieldschange、usefieldsvalue,能与数据结构层级结合使用,比如一个三层的数据结构,当开发第三层时,可以利用此工具监听第三层相关的数据变化,并且这些监听和相关的处理逻辑可以与第三层组件相互隔离开,这意味着联动逻辑和组件本身解耦了,极大提升了复用率。
[0120]
相应的,为了实现对目标数据表单的增量调整,实施例步骤具体还可以包括:接收用户通过调用第二钩子函数发送的增量操作请求,增量操作请求中携带有目标操作组件层级;响应于增量操作请求,输出目标操作组件层级下的表单操作对象,并根据用户操作对表单操作对象进行增量控制。
[0121]
借由上述数据表单生成方法,可在获取到待生成的目标数据表单的数据结构后,对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级,进而确定各个数据结构层级对应的第一层级组件,之后对至少两个数据结构层级中判定存在包含联动逻辑的目标数据结构层级进行联动逻辑注入,得到具有联动关系的第二层级组件;最后按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。通过本技术中的技术方案,针对层级嵌套较深或联动逻辑复杂的表单开发,可通过将数据表单以分层的形式开发,开发时仅需关心具体某一层的结构和逻辑,独立开发某一层的组件,无需考虑层级之间的关系。每一层相关的组件开发完毕后,通过把各层拼装组合起来就形成了完整的表单。这样无论真实结构有多少层,每次面对的数据结构只有一层,复杂度就不存在了,大大提高开发效率。并且将联动逻辑和组件本身解耦,可极大提升组件的复用率。
[0122]
进一步的,作为图1和图2所示方法的具体实现,本技术实施例提供了一种数据表单生成装置,如图5所示,该装置包括:获取模块41、确定模块42、判断模块43、第一处理模块44;
[0123]
获取模块41,可用于获取待生成的目标数据表单的数据结构,数据结构包括至少两个数据结构层级,至少两个数据结构层级间具有层级顺序;
[0124]
确定模块42,可用于确定各个数据结构层级对应的第一层级组件;
[0125]
判断模块43,可用于判断至少两个数据结构层级中是否存在包含联动逻辑的目标数据结构层级,若是,则将联动逻辑注入目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件;
[0126]
第一处理模块44,可用于按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。
[0127]
在具体的应用场景中,第一层级组件中包含预设插槽,预设插槽用于创建第一层级组件之间的挂载连接,挂载连接用于将当前数据结构层级下第一层级组件所产生的组件数据传输至上一数据结构层级中,若判断至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级,若判断模块判断至少两个数据结构层级中不存在包含联动逻辑的目标数据结构层级,如图6所示,装置还包括:第二处理模块45;
[0128]
第二处理模块45,可用于按照至少两个数据结构层级间的层级顺序,确定各个第一层级组件所属的组件层级;根据组件层级由低到高的顺序,将各个组件层级依次更新为当前组件层级,并确定当前组件层级的上一组件层级,以及将当前组件层级对应的第一层级组件插入上一组件层级对应第一层级组件的预设插槽中;重复上述过程,直至判定当前组件层级对应为最高组件层级,则完成对各个组件层级中第一层级组件的拼装,得到目标表单组件,并对目标表单组件进行渲染处理,得到目标数据表单。
[0129]
在具体的应用场景中,若判断至少两个数据结构层级中存在包含联动逻辑的目标数据结构层级,判断模块43,具体可用于将联动逻辑写入高阶组件,利用高阶组件包裹目标数据结构层级下的第一层级组件,得到具有联动关系的第二层级组件。
[0130]
在具体的应用场景中,如图6所示,第一处理模块44,包括:第一确定单元441、第二确定单元442、拼装单元443、渲染单元444;
[0131]
第一确定单元441,可用于根据至少两个数据结构层级的层级顺序,确定第一层级组件和/或第二层级组件所属的组件层级;
[0132]
第二确定单元442,可用于利用高阶组件按照组件层级由低到高的顺序,依次将各个组件层级下的第一层级组件或第二层级组件确定为当前组件层级下的目标层级组件,将目标层级组件传入当前组件层级对应上一组件层级的第一层级组件或第二层级组件中,得到更新后的目标层级组件;
[0133]
拼装单元443,可用于重复上述对目标层级组件的更新过程,直至判定目标层级组件传入最高组件层级对应的第一层级组件或第二层级组件中,判定完成对各个组件层级中第一层级组件或第二层级组件的拼装,得到目标表单组件;
[0134]
渲染单元444,可用于通过渲染目标表单组件,得到目标数据表单。
[0135]
相应的,如图6所示,第一处理模块44,还包括:输入单元445;
[0136]
输入单元445,可用于按照至少两个数据结构层级间的层级顺序,向createform函数输入各个数据结构层级下的层级组件参数,利用createform函数依据各个数据结构层级下的层级组件参数生成目标表单组件,层级组件参数包括组件层级、组件层级对应的第一层级组件或第二层级组件;
[0137]
渲染单元444,可用于通过渲染目标表单组件,得到目标数据表单。
[0138]
在具体的应用场景中,如图6所示,该装置还包括:监听模块46、调整模块47;
[0139]
监听模块46,可用于实时监听目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;
[0140]
调整模块47,可用于依据第二层级组件注入的联动逻辑,实时对与产生值变化的第二层级组件存在联动关系的其他层级组件的值进行调整。
[0141]
在具体的应用场景中,目标表单组件中配置有第一钩子函数,监听模块46,具体可用于:调用第一钩子函数,实时监测目标数据表单中每一个第一层级组件或第二层级组件的值的变化情况;或,通过利用监听器监测预设字典树中第一层级组件或第二层级组件对应树节点的变化,确定第一层级组件或第二层级组件的值的变化情况,其中,预设字典树是根据目标数据表单的数据结构预先生成的,字典树中的树节点对应第一层级组件或第二层级组件。
[0142]
在具体的应用场景中,调整模块47,具体可用于:当监听到任一第二层级组件的值发生变化时,根据联动逻辑确定与产生值变化的第二层级组件存在联动关系,且组件层级小于第二层级组件对应组件层级的其他层级组件;对其他层级组件的值进行联动调整。
[0143]
在具体的应用场景中,目标表单组件中配置有第二钩子函数,装置还包括:接收模块48、控制模块49;
[0144]
接收模块48,可用于接收用户通过调用第二钩子函数发送的增量操作请求,增量操作请求中携带有目标操作组件层级;
[0145]
控制模块49,可用于响应于增量操作请求,输出目标操作组件层级下的表单操作对象,并根据用户操作对表单操作对象进行增量控制。
[0146]
需要说明的是,本实施例提供的一种数据表单生成装置所涉及各功能单元的其他相应描述,可以参考图1至图3的对应描述,在此不再赘述。
[0147]
基于上述如图1至图3所示方法,相应的,本实施例还提供了一种非易失性存储介质,其上存储有计算机可读指令,该可读指令被处理器执行时实现上述如图1至图3所示的数据表单生成方法。
[0148]
基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景的方法。
[0149]
基于上述如图1至图3所示的方法和图5、图6所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种计算机设备,如图7所示,该计算机设备包括处理器(processor)51、通信接口(communications interface)52、存储器(memory)53、以及通信总线54。其中:处理器51、通信接口52、以及存储器53通过通信总线54完成相互间的通信。通信接口54,用于与其它设备比如客户端或其它服务器等的网元通信。处理器51,用于执行程序,具体可以执行上述前端接口请求的处理方法实施例中的相关步骤。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。处理器51可能是处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0150]
可选的,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏
(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)等。
[0151]
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0152]
非易失性存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现非易失性存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
[0153]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。
[0154]
通过应用本技术的技术方案,与目前现有技术相比,本技术可在获取到待生成的目标数据表单的数据结构后,对数据结构进行拆分,得到至少两个具有层级顺序的数据结构层级,进而确定各个数据结构层级对应的第一层级组件,之后对至少两个数据结构层级中判定存在包含联动逻辑的目标数据结构层级进行联动逻辑注入,得到具有联动关系的第二层级组件;最后按照层级顺序拼装第一层级组件和/或第二层级组件,并对拼装生成的目标表单组件进行渲染处理,得到目标数据表单。通过本技术中的技术方案,针对层级嵌套较深或联动逻辑复杂的表单开发,可通过将数据表单以分层的形式开发,开发时仅需关心具体某一层的结构和逻辑,独立开发某一层的组件,无需考虑层级之间的关系。每一层相关的组件开发完毕后,通过把各层拼装组合起来就形成了完整的表单。这样无论真实结构有多少层,每次面对的数据结构只有一层,复杂度就不存在了,大大提高开发效率。并且将联动逻辑和组件本身解耦,可极大提升组件的复用率。
[0155]
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0156]
上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1