掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开涉及人工智能技术领域,进一步涉及云计算技术领域,尤其涉及一种生成表单页面的方法、装置、电子设备和存储介质。

背景技术

如今,云计算技术快速发展,可以通过云计算产品来提供的服务越来越多。用户在购买云计算产品时,需要向服务提供方提供与云计算产品有关的信息。通常,服务提供方可以向用户展示一表单页面,用户通过填写表单页面来提供此类信息。需要针对每个云计算产品生成专门的表单页面,随着云计算产品数量的增多,对表单页面的生成与管理变得困难。

发明内容

本公开提供了一种用于生成表单页面的方法、装置、电子设备以及存储介质。

根据本公开的一方面,提供了一种生成表单页面的方法,包括:

获取用于生成表单页面的多个页面组件;

基于待生成的目标表单页面所包含的类型信息、文本信息和布局信息,对所述多个页面组件中的至少一个目标页面组件进行调用;以及

根据对所述多个页面组件中的至少一个目标页面组件的调用结果,生成所述目标表单页面。

根据本公开的另一方面,提供了一种生成表单页面的装置,包括:

获取模块,配置为获取用于生成表单页面的多个页面组件;

调用模块,配置为基于待生成的目标表单页面所包含的类型信息、文本信息和布局信息,对所述多个页面组件中的至少一个目标页面组件进行调用;以及

生成模块,配置为根据对所述多个页面组件中的至少一个目标页面组件的调用结果,生成所述目标表单页面。

根据本公开的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述方法。根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开实施例的生成表单页面的方法的流程图;

图2是根据本公开实施例的获取多个页面组件的示意图;

图3A和图3B是根据本公开实施例的调用函数的示例;

图4是根据本公开实施例的确定目标表单页面所包含的信息的示意图;

图5是根据本公开实施例的JSON结构的示例;

图6是根据本公开实施例的调用目标页面组件的示意图;

图7A和图7B是根据本公开实施例的生成的目标表单页面的示例;

图8是根据本公开实施例的生成表单页面的装置的框图;以及

图9是用来实现本公开实施例的生成表单页面的方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在云计算产品中,需要用户在购买产品或相关服务前完善与产品有关的购买信息,不同类型的云计算产品需要完善的购买信息不同。例如,如果用户购买的是提供门户网站的相关服务,则用户需要提供网站的域名、FTP(File Transfer Protocol,文件传输协议)名称等信息。作为云计算产品的服务提供方,需要在云计算产品发布时确定用户需要完善哪些购买信息,根据这些需要完善的信息生成表单页面,并向用户展示生成的表单页面。用户在表单页面中填写相应的信息来完成云计算产品的订购流程。

生成表单页面的方式包括动态和静态两种。静态生成方式即针对每个具体的云计算产品,根据需要用户来完善的信息创建静态表单页面。事先存储创建好的表单页面,在需要向用户展示时,直接调用整个静态表单页面即可。这种方式实现技术比较简单,但随着云计算产品数量的增多,创建静态表单页面的工作量增大,并且静态表单页面的维护成本增加。

在云计算产品的技术栈中,一般会引入多个组件库,利用组件库可以动态生成表单页面。通过借助于第三方依赖库来调用组件库中的组件,并利用组件动态生成表单页面。动态生成方式不需要针对每个云计算产品单独生成表单页面,可以避免大量重复的工作,有助于降低生成静态表单页面的工作量,并降低维护表单页面的成本。然而,随着云计算产品业务线的重构升级,旧业务线的技术栈将被新业务线的技术栈取代,需要对基于旧业务线的技术栈的依赖库进行改造,而改造成本往往较高。

本公开实施例提供了一种无需借助第三方依赖库、动态生成表单页面的方法。图1是根据本公开实施例的生成表单页面的方法100的流程图。如图1所示,该生成表单页面的方法100包括以下步骤:

在步骤S110中,获取用于生成表单页面的多个页面组件。

在步骤S120中,基于待生成的目标表单页面所包含的类型信息、文本信息和布局信息,对多个页面组件中的至少一个目标页面组件进行调用。

在步骤S130中,根据对多个页面组件中的至少一个目标页面组件的调用结果,生成目标表单页面。

在本公开的实施例中,为了使用当前业务技术栈中包括的组件库,可以将引入到当前业务中的技术栈所包括的组件库中的各个组件导出,并构建组件集合存储各个组件。这样,在需要使用组件库中的组件时,不再需要借助于第三方依赖库来调用组件,可以直接从组件集合中获取到相应组件。

在本公开的实施例中,目标表单页面意指针对某个特定的云计算产品确定的、向用户展示需要由用户完善的产品购买信息的表单页面。可以确定目标表单页面所包含的各种信息,例如类型信息、文本信息和布局信息等。根据实施例,可以根据目标表单页面所需页面组件的类型确定目标表单页面的类型信息,根据所需页面组件在目标表单页面上呈现的文本内容确定目标表单页面的文本信息,以及根据所需页面组件在目标表单页面上的位置确定目标表单页面的布局信息。

在本公开的实施例中,目标页面组件意指生成目标表单页面所需的页面组件,可以是一种类型的页面组件,也可以是多种类型的页面组件。调用目标页面组件的过程即生成表单页面的过程。因此,根据本公开的实施例,可以动态地生成目标表单页面。相对于表单页面的静态生成方法,可以避免表单页面元素的重复生成过程,同时可以降低表单页面的维护成本。

此外,根据本公开的实施例,在新业务线的技术栈取代旧业务线的技术栈的情况下,同样可以通过导出新技术栈中的组件库中的各个组件,并通过对目标页面组件进行调用来动态生成目标表单页面。由于无需借助于第三方依赖库来使用组件库,因此,可以克服对基于旧业务线的技术栈的依赖库进行改造的改造成本高的问题,更适用于需要频繁升级的云计算产品。

在本公开的实施例中,获取用于生成表单页面的多个页面组件可以包括:从引入到当前业务中的技术栈所包括的组件库中导出多个页面组件,针对多个页面组件中的每个页面组件生成调用函数,以及将页面组件和页面组件的调用函数一一对应地存储在组件集合中。

图2是根据本公开实施例的获取多个页面组件的示意图。如图2所示,当前业务的技术栈21包括两个组件库211和212,在组件库211和212中可以各自包括多个用于生成表单页面的多个页面组件。本公开实施例对技术栈中所包括的组件库的数量,以及每个组件库中所包括的组件的数量均不作限定。分别从组件库211和212中导出其各自包括的所有页面组件,该过程如图2中230所示。针对导出的每个页面组件,生成调用函数。并将页面组件和生成的调用函数一一对应地存储在组件集合22中。如图2所示,对于组件集合中的每个元素220,是页面组件和调用函数共同构成的。在具体的实施例中,组件集合22可以是全局数组结构,将由页面组件和调用函数共同构成的一组数据作为一个数组元素进行存储。

根据实施例,还可以在组件集合22中存储页面组件的其他的属性信息。例如,可以对每个页面组件重新命名,以便在从组件集合22中选取页面组件时,能够更方便的进行查找。

通过将技术栈所包括的组件库中的组件导出,并与所生成的调用函数一起存储在组件集合中,可以在不借助第三方依赖库的情况下,对组件库中的页面组件进行调用,可以更好的适应业务线的重构升级。

根据实施例,页面组件是用于在表单页面上生成例如输入框之类的结构的一段代码段,调用函数是用于调用页面组件,以将页面组件对应的代码段添加的表单页面的HTML文件的一段代码段。

图3A和图3B是根据本公开实施例的调用函数的示例。如图3A和图3B所示,调用函数完成如下过程:首先获取到组件集合中的每一个页面组件配置中的Component,然后加载页面组件。接下来,在“tagName”与Component的值之间做一次映射。例如,如图3A所示,将“Calendar”映射为“ui-form-calendar”。如图3B所示,将“BoxGroup”映射为“ui-form-boxgroup”。进一步地,在本公开的实施例中,定义了“builder”函数,该函数执行页面组件的调用过程。如图3A和图3B所示,在“builder”函数中,在“<”和“/>”中传递与页面组件有关的参数。

在本公开的实施例中,在获取到组件集合中的每一个页面组件的配置之后,并不直接使用Component,即使用“Calendar”或“BoxGroup”来进行函数调用,而是使用重新定义的“builder”函数来对不同的页面组件进行调用。从图3A和图3B所示的调用函数示例中可以看出,虽然两个调用函数中是针对不同的页面组件(分别为“Calendar”和“BoxGroup”)进行调用,但由于使用了“builder”函数,使得调用函数代码的编写更加规范和统一,有利于在增加新页面组件时,简化调用函数的生成过程。

图4是根据本公开实施例的确定目标表单页面所包含的信息的示意图。如图4所示,目标表单页面41是针对某个具体的云计算产品确定的、向用户展示需要由用户完善的产品购买信息的表单页面。在目标表单页面41中包括多条产品信息。例如,如图4所示,一个产品信息411可以是与域名有关的信息,该产品信息具有文本“绑定域名”,用于向用户指示需要填写的信息的类型。产品信息411包括用于用户输入的输入框部分,用户可以在输入框中设置域名。另一个产品信息412可以是与FTP用户有关的信息,该产品信息具有文本“FTP用户名”,同样地,产品信息412也包括用于用户输入的输入框部分,用户可以在输入框中设置FTP用户名。产品信息411和412中的输入框部分均可以由页面组件生成。

如图4所示,目标表单页面41所包含的信息可以大致分为三类。第一类信息针对在目标表单页面41上生成的页面组件,主要为不同页面组件的类型信息4111。例如,组件的类型可以是文本(text)、邮件(email)、文本域(textArea)、选择(select)、广播(radio)或复选框(checkBox)等。第二类信息针对在目标表单页面41呈现的文本内容,主要是文本信息4112。例如,“绑定域名”和“FTP用户名”均属于文本信息。此外,在一些其他的实施例中,一些用于向用户说明的提示信息也属于文本信息。例如,“请按照年-月-日的格式填写日期”。第三类信息针对页面组件放置在目标表单页面41的位置,主要是布局信息4113。例如,产品信息411和412各自的页面组件在目标表单页面41上的坐标、页面组件的长和宽等信息,根据这些信息,可以将页面组件正确地放置在目标表单页面41上的期望的位置。

在本公开的实施例中,在确定了上述类型信息4111、文本信息4112和布局信息4113之后,可以将这些信息存储在预设的数据结构中,这样,就可以将期望的目标表单页面41表示为数据。根据实施例,可以将类型信息4111、文本信息4112和布局信息4113存储在JSON(JavaScript Object Notation)结构中。JSON结构是一种轻量级的数据交换格式。易于阅读和编写,并且易于计算设备解析和生成。

图5是根据本公开实施例的JSON结构的示例。如图5所示,字段“type”对应的是类型信息。在JSON结构中,没有定义上述页面组件的类型,因此,可以通过在字段“type”的值与页面组件的类型之间建立转换关系,来将字段“type”的值转换为页面组件的类型。例如,常见的字段“type”的值包括例如字符串(string)、数组(array)、选择(select)、日历(calendar)、数字(number)和布尔类型(boolean)等。字段“type”的值与页面组件的类型之间的转换关系可以根据实际情况指定。例如,对于字段值“string”,一般指定为text类型的页面组件。根据实施例,除“type”以外的一个或多个字段可以分别用于存储文本信息和布局信息。如图5所示,字段“title”对应的是文本信息,字段值“绑定域名”表示将在目标表单页面上显示的文本。字段“description”对应的也是文本信息,字段值“请按域名格式正确填写,如test.baidu.com”可以在特定条件下在目标表单页面上显示。字段“maxLength”对应的是布局信息,字段值“20”可以限定页面组件,即输入框的最大长度。

在一些实施例中,还可以在JSON结构中存储与目标表单页面有关的其他信息。例如,针对该页面组件的填写规则。如图5所示,字段“required”对应的是针对该页面组件的填写规则,字段值“true”表示该页面组件对应的输入框不能为空。字段“default”对应的也是针对该页面组件的填写规则,字段值为空,给出的是该页面组件的默认值,被设置为空。

在本公开的实施例中,基于待生成的目标表单页面所包含的类型信息、文本信息和布局信息,对多个页面组件中的至少一个目标页面组件进行调用可以包括:基于类型信息,从组件集合中确定至少一个目标页面组件,并从组件集合中获取该至少一个目标页面组件的调用函数,将文本信息和布局信息作为参数传递给目标页面组件的调用函数,以及执行调用函数以对至少一个目标页面组件进行调用。

图6是根据本公开实施例的调用目标页面组件的示意图。如图6所示,JSON结构61中存储的是目标表单页面所包含的各种信息,数组62中存储的是用于生成目标表单页面的多个页面组件。首先,遍历JSON结构中的数据对象,找到字段“type”,字段“type”的值为“string”。根据JSON结构字段值与页面组件的类型之间的转换关系,将“string”修改为“text”,如图6中的步骤①所示。然后,根据“text”在数组62中进行查询,找到存储“text”页面组件的数组元素,如图6中的步骤②所示。然后,从找到的数组元素中读取与“text”页面组件一起存储的调用函数63,如图6中的步骤③所示。然后,将JSON结构61中的其他属性值作为参数630传递给“builder”函数,如图6中的步骤④所示。在JSON结构中可以存储多个数据对象,在图6中仅示出了一个示例。遍历JSON结构,执行上述过程,可以得到针对目标表单页面上的所有组件的调用函数。接下来,可以根据调用结果来生成目标表单页面。

根据实施例,根据对多个页面组件中的至少一个目标页面组件的调用结果,生成目标表单页面可以包括:根据对多个页面组件中的至少一个目标页面组件的调用结果,生成目标表单页面的HTML源文件,以及对HTML源文件进行解析,以生成目标表单页面。对页面组件进行调用的结果是在目标表单页面的HTML源文件中放置对应的页面组件生成代码。可以使用诸如浏览器之类的应用来对HTML源文件进行解析,最终生成向用户展示的目标表单页面。

图7A和图7B是根据本公开实施例的生成的目标表单页面的示例。如图7A所示,示出了所生成的目标表单页面的一部分。在该部分目标表单页面中放置有两个页面组件,分别是对应于“绑定域名”的输入框和对应于“FTP用户名”的输入框。在标题“绑定域名”的前面显示有一个“*”,这可以由JSON结构中的“required”字段的值定义,表示“绑定域名”是必须填写的信息。在两个页面组件的一侧分别显示有带方框的问号标记,这是针对页面组件的提示信息。如图7A所示,可以通过该带方框的问号标记获取到针对页面组件的填写提示信息。

如图7B所示,同样示出了所生成的目标表单页面的一部分。该部分目标表单页面所包含的文本信息和页面组件均与图7A相同,不同的是两个页面组件在目标表单页面上的相互位置关系。在图7A中,对应于“绑定域名”的输入框和对应于“FTP用户名”的输入框位于相同的行中,在图7B中,对应于“绑定域名”的输入框和对应于“FTP用户名”的输入框位于不同的行中。这是由JSON结构中的与布局信息有关的字段的值定义的。

根据本公开的实施例,可以基于JSON结构动态地生成任意期望形式的表单页面,无需借助于第三方依赖库。在设计表单页面时,仅根据期望的表单页面的形式来构建JSON结构即可,操作简单。在从旧有的技术栈中使用新的技术栈进行重构时,新的重构过程不再需要引入外部的库来支撑,可以通过在新的技术栈中覆盖来实现,因此,特别适用于业务线的升级和扩展。

根据本公开的实施例,本公开还提供了一种生成表单页面的装置、一种电子设备、一种可读存储介质和一种计算机程序产品。

图8是根据本公开实施例的生成表单页面的装置800的框图。如图8所示,该生成表单页面的装置800包括获取模块810、调用模块820和生成模块830。

根据实施例,获取模块810被配置为获取用于生成表单页面的多个页面组件。调用模块820被配置为基于待生成的目标表单页面所包含的类型信息、文本信息和布局信息,对多个页面组件中的至少一个目标页面组件进行调用。生成模块830被配置为根据对多个页面组件中的至少一个目标页面组件的调用结果,生成目标表单页面。

以上各功能模块的具体操作可以参考前述实施例中的生成表单页面的方法100的操作步骤来获取,此处不再赘述。

图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

设备900中的多个部件连接至I/O接口905,包括:输入单元909,例如键盘、鼠标等;输出单元909,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如生成表单页面的方法。例如,在一些实施例中,生成表单页面的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的生成表单页面的方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的生成表单页面的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 生成表单页面的方法、装置、电子设备和存储介质
  • 表单页面生成方法、装置、终端及存储介质
技术分类

06120112880662