CN109614088A - 表单组件生成方法及装置 - Google Patents
表单组件生成方法及装置 Download PDFInfo
- Publication number
- CN109614088A CN109614088A CN201811497863.9A CN201811497863A CN109614088A CN 109614088 A CN109614088 A CN 109614088A CN 201811497863 A CN201811497863 A CN 201811497863A CN 109614088 A CN109614088 A CN 109614088A
- Authority
- CN
- China
- Prior art keywords
- form component
- description information
- project
- component project
- interaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种表单组件生成方法及装置,通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并生成对应的JSON格式文件,若JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则。然后根据每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。如此,省去了手动编写表单组件和手动编写接口调用代码的步骤,实现了表单组件的自动化生成,提高了前端开发的工作效率,从而节省开发资源。同时,能够避免手动编码出现的语法错误,降低了排错成本。
Description
技术领域
本申请涉及WBE开发技术领域,具体而言,涉及一种表单组件生成方法及装置。
背景技术
目前开发React表单组件最普遍的做法是根据业务需求,手动编写React表单组件的JSX(JavaScript XML)代码。例如,编写的时候需要按照React的语法规则对表单组件的每一项编写表单组件的类型、布局等,同时还需要指定表单组件所对应的后端数据库的字段等。然而,上述方案中,当表单组件的类型杂且数量多时,手动编写效率极低,无法满足快速开发迭代和及时交付等需求,同时也浪费了开发资源。此外,手动编码容易出现语法错误,排错成本高,变相增加了时间成本和人力成本。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种表单组件生成方法及装置,以解决或者改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种表单组件生成方法,应用于计算机设备,所述方法包括:
通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件;
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件;
若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则;
根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
在一种可能的实施方式中,所述通过HTTP接口调用WebAPI接口以获得所述各个表单组件项目的描述信息的步骤之前,所述方法还包括:
预先通过WebAPI接口定义各个表单组件项目的描述信息,所述描述信息包括每个表单组件项目的字段名称、表单交互类型以及表单项初始值。
在一种可能的实施方式中,所述遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件的步骤,包括:
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断所述描述信息中的表单交互类型是否符合预设的表单交互类型;
若所述描述信息中的表单交互类型符合预设的表单交互类型,则判断所述描述信息中的表单项初始值是否满足预设命名规则;
若所述描述信息中的表单项初始值满足预设命名规则,则判定该表单组件项目的描述信息符合预设条件;
若所述描述信息中的表单交互类型不符合预设的表单交互类型,和/或所述描述信息中的表单项初始值不满足预设命名规则,则判定该表单组件项目的描述信息不符合预设条件。
在一种可能的实施方式中,所述判断该表单组件项目的描述信息是否符合预设条件的步骤之后,所述方法还包括:
若该表单组件项目的描述信息不符合预设条件,则输出提示信息以提示用户对所述WebAPI接口定义的该表单组件项目的描述信息进行修改。
在一种可能的实施方式中,所述响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则的步骤,包括:
响应修饰规则配置操作分别为每个表单组件项目配置对应的布局修饰规则,所述布局修饰规则包括垂直布局规则、水平布局规则、弹性布局规则中的一种。
在一种可能的实施方式中,所述通过JavaScript脚本解析每个表单组件项目的领域专用语言,生成每个对应的表单组件的步骤,包括:
通过基于React的JavaScript脚本从每个表单组件项目的DSL中解析得到每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则;
根据解析得到的每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则生成每个表单组件的React表单组件。
在一种可能的实施方式中,所述通过JavaScript脚本解析每个表单组件项目的领域专用语言,生成每个对应的表单组件的步骤之后,所述方法还包括:
将生成的表单组件上传到网站服务器对应的目录中进行表单组件的部署更新。
第二方面,本申请实施例还提供一种表单组件生成装置,应用于计算机设备,所述装置包括:
获得模块,用于通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件;
遍历判断模块,用于遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件;
修饰规则配置模块,用于若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则;
表单组件生成模块,用于根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
第三方面,本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的表单组件生成方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供一种表单组件生成方法及装置,通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并生成对应的JSON格式文件,若JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则。然后根据每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。如此,省去了手动编写表单组件和手动编写接口调用代码的步骤,实现了表单组件的自动化生成,提高了前端开发的工作效率,从而节省开发资源。同时,能够避免手动编码出现的语法错误,降低了排错成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的表单组件生成方法的应用场景示意图;
图2为本申请实施例提供的表单组件生成方法的一种流程示意图;
图3为本申请实施例提供的表单组件生成方法的另一种流程示意图;
图4为本申请实施例提供的表单组件生成装置的功能模块示意图;
图5为本申请实施例提供的计算机设备的结构示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参阅图1,为本申请实施例提供的表单组件生成方法的应用场景示意图,该应用场景可包括用于生成表单组件的计算机设备100以及用于接收计算机设备100发送的表单组件的网站服务器300,网站服务器300可以用于根据计算机设备100发送的表单组件生成对应的WEB网页,以供用户浏览。
本实施例中,计算机设备100可以是但不限于个人电脑(Personal Computer,PC)、笔记本电脑等任意具有数据处理能力的电子设备。
本实施例中,所述网站服务器300应被理解为提供处理、资料库、通讯设施的业务点。举例而言,服务器可以指具有相关通信和资料存储和资料库设施的单个的物理处理器,或它可以指联网或集聚的处理器、相关网路和存放装置的集合体,并且对软体和一个或多个资料库系统和支援服务器所提供的服务的应用软体进行操作。服务器可以在配置或性能上差异很大,但是服务器一般可以包括一个或多个中央处理单元和存储单元。服务器还可以包括一个或多个大型存放区设备、一个或多个电源、一个或多个有线或无线网络组件、一个或多个输入/输出组件、或一个或多个作业系统,诸如,Windows Server、Mac OS X、Unix、Linux、FreeBSD。
下面结合图1中所示的应用场景对图2所示的表单组件生成方法进行详细说明,该表单组件生成方法由图1中所示的计算机设备100执行。可以理解,本实施例提供的表单组件生成方法不以图2及以下所述的具体顺序为限制,该表单组件生成方法的详细步骤如下:
步骤S110,通过HTTP(HyperText Transfer Protocol,超文本传输协议)接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON(JavaScript Object Notation,JS对象简谱)格式文件。
本实施例中,在步骤S110之前,可以预先通过WebAPI接口(Web ApplicationProgramming Interface,Web应用程序接口)定义各个表单组件项目的描述信息,所述描述信息包括每个表单组件项目的字段名称、表单交互类型以及表单项初始值。
例如,如果当前提出一个按条件筛选销售记录的需求,筛选条件包括销售产品名称、销售员ID,销售日期等,通常的做法是后端按筛选项提供相应的接口,前端首先编写表单组件,然后编写调用查询接口的代码,从而会前述背景技术获知的技术问题。
而在本实施例中,首先通过WebAPI接口预先定义各个表单组件,例如销售产品名称、销售员ID,销售日期等的字段名称、表单交互类型以及表单项初始值。
在具体实施过程中,可以通过HTTP接口调用WebAPI接口以获得WebAPI接口预先定义的各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件。
以上述示例为例,JSON格式文件中的数据信息可以如下所示:
其中,type表示的是表单交互类型,label表示的是字段名称,dataIndex表示的是表单项初始值。
步骤S120,遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件。
本实施例中,可以遍历所述JSON格式文件中每个表单组件项目的描述信息,判断所述描述信息中的表单交互类型是否符合预设的表单交互类型。例如,预设的表单交互类型可以包括输入框(INPUT)、下拉选择框(SELECT)、单选框(RADIO)、复选框(CHECKBOX)、文本域(TEXTAREA)等。
如果描述信息中的表单交互类型不属于预设表单交互类型,则判断所述描述信息中的表单项初始值是否满足预设命名规则。例如,预设命名规则可以包括小驼峰命名规则,例如,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:productName、salesDate等。
若所述描述信息中的表单项初始值满足预设命名规则,则判定该表单组件项目的描述信息符合预设条件。若所述描述信息中的表单交互类型不符合预设的表单交互类型,和/或所述描述信息中的表单项初始值不满足预设命名规则,则判定该表单组件项目的描述信息不符合预设条件。
相对应地,若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则执行:
步骤S130,响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则。
例如,可以通过响应修饰规则配置操作分别为每个表单组件项目配置对应的布局修饰规则(layout字段),所述布局修饰规则包括垂直布局(verticalLayout)规则、水平布局(horizontalLayout)规则、弹性布局(flexLayout)规则中的一种。如此,这种可能随时变化的特性不需要设计在WebAPI的设计数据中,通过在本步骤进行数据修饰,从而对表单组件的一些特性进行定制,无需在多次修改WebAPI的设计数据,减少工作量。
步骤S140,根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
本实施例中,可以通过基于React的JavaScript脚本从每个表单组件项目的DSL中解析得到每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则。接着,根据解析得到的每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则生成每个表单组件的React表单组件。
如此,本实施例省去了手动编写表单组件和手动编写接口调用代码的步骤,实现了表单组件的自动化生成,提高了前端开发的工作效率,从而节省开发资源。同时,能够避免手动编码出现的语法错误,降低了排错成本。
此外,若该表单组件项目的描述信息不符合预设条件,则执行:
步骤S135,输出提示信息以提示用户对所述WebAPI接口定义的该表单组件项目的描述信息进行修改。
例如,若描述信息中的表单交互类型不符合预设的表单交互类型,则提示用户对该表单交互类型进行修改。又例如,若描述信息中的表单项初始值不满足预设命名规则,则提示用户对该表单项初始值进行修改。
进一步地,请参阅图3,在该步骤S140之后,表单组件生成方法还可以包括如下步骤:
步骤S150,将生成的表单组件上传到网站服务器300对应的目录中进行表单组件的部署更新。
本实施例中,在生成表单组件后,即可将生成的表单组件上传到网站服务器300对应的目录中进行表单组件的部署更新,网站服务器300在部署更新完成后,当用户终端向网站服务器300发送网站访问请求后,网站服务器300向用户终端下发的WEB网页即为更新了表单组件之后的网页。
进一步地,请参阅图4,对应于上述的表单组件生成方法,本申请实施例还提供一种表单组件生成装置200,该表单组件生成装置200实现的功能可以对应上述方法执行的步骤。该表单组件生成装置200可以理解为上述计算机设备100,也可以理解为独立于上述计算机设备100之外的在计算机设备100控制下实现本申请功能的组件,如图4所示,该表单组件生成装置200可以包括获得模块210、遍历判断模块220、修饰规则配置模块230以及表单组件生成模块240,下面分别该表单组件生成装置200的各个功能模块的功能进行详细阐述。
获得模块210,用于通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件。
遍历判断模块220,用于遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件。
修饰规则配置模块230,用于若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则。
表单组件生成模块240,用于根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
在一种可能的实施方式中,所述遍历判断模块220具体可以通过以下方式判断该表单组件项目的描述信息是否符合预设条件:
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断所述描述信息中的表单交互类型是否符合预设的表单交互类型;
若所述描述信息中的表单交互类型符合预设的表单交互类型,则判断所述描述信息中的表单项初始值是否满足预设命名规则;
若所述描述信息中的表单项初始值满足预设命名规则,则判定该表单组件项目的描述信息符合预设条件;
若所述描述信息中的表单交互类型不符合预设的表单交互类型,和/或所述描述信息中的表单项初始值不满足预设命名规则,则判定该表单组件项目的描述信息不符合预设条件。
在一种可能的实施方式中,所述表单组件生成模块240具体可以通过以下方式生成每个对应的表单组件:
通过基于React的JavaScript脚本从每个表单组件项目的DSL中解析得到每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则;
根据解析得到的每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则生成每个表单组件的React表单组件。
进一步地,请参阅图5,为本申请实施例提供的上述计算机设备100的一种结构示意框图。本实施例中,所述计算机设备100可以由总线110作一般性的总线体系结构来实现。根据计算机设备100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,计算机设备100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现计算机设备100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。
可以替换的,计算机设备100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。
可替换的,计算机设备100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的ASIC(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,计算机设备100可以使用下述来实现:一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、DSP处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。
在图5中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于计算机设备100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述表单组件生成装置200,所述处理器120可以用于执行所述表单组件生成装置200。
综上所述,本申请实施例提供一种表单组件生成方法及装置,通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并生成对应的JSON格式文件,若JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则。然后根据每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。如此,省去了手动编写表单组件和手动编写接口调用代码的步骤,实现了表单组件的自动化生成,提高了前端开发的工作效率,从而节省开发资源。同时,能够避免手动编码出现的语法错误,降低了排错成本。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种表单组件生成方法,其特征在于,应用于计算机设备,所述方法包括:
通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件;
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件;
若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则;
根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
2.根据权利要求1所述的表单组件生成方法,其特征在于,所述通过HTTP接口调用WebAPI接口以获得所述各个表单组件项目的描述信息的步骤之前,所述方法还包括:
预先通过WebAPI接口定义各个表单组件项目的描述信息,所述描述信息包括每个表单组件项目的字段名称、表单交互类型以及表单项初始值。
3.根据权利要求1所述的表单组件生成方法,其特征在于,所述遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件的步骤,包括:
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断所述描述信息中的表单交互类型是否符合预设的表单交互类型;
若所述描述信息中的表单交互类型符合预设的表单交互类型,则判断所述描述信息中的表单项初始值是否满足预设命名规则;
若所述描述信息中的表单项初始值满足预设命名规则,则判定该表单组件项目的描述信息符合预设条件;
若所述描述信息中的表单交互类型不符合预设的表单交互类型,和/或所述描述信息中的表单项初始值不满足预设命名规则,则判定该表单组件项目的描述信息不符合预设条件。
4.根据权利要求1所述的表单组件生成方法,其特征在于,所述判断该表单组件项目的描述信息是否符合预设条件的步骤之后,所述方法还包括:
若该表单组件项目的描述信息不符合预设条件,则输出提示信息以提示用户对所述WebAPI接口定义的该表单组件项目的描述信息进行修改。
5.根据权利要求1所述的表单组件生成方法,其特征在于,所述响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则的步骤,包括:
响应修饰规则配置操作分别为每个表单组件项目配置对应的布局修饰规则,所述布局修饰规则包括垂直布局规则、水平布局规则、弹性布局规则中的一种。
6.根据权利要求1所述的表单组件生成方法,其特征在于,所述通过JavaScript脚本解析每个表单组件项目的领域专用语言,生成每个对应的表单组件的步骤,包括:
通过基于React的JavaScript脚本从每个表单组件项目的DSL中解析得到每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则;
根据解析得到的每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则生成每个表单组件的React表单组件。
7.根据权利要求1所述的表单组件生成方法,其特征在于,所述通过JavaScript脚本解析每个表单组件项目的领域专用语言,生成每个对应的表单组件的步骤之后,所述方法还包括:
将生成的表单组件上传到网站服务器对应的目录中进行表单组件的部署更新。
8.一种表单组件生成装置,其特征在于,应用于计算机设备,所述装置包括:
获得模块,用于通过HTTP接口调用WebAPI接口以获得各个表单组件项目的描述信息,并根据所述各个表单组件项目的描述信息生成对应的JSON格式文件;
遍历判断模块,用于遍历所述JSON格式文件中每个表单组件项目的描述信息,判断该表单组件项目的描述信息是否符合预设条件;
修饰规则配置模块,用于若所述JSON格式文件中每个表单组件项目的描述信息符合预设条件,则响应修饰规则配置操作分别为每个表单组件项目配置对应的修饰规则;
表单组件生成模块,用于根据所述每个表单组件项目的描述信息和修饰规则生成每个表单组件项目的领域专用语言DSL,并通过JavaScript脚本解析每个表单组件项目的DSL,生成每个对应的表单组件。
9.根据权利要求8所述的表单组件生成装置,其特征在于,所述遍历判断模块具体通过以下方式判断该表单组件项目的描述信息是否符合预设条件:
遍历所述JSON格式文件中每个表单组件项目的描述信息,判断所述描述信息中的表单交互类型是否符合预设的表单交互类型;
若所述描述信息中的表单交互类型符合预设的表单交互类型,则判断所述描述信息中的表单项初始值是否满足预设命名规则;
若所述描述信息中的表单项初始值满足预设命名规则,则判定该表单组件项目的描述信息符合预设条件;
若所述描述信息中的表单交互类型不符合预设的表单交互类型,和/或所述描述信息中的表单项初始值不满足预设命名规则,则判定该表单组件项目的描述信息不符合预设条件。
10.根据权利要求8所述的表单组件生成装置,其特征在于,所述表单组件生成模块具体通过以下方式生成每个对应的表单组件:
通过基于React的JavaScript脚本从每个表单组件项目的DSL中解析得到每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则;
根据解析得到的每个表单组件项目的字段名称、表单交互类型、表单项初始值以及布局修饰规则生成每个表单组件的React表单组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497863.9A CN109614088B (zh) | 2018-12-07 | 2018-12-07 | 表单组件生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497863.9A CN109614088B (zh) | 2018-12-07 | 2018-12-07 | 表单组件生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614088A true CN109614088A (zh) | 2019-04-12 |
CN109614088B CN109614088B (zh) | 2021-08-24 |
Family
ID=66006871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811497863.9A Active CN109614088B (zh) | 2018-12-07 | 2018-12-07 | 表单组件生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614088B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597521A (zh) * | 2019-09-10 | 2019-12-20 | 联想(北京)有限公司 | 数据处理方法、电子设备和介质 |
CN111930379A (zh) * | 2020-08-11 | 2020-11-13 | 上海亿锎智能科技有限公司 | Web端投诉表单设计器的实现方法、装置和系统 |
CN112199626A (zh) * | 2020-11-06 | 2021-01-08 | 南威软件股份有限公司 | 基于dsl布局引擎的动态表单生成方法 |
CN112347378A (zh) * | 2019-08-07 | 2021-02-09 | 北京国双科技有限公司 | 表单生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130097479A1 (en) * | 2011-08-24 | 2013-04-18 | Graphium, LLC | Electronic forms system |
CN103870266A (zh) * | 2012-12-12 | 2014-06-18 | 杭州新世纪电子科技有限公司 | 一种页面生成方法和系统 |
CN108664245A (zh) * | 2018-04-27 | 2018-10-16 | 厦门南讯软件科技有限公司 | 一种基于json自描述结构的网页界面生成方法及装置 |
CN108733375A (zh) * | 2018-05-29 | 2018-11-02 | 厦门白山耘科技有限公司 | web前端配置化开发方法、装置、存储介质及计算机设备 |
-
2018
- 2018-12-07 CN CN201811497863.9A patent/CN109614088B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130097479A1 (en) * | 2011-08-24 | 2013-04-18 | Graphium, LLC | Electronic forms system |
CN103870266A (zh) * | 2012-12-12 | 2014-06-18 | 杭州新世纪电子科技有限公司 | 一种页面生成方法和系统 |
CN108664245A (zh) * | 2018-04-27 | 2018-10-16 | 厦门南讯软件科技有限公司 | 一种基于json自描述结构的网页界面生成方法及装置 |
CN108733375A (zh) * | 2018-05-29 | 2018-11-02 | 厦门白山耘科技有限公司 | web前端配置化开发方法、装置、存储介质及计算机设备 |
Non-Patent Citations (1)
Title |
---|
喻莹莹 等: "前后端分离的终端自适应动态表单设计", 《计算机系统应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347378A (zh) * | 2019-08-07 | 2021-02-09 | 北京国双科技有限公司 | 表单生成方法及装置 |
CN110597521A (zh) * | 2019-09-10 | 2019-12-20 | 联想(北京)有限公司 | 数据处理方法、电子设备和介质 |
CN110597521B (zh) * | 2019-09-10 | 2021-11-16 | 联想(北京)有限公司 | 数据处理方法、电子设备和介质 |
CN111930379A (zh) * | 2020-08-11 | 2020-11-13 | 上海亿锎智能科技有限公司 | Web端投诉表单设计器的实现方法、装置和系统 |
CN112199626A (zh) * | 2020-11-06 | 2021-01-08 | 南威软件股份有限公司 | 基于dsl布局引擎的动态表单生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109614088B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614088A (zh) | 表单组件生成方法及装置 | |
US10942708B2 (en) | Generating web API specification from online documentation | |
AU2012271774B2 (en) | Automated user interface object transformation and code generation | |
US10521492B2 (en) | Systems and methods that utilize contextual vocabularies and customer segmentation to deliver web content | |
CN104756097B (zh) | 一致性协议表 | |
CN109725901A (zh) | 前端代码的开发方法、装置、设备和计算机存储介质 | |
US20150293764A1 (en) | Method and system to compose and execute business rules | |
CN108280119A (zh) | 页面生成方法、装置及用户终端 | |
AU2012271774A1 (en) | Automated user interface object transformation and code generation | |
US11741002B2 (en) | Test automation systems and methods using logical identifiers | |
CN107506218A (zh) | 一种配置文件的管理方法及管理系统 | |
CN108280099A (zh) | 数据字典管理方法、装置及服务器 | |
CN105930390A (zh) | 关系型数据库扩展方法及关系型数据库扩展系统 | |
CN108804484A (zh) | 数据审批方法、设备和计算机可读存储介质 | |
CN109343858A (zh) | 一种基于服务端渲染的自动建站容器部署系统及其工作方法 | |
CN107844519A (zh) | 电子装置、数据库查询脚本生成方法及存储介质 | |
CN106919406A (zh) | 一种桌面应用组件发布、更新方法及装置 | |
CN103597464A (zh) | 用于将解释运行时应用适应到多个客户机的技术 | |
CN109284488A (zh) | 基于本地存储修改前端表格列数据的方法、装置及介质 | |
CN102855061A (zh) | 一种基于多标签窗口的邮箱界面交互方法和设备 | |
CN103500099B (zh) | 一种通过扩展点和扩展实现软件快速二次开发的方法 | |
CN109543169A (zh) | 报表处理方法及装置 | |
CN110275751A (zh) | 一种云桌面管理方法及装置 | |
CN111399823B (zh) | 页面组件布局方法、系统和前台终端 | |
CN109784103A (zh) | 一种usb设备使用记录的获取方法和装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing Applicant after: Beijing Zhichuangyu Information Technology Co., Ltd. Address before: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing Applicant before: Beijing Knows Chuangyu Information Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |