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

生成表单的方法、装置及电子设备与流程

2022-06-08 12:38:19 来源:中国专利 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.图1为本技术实施例提供的表单生成的方法的步骤流程图;
48.图2为本技术实施例提供中得到目标代码的实际应用流程图;
49.图3为本技术实施例提供的基于数据驱动递归遍历渲染数组的流程图;
50.图4为本技术实施例提供的生成表单的装置的结构框图。
具体实施方式
51.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
53.在本技术的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
54.参见图1,本技术实施例提供了一种生成表单的方法,该方法包括:
55.步骤101:基于用户输入的多项配置信息的数据类型,确定每项配置信息对应的目标表单元素。
56.本步骤中,用户输入的多项配置信息为用户基于目标表单的设计需求输入的满足该设计需求的信息。其中,设计需求包括目标表单中涉及哪些表单元素,但不限于此。例如在表单开发过程中,首先基于表单的设计需求创建表单的视觉稿。用户将基于表单的视觉稿输入配置信息。数据类型可以包括字符串类型、枚举类型、整数类型等基本数据类型。可以理解的是,表单元素为构成表单的元素,通常包括输入框、下拉选择框、单选框、多选框等。目标表单元素为基于配置信息的数据类型确定的,与配置信息对应的表单元素。例如基于某项配置信息的数据类型,确定该项配置信息对应的表单元素为输入框,则输入框即为目标表单元素,该项配置信息对应输入框。
57.由于目标表单的设计需求包含了目标表单中涉及的表单元素,配置信息为用户基于目标表单的设计需求输入的信息,且目标表单元素是基于配置信息确定的,所以确定的目标表单元素即为目标表单中的表单元素。举例而言,目标表单中需要一输入框,用户通过目标表单的视觉稿可以看到该输入框,进而针对输入框输入第一配置信息。基于第一配置信息的数据类型,可以确定第一配置信息对应的目标表单元素为输入框。值得注意的是,每项配置信息可以对应至少一个目标表单元素。
58.步骤102:针对每一目标表单元素,根据目标表单元素的校验规则以及对应目标表单元素的配置信息,生成用于将目标表单元素渲染至目标表单的目标代码。
59.本步骤中,由于存在多项配置信息,每项配置信息对应各自的目标表单元素,因此将存在多个目标表单元素。这里,针对每一目标表单元素分别进行处理,得到每一目标表单元素的目标代码,即用于将目标表单元素渲染至目标表单的代码。其中,针对不同目标表单
元素的处理过程类似,区别在于各目标表单元素对应的配置信息不同且校验规则也不同。具体的,可以预先创建不同表单元素的校验规则,在确定目标表单元素之后,基于查找对应的校验规则进行使用。例如,针对输入框、下拉选择框、单选框、多选框等多个表单元素分别创建各自对应的校验规则。在确定目标表单元素为输入框时,利用输入框对应的校验规则和对应输入框的配置信息,生成用于将输入框渲染至目标表单的目标代码。可以理解的是,每一表单元素具有一校验规则,该校验规则用于校验表单元素中输入的信息是否有效或正确,例如针对仅能够输入数字的输入框,校验规则即为校验该输入框中输入的信息是否为数字,若是数字则有效或正确。
60.步骤103:基于数据驱动选取各目标表单元素的目标代码进行渲染,生成目标表单。
61.本步骤中,在选取目标表单元素的目标代码进行渲染时,并非按照表单元素在目标表单中的位置从上往下依次选择进行渲染,而是利用了数据驱动的思想,按照合理的顺序选取各目标表单元素的目标代码进行渲染。由于基于各目标表单元素的目标代码确定的视图是由数据驱动生成的,因此可以对视图的修改,无需直接操作dom(文档对象模型,document object model)。例如当某一目标表单元素为单选框时,将涉及多个不同的选项,且每个选项对应一个子表单。在利用数据驱动时,此时只需基于用户选择的选项调整一预设字段的字段值,然后基于预设字段当前的字段值选取对应的子表单进行渲染即可。
62.本技术实施例中,用户可以根据目标表单的设计需求输入多项配置信息,从而基于配置信息的数据类型确定每项配置信息对应的目标表单元素,即自动确定构成目标表单的各目标表单元素,进而针对每一目标表单元素,根据目标表单元素的校验规则以及对应目标表单元素的配置信息,生成用于将目标表单元素渲染至目标表单的目标代码。无需开发人员编写目标代码,而是基于配置信息自动生成各目标表单元素的目标代码。同时,由于不需要编程,只需输入配置信息即可,因此也降低了对用户的要求。最后基于数据驱动选取各目标表单元素的目标代码进行渲染,生成目标表单,利用数据驱动的思想对各目标表单元素进行渲染,可以大大降低代码量以及开发过程的复杂度,提升开发效率,满足日益增多的表单开发需求。
63.可选地,基于用户输入的多项配置信息的数据类型,确定每项配置信息对应的目标表单元素,包括:
64.针对每项配置信息,创建配置信息对应的配置对象。
65.本步骤中,创建配置对象的过程即为将配置信息转换为代码执行过程中可识别的对象的过程。其中,对象可以理解为类的实例化。例如预先创建一个类,该类包括name字段,lable字段以及type字段;在用户分别输入三段信息的情况下,针对三段信息创建的配置对象即为上述类实例化的结果,且实例化后包括name字段,lable字段以及type字段,每一字段包含一段信息。在代码执行过程中针对配置对象,可以基于字段获取其中的信息进行使用。
66.由于存在多项配置信息,因此可以创建多个配置对象,并且可以记录配置信息与配置对象的对应关系,从而在已知配置信息的情况下,可以确定其对应的配置对象;同样,在已知配置对象的情况下,可以确定其对应的配置关系。
67.针对每个配置对象,基于配置对象中目标字段的数据类型,确定配置对象对应的
表单元素。
68.本步骤中,目标字段为预先设定的配置对象中的某一个或多个字段。例如配置对象中均设置有type字段,用于记录用户输入信息的数据类型,则该目标字段可以为type字段,但不限于此。可以理解的是,该目标字段的数据类型,可以反映出配置对象对应的表单元素,从而基于目标字段的数据类型可以确定每一配置对象对应各自的表单元素。
69.针对每个配置对象,将配置对象对应的表单元素,确定为对应配置对象的配置信息对应的目标表单元素。
70.本步骤中,配置对象基于配置信息生成,因此配置对象与配置信息具有对应关系,从而在已知配置对象的情况下,可以确定其对应的配置信息,同样在已知配置信息的情况下,可以确定其对应的配置对象。配置对象与目标表单元素同样具有对应关系,从而将配置对象作为中间数据,可以确定配置信息对应的目标表单元素。例如配置信息a对应配置对象b,配置对象b对应目标表单元素c;配置信息d对应配置对象e,配置对象e对应目标表单元素f,则配置信息a对应目标表单元素c,配置信息d对应目标表单元素f。
71.本技术实施例中,将配置信息转换为对象结构的配置对象,基于配置对象中目标字段的数据类型可以确定配置对象对应的表单元素,进而将配置对象作为中间数据,可以确定配置信息对应的目标表单元素。
72.可选地,针对每个配置对象,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素,包括:
73.在每一配置对象均为有效配置对象的情况下,针对每个配置对象,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素;
74.应当说明的是,配置对象为有效配置对象包括配置对象符合预设有效校验策略。可以理解的是,为避免配置对象的数据格式和/或数据内容存在问题,导致后续无法识别该配置对象,需要校验每一配置对象的有效性,仅在所有配置对象均为有效配置对象的情况下才会进行后续步骤,否则结束流程或发出提示消息,该预设有效校验策略为预先设置的有效校验策略,用于校验配置对象的有效性即配置对象是否为有效配置对象。具体的,有效校验策略可以包括校验配置对象的数据格式是否为有效的json(js对象简谱,javascript object notation,)格式,配置对象的类型是否为可选类型,配置对象中是否具有必要字段,其中,可选类型为预先定义的至少一种对象类型,必要字段为预先定义的至少一个字段。
75.本技术实施例中,对配置对象进行校验,仅在所有配置对象均为有效配置对象的情况下进行后续步骤,从而可以减少由于配置对象无效导致无法识别配置对象进而最终无法生成目标表单的情况发生。
76.可选地,针对每一目标表单元素,根据目标表单元素的校验规则以及对应目标表单元素的配置信息,生成用于将目标表单元素渲染至目标表单的目标代码,包括:
77.创建包含每个配置对象的配置数组,其中,每个配置对象包括至少一个元素节点,配置对象对应的表单元素包括配置对象中每一元素节点对应的表单元素。
78.应当说明的是,在确定各配置对象之后,创建包含各配置对象的配置数组,配置数组中每个元素即为一个配置对象。将各配置对象转换为数组的形式便于程序的处理。配置对象中的数据内容可以对应一个表单元素,也可以对应多个表单元素。可以将对应一个表
单元素的数据内容视为一个元素节点,从而将各配置对象统一到元素节点层面,即将多层级的目标表单中视为单一层级的表单进行处理。
79.在每一配置对象均包括一个元素节点的情况下,目标表单为单一层级的表单,否则目标表单为多层级的表单。对于多层级的表单,这里以两个层级的表单为例进行说明,当表单中嵌套有一子表单时,则该表单视为两个层级的表单。表单的层级可以基于表单中嵌入的子表单的层数确定,上述举例中表单嵌套一层子表单,则层级为两层,若子表单中仍嵌套有一层子表单,则层级为三层,以此类推。这里,基于配置对象中元素节点的情况确定多层级表单。具体的,在某一配置对象对应一数组,且该数组的每一元素为一元素节点,且剩余配置对象均包含一个元素节点的情况下,则目标表单为两个层级的表单。在某一配置对象对应第一数组,且该第一数组的某一个元素对应第二数组,且第二数组中每一个元素为一元素节点,且第一数组中剩余元素均为一个元素节点,且剩余配置对象均包含一个元素节点的情况下,则目标表单为三个层级的表单。
80.递归遍历配置数组中的每一元素节点,对每一元素节点添加表征元素节点对应的表单元素的校验规则的规则代码,生成包含每一表单元素的目标代码的渲染数组,其中,渲染数组中每一表单元素的目标代码用于将表单元素渲染至目标表单。
81.应当说明的是,递归遍历即为在遍历过程中对某些元素进行递归处理。在配置数组中目标配置对象对应一数组,且该数组的每一元素为一元素节点,且剩余配置对象均包含一个元素节点的情况下,递归遍历配置数组即为访问配置数组中的每一个元素,在该元素为元素节点的情况下,对该元素节点进行目标处理;在该元素对应一数组的情况下,对该数组进行与配置数组相同的处理操作,即访问该数组中的每一个元素,在该元素为元素节点的情况下,对该元素节点进行目标处理,直至该数组中的元素全部被访问之后,继续访问配置数组中未被访问的元素,直至配置数组中的所有元素均被访问。对元素节点进行目标处理,即为对元素节点添加表征元素节点对应的表单元素的校验规则的规则代码,生成包含表单元素的目标代码的渲染数组。
82.可以理解的是,在对配置数组进行递归遍历之后,配置数组中各个元素以及元素中包含的元素均进行了转换,得到了同一层级的目标代码。
83.本技术实施例中,利用遍历递归的方式对配置对象进行处理,可以将配置对象中不同层级的元素节点统一到同一个层级上,从而便于对多层级表单的处理。
84.可选地,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素,包括:
85.在配置对象中目标字段的数据类型为枚举类型,且字段值为布尔值的情况下,配置对象对应的表单元素为单选按钮。
86.在配置对象中目标字段的数据类型为枚举类型,且字段值为字符的情况下,配置对象对应的表单元素为选择框。
87.应当说明的是,在配置对象中目标字段的数据类型为枚举类型的情况下,通常包括多个枚举成员。因此,该配置对象对应的表单元素为具有多个选项的表单元素。而具有多个选项的表单元素存在多个,例如可以为单选按钮(audio)、选择框(slect)。可以理解的是,单选按钮只能选择一个选项,其值为布尔值,而选择框并非如此,其值通常为字符,因此,基于字段值可以确定配置对象对应的表单元素是单选按钮还是选择框。当然,在配置对
象中目标字段的数据类型为字符串类型,且不存在枚举类型的数据项时,该配置对象对应的表单元素为输入框。
88.本技术实施例中,在配置对象中目标字段的数据类型为枚举类型的情况下,基于字段值可以准确确定配置对象对应的表单元素。
89.可选地,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素,包括:
90.在配置对象中目标字段的数据类型为预设业务类型的情况下,配置对象对应的表单元素为对应预设业务类型的预设表单元素。
91.应当说明的是,在一些业务场景下,目标表单元素可能为业务方自定义的表单元素,即并非常规的下拉框、输入框、单选框等表单元素。因此,这里预先设置业务方自定义的表单元素以及对应其的预设业务类型,从而可以实现目标表单中业务方自定义表单元素的添加。
92.本技术实施例中,基于业务需求预先设置的业务类型以及对应业务类型的表单元素,可以实现目标表单中业务方自定义表单元素的添加。
93.如图2所示,为本技术实施例中得到目标代码的实际应用流程图,包括:
94.步骤201:遍历配置数组,其中,该配置数组即为上述发明实施例中的配置数组,关于配置数组的生成过程参见以上描述,这里不再赘述。
95.步骤202:判断配置数组中各元素对应的配置信息是否均为有效配置信息,其中,判断配置信息是否为有效配置信息的过程参见以上描述,这里不再赘述。在配置数组中各元素对应的配置信息均为有效配置信息时执行步骤203,否则结束流程或显示提示信息,提示用户重新输入配置信息。
96.步骤203,执行循环处理,每次循环获取一个新元素,即遍历配置数组。
97.步骤204:判断获取的新元素是否为自定义的对象类型,这里自定义的对象类型可以为预先基于基础表单元素定义的对象类型。这里,实质是判断新元素中是否为基础表单元素。这里的基础表单元素包括输入框、下拉框、单选框等表单元素。若是则执行步骤205,若否则执行步骤206。
98.步骤205:进行第一目标处理,即利用新元素对应的基础表单元素的校验规则以及新元素,生成将新元素对应的基础表单元素渲染至目标表单的目标代码。进行下一次循环,重新获取新元素。
99.步骤206:判断新元素是否包含多个自定义对象类型的元素,即判断新元素是否对应一数组,若是则执行步骤207,若否则执行步骤208。
100.步骤207:递归处理,即对该元素对应的数组执行与配置数组相同的操作,直至针对数组中每一元素均生成相应的目标代码为止。然后基于步骤203进行下一轮循环,重新获取新元素。
101.步骤208:判断新元素是否为业务类型,若是则执行步骤209,若否则执行步骤210。
102.步骤209:第二目标处理,这里针对的表单元素为业务方自定义的表单元素,非基础表单元素,因此,第二目标处理为基于业务方自定义的表单元素的校验规则以及新元素,生成新元素的目标代码。
103.步骤210:在对配置数组中的每一元素均进行处理之后,进行默认值处理。记录各
表单元素对应的默认值,从而在生成目标表单之后,将默认值填入生成的目标表单中。
104.本技术实施例中,对多层嵌套的深度表单,不产生副作用,表单渲染、规则校验等都等同于单一层级表单。进一步可以对搜索功能以及表单填写功能,提出高度抽离可复用的方案,可以减少此同类功能的反复开发,同时也能实现对于扩展字段配置项的灵活增加。
105.可选地,基于数据驱动选取各目标表单元素的目标代码进行渲染,生成目标表单,包括:
106.基于数据驱动递归遍历渲染数组中每一表单元素的目标代码,将每一表单元素的目标代码渲染至同一表单,生成目标表单。
107.应当说明的是,基于数据驱动递归遍历渲染数组的过程与前述步骤中递归遍历配置数组的过程类似,不同之处在于,对递归遍历到的元素的处理方式不同,这里处理方式与渲染相关。且选取元素的方式不同,这里基于数据驱动选取元素。下面以一具体实例对基于数据驱动递归遍历渲染数组的过程进行说明,如图3所示,为本技术实施例提供的基于数据驱动递归遍历渲染数组的流程图,包括:
108.步骤301:遍历渲染数组,应当说明的是,图2所示实施例中针对配置数组生成目标代码的过程可以理解为将配置数组转换为可以用于数据驱动渲染的渲染数组的过程。渲染数组即为配置数组转换后的数组。转换过程参见图2,这里不再赘述。
109.步骤302:取得新元素,即遍历渲染数组时,当前访问的元素。
110.步骤303:判断取得的新元素是否为有效元素,若是则执行步骤304,若否则结束或报错。有效元素即为可以被识别并处理的元素。
111.步骤304:判断新元素是否为基础类型,即新元素是否为对应基础表单元素的配置对象转换而来。若是则执行步骤305,若否则执行步骤306。
112.步骤305:进行基础组件渲染,即利用对基础表单元素的渲染方式对新元素进行渲染。
113.步骤306:是否为自定义业务类型,即新元素是否为对应业务方自定义的表单元素的配置对象转换而来。若是则执行步骤307,若否则执行步骤308。
114.步骤307:通知业务层进行渲染,也就是基于业务方提供的表单元素的渲染方式对新元素进行渲染。
115.步骤308:是否为数组或对象,即是否包含多个其他元素。若是则执行步骤309,若否则执行步骤310。
116.步骤309:递归处理,以新元素对应数组为例进行说明。将新元素对应的数组按照渲染数组的方式进行处理。直至将新元素对应的数组中的所有元素渲染为止。
117.步骤310:判断新元素是否为渲染数组的最后一个元素,若是则结束,若否则执行步骤302,重新获取新元素,直至访问过渲染数组的所有元素为止。
118.本技术实施例中,利用遍历递归的方式对渲染数组进行处理,同时结合数据驱动的方式选取渲染数组中的元素,可以降低代码量,大大提升开发效率。
119.参见图4,本技术实施例还提供了一种生成表单的装置,该装置包括:
120.配置模块41,用于基于用户输入的多项配置信息的数据类型,确定每项配置信息对应的目标表单元素;
121.处理模块42,用于针对每一目标表单元素,根据目标表单元素的校验规则以及对
应目标表单元素的配置信息,生成用于将目标表单元素渲染至目标表单的目标代码;
122.渲染模块43,用于基于数据驱动选取各目标表单元素的目标代码进行渲染,生成目标表单。
123.可选地,配置模块41,包括:
124.第一配置单元,用于针对每项配置信息,创建配置信息对应的配置对象;
125.第二配置单元,用于针对每个配置对象,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素;
126.第三配置单元,用于针对每个配置对象,将配置对象对应的表单元素,确定为对应配置对象的配置信息对应的目标表单元素。
127.可选地,第二配置单元,具体用于在每一配置对象均为有效配置对象的情况下,针对每个配置对象,基于配置对象中目标字段的数据类型,确定配置对象对应的表单元素;
128.其中,配置对象为有效配置对象包括配置对象符合预设有效校验策略。
129.可选地,处理模块42,包括:
130.第一处理单元,用于创建包含每个配置对象的配置数组,其中,每个配置对象包括至少一个元素节点,配置对象对应的表单元素包括配置对象中每一元素节点对应的表单元素;
131.第二处理单元,用于递归遍历配置数组中的每一元素节点,对每一元素节点添加表征元素节点对应的表单元素的校验规则的规则代码,生成包含每一表单元素的目标代码的渲染数组,其中,渲染数组中每一表单元素的目标代码用于将表单元素渲染至目标表单。
132.可选地,第二配置单元,具体用于在配置对象中目标字段的数据类型为枚举类型,且字段值为布尔值的情况下,配置对象对应的表单元素为单选按钮;在配置对象中目标字段的数据类型为枚举类型,且字段值为字符的情况下,配置对象对应的表单元素为选择框。
133.可选地,第二配置单元,具体用于在配置对象中目标字段的数据类型为预设业务类型的情况下,配置对象对应的表单元素为对应预设业务类型的预设表单元素。
134.可选地,渲染模块43,具体用于基于数据驱动递归遍历渲染数组中每一表单元素的目标代码,将每一表单元素的目标代码渲染至同一表单,生成目标表单。
135.本技术实施例提供的生成表单的装置能够实现图1至图3的方法实施例中生成表单的方法实现的各个过程,为避免重复,这里不再赘述。
136.本技术的实施例中,用户可以根据目标表单的设计需求输入多项配置信息,从而基于配置信息的数据类型确定每项配置信息对应的目标表单元素,即自动确定构成目标表单的各目标表单元素,进而针对每一目标表单元素,根据目标表单元素的校验规则以及对应目标表单元素的配置信息,生成用于将目标表单元素渲染至目标表单的目标代码。无需开发人员编写目标代码,而是基于配置信息自动生成各目标表单元素的目标代码。同时,由于不需要编程,只需输入配置信息即可,因此也降低了对用户的要求。最后基于数据驱动选取各目标表单元素的目标代码进行渲染,生成目标表单,利用数据驱动的思想对各目标表单元素进行渲染,可以大大降低代码量以及开发过程的复杂度,提升开发效率,满足日益增多的表单开发需求。
137.另一方面,本技术实施例还提供了一种电子设备,包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上
述各申请实施例提供的生成表单的方法。
138.再一方面,本技术实施例还提供了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上各申请实施例提供的生成表单的方法。
139.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
140.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
141.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
142.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献