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

文档序号:29263009发布日期:2022-03-16 12:46阅读:93来源:国知局
表单生成方法、装置、电子设备及存储介质与流程

1.本公开涉及互联网技术领域,尤其涉及一种表单生成方法、装置、电子设备及存储介质。


背景技术:

2.在互联网时代,表单是一种收集统计信息的常用手段,有着很广泛的应用场景。比如,以选择项为主的问卷调查类表单、收集用户信息的活动报名表单等。
3.由于表单的数据结构与json格式数据匹配,相关技术中,通常以json的数据格式描述表单,并按照数据结构描述顺序依次渲染。其中,json是一种轻量级的数据格式。但相关技术的表单渲染的时效性较差,且只能够实现基础组件(如输入框,下拉选择框等)之间的简单嵌套,无法满足更加复杂的组合逻辑,从而无法满足实际生产中的各种差异化场景的需求。


技术实现要素:

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.其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的表单生成方法。
51.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如上述任一实施方式所述的表单生成方法。
52.根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式所述的表单生成方法。
53.本公开的实施例提供的技术方案至少带来以下有益效果:
54.本公开实施例中响应于目标页面对应的目标表单的表单生成指令,获取目标表单对应的待渲染的混合组件的第一配置信息,该待渲染的混合组件基于第一文本组件(该第一文本组件用于展示第一文本)和目标组件组合而成,可以根据该第一配置信息,在目标页面上渲染该混合组件,从而得到该目标表单。本公开实施例由于可以直接根据待渲染的混合组件的第一配置信息,在目标页面上渲染该混合组件,提高了表单渲染的时效性;再者,由于混合组件基于第一文本组件和目标组件组合而成,实现了组件与文本的穿插使用,从而满足更加复杂的组合逻辑,进而满足实际生产中的各种差异化场景的需求;此外,由于是根据第一配置信息渲染得到表单,可以根据实际需求配置不同的第一配置信息,从而渲染得到不同的表单,进一步满足实际生产中的各种差异化场景的需求。
55.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
56.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
57.图1是根据一示例性实施例示出的一种表单生成方法的应用环境图。
58.图2是根据一示例性实施例示出的一种表单生成方法的流程图。
59.图3是根据一示例性实施例示出的一种混合组件的配置信息的示意图。
60.图4是根据一示例性实施例示出的一种基于上述第一配置信息,在上述目标页面上渲染上述混合组件,得到目标表单的流程图。
61.图5是根据一示例性实施例示出的一种基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件的流程图。
62.图6是根据一示例性实施例示出的另一种基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件的流程图。
63.图7是根据一示例性实施例示出的另一种表单生成方法的流程图。
64.图8是根据一示例性实施例示出的一种第二配置信息的示意图。
65.图9是根据一示例性实施例示出的一种配置文件的示意图。
66.图10是根据一示例性实施例示出的一种通过渲染器解析得到的表单模型。
67.图11是根据一示例性实施例示出的一种第二表单示意图。
68.图12是根据一示例性实施例示出的一种表单渲染装置框图。
69.图13是根据一示例性实施例示出的一种用于表单渲染的电子设备的框图。
具体实施方式
70.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
71.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
72.请参阅图1,图1是根据一示例性实施例示出的一种表单生成方法的应用环境图,该应用环境可以包括客户端01和服务器02。其中,客户端01可以用于响应于基于目标页面触发的目标表单的表单生成指令,获取待渲染的混合组件对应的第一配置信息;以及用于基于上述第一配置信息,在上述目标页面上渲染上述混合组件,得到上述目标表单。可选地,该客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、智能可穿戴设备等终端设备。
73.其中,服务器02可以用于为客户端01提供后台服务。可选地,该服务器02可以是包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
74.需要说明的是,上述应用环境仅仅是一种示例,本公开实施例还可以包括其他应用环境。
75.图2是根据一示例性实施例示出的一种表单生成方法的流程图,如图2所示,该表单生成方法用于图1中的客户端中,包括以下步骤。
76.在步s11中,响应于目标页面对应的目标表单的表单生成指令,获取上述目标表单对应的待渲染的混合组件的第一配置信息;上述混合组件基于第一文本组件和目标组件组合而成,上述目标组件包括至少一个基础组件,上述基础组件表征单个非文本组件,上述第一文本组件用于展示第一文本。
77.可选地,本公开实施例可以采用多种方式响应于目标页面对应的目标表单的表单生成指令,获取上述第一配置信息,本公开实施例对此不做具体限定。
78.在一种方式中,客户端可以响应于用户基于目标页面触发的目标表单的表单生成指令,从而获取上述第一配置信息。
79.在另一种方式中,客户端还可以自动定时触发并响应该表单生成指令,获取上述第一配置信息。
80.可选地,目标页面可以包括但不限于:浏览器中的网页、短视频中的页面等。相应地,表单可以为浏览器网页中的网页表单、短视频页面中的表单等。
81.具体地,基础组件(component)是对数据和方法的简单封装,在网页表单中,可以将网页表单中需要展示的元素的功能的展示效果,以数据和方法的方式进行封装,得到对应的组件。例如,在网页表单中,可以将网页表单中需要展示的元素的功能的展示效果,以数据和方法的方式进行封装,得到对应的基础组件。例如,网页表单中需要一个发生按钮,点击该按钮后能够实现将数据发送至目标端的目的,则可以将按钮的功能和展示效果以数据和方法的方式进行封装,得到该发送按钮对应的组件,该按钮的功能包括但不限于对发送接口的调用方法。
82.示例性地,上述基础组件可以包括但不限于:输入框(input),下拉选择框(select),图片上传组件(imguploader)等。具体地,上述基础组件可以为表单的基本单元,其为单个非文本组件。
83.可以理解的是,第一文本组件与基础组件不同,第一文本组件是一个纯展示的组件,其表征的是文本类型,用于展示第一文本,即用于纯文本的展示。例如,即时通信软件的聊天框中的文字等。
84.本公开实施例中,可以采用多种方式实现第一文本组件和目标组件的组合,本公开实施例不做具体限定。
85.在一种方式中,可以将第一文本组件和目标组件按照预设顺序依次排列组合,得到该混合组件。其中,该预设顺序可以为组件渲染时需要被渲染的顺序。
86.示例性地,混合组件可以为第一文本组件与一个基础组件所组合而成的组件。例
如,混合组件由第一文本组件和一个基础组件按序组合而成。
87.示例性地,混合组件也可以为第一文本与至少两个基础组件所组合而成的组件。例如,混合组件由基础组件1、第一文本组件、基础组件2按序依次排列组合而成。
88.可选地,上述第一配置信息可以为描述表单中的文字、图形和图像等界面元素的显示结构,每个文本组件和基础组件在配置信息中均具有相应的描述信息。
89.图3是根据一示例性实施例示出的一种混合组件的配置信息的示意图。如图3所示,该混合组件基于第一文本组件和基础组件组合而成。该配置信息中包含文本组件和各个基础组件的组件描述信息,该组件描述信息可以包括但不限于:component、label、key、props、max、template。
90.其中,component表示组件类型(component=complexcomp时为混合组件);label表示组件的业务含义,key为键值,表示组件所在的表单提交时,组件的唯一标示英文字符;props表示每个组件的特有属性(如图3所示,输入框对应有空白描述);max表示最大值属性;template表示的是一个模块字符串,提供了组件混合的能力。
91.在步骤s13中,基于上述第一配置信息,在上述目标页面上渲染上述混合组件,得到上述目标表单。
92.可选地,可通过渲染器对第一配置信息进行解析,从而解析该混合组件,进行在页面上渲染上述混合组件,得到目标表单。
93.本公开实施例中,由于可以直接根据待渲染的混合组件的第一配置信息,在目标页面上渲染该混合组件,提高了表单渲染的时效性;再者,由于混合组件基于用于展示第一文本的第一文本组件和目标组件组合而成,实现了组件与文本的穿插使用,从而满足更加复杂的组合逻辑,进而满足实际生产中的各种差异化场景的需求;此外,由于是根据第一配置信息渲染得到表单,可以根据实际需求配置不同的第一配置信息,从而渲染得到不同的表单,进一步满足实际生产中的各种差异化场景的需求。
94.图4是根据一示例性实施例示出的一种基于第一配置信息,在上述目标页面上渲染上述混合组件,得到上述目标表单的流程图。如图4所示,在一个可行的实施例中,在上述步骤s13中,上述基于上述第一配置信息,在上述目标页面上渲染上述混合组件,得到上述目标表单,可以包括:
95.在步骤s1301中,解析上述第一配置信息,得到模板字符信息;上述模板字符信息包括上述目标组件的标识信息。
96.在步骤s1303中,基于文本渲染模式,在上述目标页面上渲染上述模板字符串中除上述标识信息之外的信息,并基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件,得到上述目标表单;上述除上述标识信息之外的信息包括上述第一文本组件。
97.可选地,在组件渲染的时候,可以按照混合组件中组件的组合顺序,依次对组件进行渲染。例如,混合组件由基础组件1、第一文本组件、基础组件2按顺序组合而成,则渲染的时候,会依次读取相应的配置信息进行渲染。
98.具体地,可以解析该第一配置信息,得到模板字符信息(比如,图3中的模板字符串template),该模板字符信息可以包括目标组件的标识信息,以及除了该目标组件的标识信息之外的信息。
99.示例性地,该标识信息可以包括但不限于:${xxx}、{{xxx}}、@{}等。
100.示例性地,上述除了该目标组件的标识信息之外的信息,通常为包括第一文本组件的文本信息。
101.具体地,上述除了该目标组件的标识信息之外的信息可以为非匹配部分,对于非匹配部分,可以将其作为普通的文本text进行渲染。
102.示例性地,可以基于文本渲染模式,渲染上述模板字符串中除上述标识信息之外的信息,该文本渲染模式可以包括但不限于:兼容模式、标准模式、几乎标准模式等。
103.具体地,上述目标组件的标识信息可以为匹配部分,对于匹配部分,可以通过该标识信息和该组件属性信息,渲染该目标组件。
104.示例性地,该组件属性信息可以为图3中的children属性,该children属性用于存放混合组件中包含的所有组件信息,在解析模板字符信息时使用。
105.以下,继续以图3为例,对上述步骤s1301-上述步骤s1303进行说明:
106.在获取到如图3所示的第一配置信息之后,可以解析该第一配置信息,从该第一配置信息中找到模板字符信息(即图3中的template),该template中包含目标组件的标识信息(即图3中的${subtitle}),以及除了该标识信息以外的信息(即图3中的子模块1的标题、子模块1的类型、{type})。
107.对于除了该标识信息以外的信息(即非匹配部分),可以按照文本渲染模式,在目标页面上对其进行渲染。对于该目标组件的标识信息(即匹配部分),可以根据该标识信息以及第一配置信息中的children属性,在该目标页面上渲染该目标组件,从而得到目标表单。
108.本公开实施例中,在渲染的时候,可以找到模板字符信息,并对该模板字符信息做两部分处理,对于模板字符串中除目标组件的标识信息之外的信息(即非匹配部分),可以基于文本渲染模式进行渲染,对于目标组件,可以基于目标组件的标识信息和第一配置信息中的组件属性信息,进行渲染,从而得到目标表单。通过对不同的部分采用不同的渲染方式,能够提高表单渲染的效率和精度,降低表单渲染的复杂度,从而满足实际生成中的各种差异化场景的需求。
109.图5是根据一示例性实施例示出的一种基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件的流程图。如图5所示,在一个可选的实施例中,在上述步骤s1303中,上述基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件,可以包括:
110.在步骤s130311中,解析上述标识信息,得到上述至少一个基础组件各自对应的第一键值。
111.在步骤s130313中,从上述组件属性信息中,获取与上述第一键值对应的第二键值以及与上述第二键值对应的组件描述信息。
112.在步骤s130315中,根据上述组件描述信息,在上述目标页面上渲染上述至少一个基础组件。
113.具体地,该标识信息中可以包括至少一个基础组件各自对应的第一键值(key),通过解析该标识信息,可以得到每个组件各自对应的第一键值。其中,key是一种身份标识的标志,每个组件具有各自对应的key,通过每个组件各自对应的key,能够唯一识别每个组
件。
114.可选地,由于组件属性信息(即children属性)用于存放混合组件中包含的所有组件信息,因此,从组件属性信息中,可以获取与第一键值对应的第二键值。每个键值可以用于唯一识别每个组件,因此,通过第一键值,可以获取相应的组件描述信息(包括但不限于:component、label、key、props、max等)。
115.可选地,该第二键值可以与第一键值相同,该第二键值也可以与第一键值相匹配。
116.具体地,可以通过渲染器对该组件描述信息进行解析,从而在上述目标页面上渲染上述至少一个基础组件。以下,继续以图3为例,对上述步骤s130311-上述步骤s130315进行说明:
117.解析该标识信息(即图3中的${subtitle}),得到第一键值为subtitle,接着从children属性中查找这个subtitle(即第二键值),并查找该subtitle对应的组件描述信息(即:component:input,label:模板1标题,key:provincecode),接着根据该组件描述信息,渲染该input组件。
118.需要说明的是,虽然通过解析图3中的${subtitle},确定图3中的目标组件为input组件(即一个基础组件)。但在一些可行的实施例中,目标组件可以包括至少两个基础组件。假设该至少一个基础组件的数量为2个(基础组件1和基础组件2),则在步骤s130311中,可以解析出基础组件1对应的第一键值1和基础组件2对应的第一键值2,并从组件描述信息中获取第一键值1对应的第二键值1以及第二键值1对应的组件描述信息1、第一键值2对应的第二键值2以及第二键值2对应的组件描述信息2,最后基于组件描述信息1在目标页面上渲染基础组件1,并基于组件描述信息2在目标页面上渲染基础组件2,该渲染得到的基础组件1和基础组件2即为目标组件,即该目标组件相当于是一个子混合组件。
119.本公开实施例中,由于每个组件均有相应的键值,通过从组件属性信息中,获取与第一键值对应的第二键值,能够快速且精确地对第二键值对应的组件进行渲染,提高组件渲染的精度和时效性,从而满足实际生成中的各种差异化场景的需求。
120.图6是根据一示例性实施例示出的另一种基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件的流程图。如图6所示,在另一个可选的实施例中,上述目标组件基于第二文本和上述至少一个基础组件组合而成,上述第二文本组件用于展示第二文本,则在上述步骤s1303中,上述基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件,可以包括:
121.在步骤s130331中,解析上述标识信息,得到上述至少一个基础组件各自对应的第一键值。
122.在步骤s130333中,从上述组件属性信息中,获取与上述第一键值对应的第二键值和与上述第二键值对应的组件描述信息。
123.在步骤s130335中,基于文本渲染模式在上述目标页面上渲染上述第二文本组件,并基于上述组件描述信息,在上述目标页面上渲染上述至少一个基础组件。
124.在一个可行的实施例中,为了实现无限层级的嵌套,以生成无限层级的表单,目标组件还可以为第二文本组件和至少一个基础组件组合而成的子混合组件,即目标组件可以为文本组件和一个基础组件组合而成的子混合组件,目标组件还可以为文本组件和至少两个基础组件组合而成的子混合组件。
125.在目标组件为第二文本组件和至少一个基础组件组合而成的情况下,可以按照上述步骤s130331-步骤s130333,得到对应的组件描述信息,并基于该组件描述信息,在目标页面上渲染上述至少一个基础组件。其中,上述步骤s130331-步骤s130333,以及步骤s130335中的基于上述组件描述信息,在上述目标页面上渲染上述至少一个基础组件,与上述步骤s130311-上述步骤s130315相似,在此不再赘述。
126.由于目标组件基于第二文本组件和上述至少一个基础组件组合而成,除了按照上述方式渲染至少一个基础组件之外,还可以基于文本渲染模式在目标页面上渲染上述第二文本组件。
127.可选地,该第二文本组件就可以与第一文本组件相同,也可以与第一文本组件不同。
128.继续参见图3,若图3中的${subtitle}为混合组件(complexcomp)的话,则解析该${subtitle},可以渲染得到子混合组件,从而实现了在混合组件中嵌套子混合组件。
129.示例性地,为了进一步实现下一层级的嵌套,该目标组件还可以由第二文本和第一子混合组件组合而成,该第一子混合组件可以由至少一个基础组件组合而成,也可以由文本组件和至少一个基础组件组合而成。为了实现再下一层级的嵌套,该第一子混合组件还可以由文本组件和第二子混合组件组合而成,该第二子混合组件可以由至少一个基础组件组合而成,还可以由文本组件和至少一个基础组件组合而成。以此类推,表单的层级可以使用混合组件无限向下拓展,实现了在混合组件中无限级嵌套子混合组件,从而实现了表单的无限级嵌套。在另一个可行的实施例中,为了进一步实现无限层级的嵌套,以生成无限层级的表单,第一文本组件也可以为由多个文本组件组合而成的混合文本组件。
130.需要说明的是,在实际场景中,需要根据实际渲染的效果合理的调整逻辑和样式,以达到可用状态。
131.本公开实施例中,在目标组件为第二文本组件和至少一个基础组件组合而成的子混合组件的情况下,可以基于组件对应的组件描述信息对组件进行渲染,同时基于文本渲染模式对第二文本组件进行渲染,实现了在混合组件中嵌套子混合组件,从而实现了表单的多层级嵌套;且由于每个组件均有相应的键值,通过从组件属性信息中,获取与第一键值对应的第二键值,能够快速且精确地对第二键值对应的组件进行渲染,提高组件渲染的精度和时效性;此外,对不同的部分采用不同的渲染方式,能够进一步提高表单渲染的效率和精度,降低渲染的复杂度,从而够满足实际生成中的各种差异化场景的需求。
132.在一个可行的实施例中,在上述在步骤s130311中和上述步骤s130331中,上述解析上述标识信息,得到上述至少一个基础组件各自对应的第一键值,可以包括:
133.获取预设正则表达式。
134.基于上述预设正则表达式匹配上述标识信息,得到匹配结果。
135.将上述匹配结果作为上述第一键值。
136.具体地,预设正则表达式是对字符串(包括普通字符和特殊字符)操作的一种逻辑公式。即用预先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,该“规则字符串”表征对第一键值的一种过滤逻辑。
137.具体地,上述基于预设正则表达式匹配上述标识信息的过程,可以理解为通过该预设正则表达式对上述标识信息进行过滤,得到与该预设正则表达式相匹配的匹配结果,
并将该匹配结果作为该第一键值。由于正则表达式灵活性、逻辑性和功能性均较强,通过预设正则表达式匹配得到第一键值,能够提高第一键值确定的效率和精度,进而提高组件渲染的效率和精度。
138.图7是根据一示例性实施例示出的另一种表单生成方法的流程图。如图7所示,在一个可选的实施例中,上述方法还可以包括:
139.在步骤s21中,响应于上述表单生成指令,获取待渲染的基础组件对应的第二配置信息。
140.在步骤s23中,基于上述第一配置信息,在上述目标页面上渲染上述混合组件,并基于上述第二配置信息,在上述目标页面上渲染上述待渲染的基础组件,得到上述目标表单。
141.可选地,上述第二配置信息可以为描述表单中的文字、图形和图像等界面元素的显示结构,待渲染的基础组件在配置信息中均具有相应的描述信息。
142.可选地,该待渲染的基础组件可以包括但不限于:输入框(input)、下拉选择框(select)、图片上传组件(imguploader)等。
143.具体地,在上述步骤s23中,上述基于上述第一配置信息,在上述目标页面上渲染上述混合组件,并基于上述第二配置信息,在上述目标页面上渲染上述待渲染的基础组件的过程,与上述步骤s1301-步骤s1303类似,在此不再赘述。
144.可选地,在上述步骤s23中,可以采用预设基础组件库,在上述目标页面上对待渲染的基础组件进行渲染。
145.图8是根据一示例性实施例示出的一种第二配置信息的示意图。如图8所示,该第二配置信息包含待渲染的基础组件的组件描述信息,该组件描述信息可以包括但不限于:component、label、key、props、max等。
146.图9是根据一示例性实施例示出的一种配置文件的示意图。如图9所示,该第一配置信息和第二配置信息可以包含与同一个配置文件中。其中,待渲染基础组件为“input”组件,混合组件为“文本组件+基础组件”组合而成的组件。
147.图10是根据一示例性实施例示出的一种通过渲染器解析得到的表单模型。图11是根据一示例性实施例示出的一种第二表单示意图。基于渲染器对图9中的第一配置信息和第二配置信息进行解析,解析出来的表单模型可以如图10所示,根据该表单模型,最终渲染出的第二表单可以如图11所示。
148.本公开实施例中,可以响应于上述表单生成指令,获取待渲染的基础组件对应的第二配置信息,并在目标页面上,对待渲染基础组件和混合组件进行交叉渲染,且在混合组件中可以自定义组件的逻辑和样式,并且能进行混合组件的多级嵌套,从而达到无限层级混合表单的渲染能力,满足了实际生产中的各种差异化场景需求。
149.图12是根据一示例性实施例示出的一种表单渲染装置框图。参照图12,该装置可以包括第一响应模块31和第一渲染模块33。
150.该第一响应模块31,被配置为执行响应于目标网页对应的目标表单的表单生成指令,获取上述目标表单对应的待渲染的混合组件的第一配置信息;上述混合组件基于第一文本组件和目标组件组合而成,上述目标组件包括至少一个基础组件,上述基础组件表征单个非文本组件,上述第一文本组件用于展示第一文本。
151.该第一渲染模块33,被配置为执行基于上述第一配置信息,在上述目标页面上渲染上述混合组件,得到上述目标表单。
152.在一示例性的实施方式中,上述第一渲染模块33,可以包括:
153.模板字符信息确定子模块,被配置为执行解析上述第一配置信息,得到模板字符信息;上述模板字符信息包括上述目标组件的标识信息。
154.目标表单确定子模块,被配置为执行基于文本渲染模式,在上述目标页面上渲染上述模板字符串中除上述标识信息之外的信息,并基于上述标识信息和上述第一配置信息中的组件属性信息,在上述目标页面上渲染上述目标组件,得到上述目标表单;上述除上述标识信息之外的信息包括上述第一文本组件。
155.在一示例性的实施方式中,上述目标表单确定子模块,可以包括:
156.第一解析单元,被配置为执行解析上述标识信息,得到上述至少一个基础组件各自对应的第一键值。
157.第一获取单元,被配置为执行从上述组件属性信息中,获取与上述第一键值对应的第二键值以及与上述第二键值对应的组件描述信息。
158.第一渲染单元,被配置为执行根据上述组件描述信息,在上述目标页面上渲染上述至少一个基础组件。
159.在一示例性的实施方式中,上述目标组件基于第二文本组件和上述至少一个基础组件组合而成,上述第二文本组件用于展示第二文本,上述目标表单确定子模块,可以包括:
160.第二解析单元,被配置为执行解析上述标识信息,得到上述至少一个基础组件各自对应的第一键值。
161.第二获取单元,被配置为执行从上述组件属性信息中,获取与上述第一键值对应的第二键值和与上述第二键值对应的组件描述信息。
162.第二渲染单元,被配置为执行基于文本渲染模式在上述目标页面上渲染上述第二文本组件,并基于上述组件描述信息,在上述目标页面上渲染上述至少一个基础组件。
163.在一示例性的实施方式中,上述第一解析单元和上述第二解析单元,可以包括:
164.正则表达式获取子单元,被配置为执行获取预设正则表达式。
165.匹配结果确定子单元,被配置为执行基于上述预设正则表达式匹配上述标识信息,得到匹配结果。
166.第一键值确定子单元,被配置为执行将上述匹配结果作为上述第一键值。
167.在一示例性的实施方式中,上述装置还可以包括:
168.第二响应模块,被配置为执行响应于上述表单生成指令,获取待渲染的基础组件对应的第二配置信息。
169.第二渲染模块,被配置为执行基于上述第一配置信息,在上述目标页面上渲染上述混合组件,并基于上述第二配置信息,在上述目标页面上渲染上述待渲染的基础组件,得到上述目标表单。
170.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明
171.在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行
指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一表单生成方法的步骤。
172.该电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图13是根据一示例性实施例示出的一种用于表单渲染的电子设备的框图,该电子设备40可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)41(中央处理器41可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器43,一个或一个以上存储应用程序423或数据422的存储介质42(例如一个或一个以上海量存储设备)。其中,存储器43和存储介质42可以是短暂存储或持久存储。存储在存储介质42的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器41可以设置为与存储介质42通信,在电子设备40上执行存储介质42中的一系列指令操作。电子设备40还可以包括一个或一个以上电源46,一个或一个以上有线或无线网络接口45,一个或一个以上输入输出接口44,和/或,一个或一个以上操作系统421,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
173.输入输出接口44可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备40的通信供应商提供的无线网络。在一个实例中,输入输出接口44包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口44可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
174.本领域普通技术人员可以理解,图13所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备40还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。
175.在示例性实施例中,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中任一表单生成方法的步骤。
176.在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一种实施方式中提供的表单生成方法。
177.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
178.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或
者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
179.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1