CN115687462A - 菜单构建方法及装置 - Google Patents
菜单构建方法及装置 Download PDFInfo
- Publication number
- CN115687462A CN115687462A CN202211168237.1A CN202211168237A CN115687462A CN 115687462 A CN115687462 A CN 115687462A CN 202211168237 A CN202211168237 A CN 202211168237A CN 115687462 A CN115687462 A CN 115687462A
- Authority
- CN
- China
- Prior art keywords
- menu
- node
- hierarchical structure
- attribute
- target menu
- 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.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种菜单构建方法及装置,其中方法包括:从数据库中的目标菜单表中,获取目标菜单的关键属性;基于关键属性,确定目标菜单的层级结构;获取层级结构中各个节点的属性特征,基于层级结构以及层级结构中各个节点的属性特征,构建目标菜单的菜单树。本发明提供的菜单构建方法及装置,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
Description
技术领域
本发明涉及计算机术领域,尤其涉及一种菜单构建方法及装置。
背景技术
在企业经营和管理过程中,树形菜单是在其系统中常用的一种层级关系展示方式。在构建复杂的多级结构菜单过程中,现有的构建方式是基于递归的方法,直接从数据库的菜单表中获取构建菜单的全部内容,完成菜单的构建。
现有树形菜单构建的过程中,由于需要针对不同数据情况以及不同结构的多级菜单进行不同的拆解和开发工作,工作量较大,调用函数及构建时间较长,导致构建效率低,且树形结构中最大的问题是关系问题,故容易在构建中出错。
发明内容
本发明提供一种菜单构建方法及装置,用以解决现有技术针对树形菜单构建的过程中,由于需要针对不同数据情况以及不同结构的多级菜单进行不同的拆解和开发工作,工作量较大,导致构建效率低,容易在构建中出错的技术问题。
本发明提供一种菜单构建方法,包括:
从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
基于所述关键属性,确定所述目标菜单的层级结构;
获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
根据本发明提供的一种菜单构建方法,还包括:
所述基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树,包括:
将所述层级结构中各个节点的属性特征,补充至所述层级结构对应的节点中,得到所述目标菜单的菜单树。
根据本发明提供的一种菜单构建方法,所述属性特征包括节点属性特征和扩展属性特征。
根据本发明提供的一种菜单构建方法,所述获取所述层级结构中各个节点的属性特征,包括:
从所述目标菜单表中获取所述层级结构中节点的节点属性特征;
从前端程序中获取所述层级结构中节点的扩展属性特征。
根据本发明提供的一种菜单构建方法,所述扩展属性特征是基于泛型接口,调用前端程序中设置的泛型类对象获取的。
根据本发明提供的一种菜单构建方法,所述基于所述关键属性,确定所述目标菜单的层级结构,包括:
基于所述关键属性中的节点名称、父子节点关系以及节点权重,确定所述目标菜单中各节点的层级关系;
基于递归算法,遍历所述目标菜单中的所有节点,并基于所述层级关系,构建所述目标菜单的层级结构。
本发明还提供一种菜单构建装置,包括:
属性获取模块,用于从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
结构构建模块,用于基于所述关键属性,确定所述目标菜单的层级结构;
菜单树构建模块,用于获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述菜单构建方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种菜单构建方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述菜单构建方法。
本发明提供的菜单构建方法及装置,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图简要地说明,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的菜单构建方法的流程示意图;
图2是应用本发明提供的菜单构建方法的流程示意图;
图3是应用本发明提供的菜单构建方法的装置结构示意图;
图4是本发明提供的菜单构建装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的菜单构建方法的流程示意图。参照图1,本发明提供的菜单构建方法可以包括:
步骤110,从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
步骤120,基于所述关键属性,确定所述目标菜单的层级结构;
步骤130,获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
本发明提供的菜单构建方法的执行主体可以是电子设备、电子设备中的部件、集成电路、或芯片。该电子设备可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digitalassistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network AttachedStorage,NAS)或个人计算机(personal computer,PC)等,本发明不作具体限定。
下面以计算机执行本发明提供的菜单构建方法为例,详细说明本发明的技术方案。
在步骤110中,确定目标菜单对应的数据库中的目标菜单表,目标菜单表为数据库中存储的目标菜单中所有属性的表。在确定目标菜单表后,从数据库中获取目标菜单的关键属性。关键属性包括节点名称、父子节点关系以及节点权重。
其中,目标菜单表与目标菜单对应,存储了目标菜单中所有属性。在目标菜单表中,存储的属性可以包括目标菜单的节点、节点之间的父子关系、节点属性以及节点权重等。可以基于对目标菜单表中的所有节点以及节点属性进行遍历,基于获取需要构建菜单表的所有节点以及节点对应的属性构建目标菜单的菜单表。
关键属性是用于确定目标菜单的层级结构的必要属性,在获取目标菜单的关键属性后,可以基于获取的关键属性,构建目标菜单的层级结构。关键属性包括节点名称、父子节点关系以及节点权重。其中,节点名称可以用于确定目标菜单中包含的所有节点,父子节点关系反映的是目标菜单中各个节点之间的上下级关系,节点权重反应的是节点处于目标菜单中的深度,用于确定目标菜单中各个节点处于目标菜单的具体层级位置。
在步骤120中,在数据库中获取目标菜单的关键属性后,基于获取的关键属性,确定目标菜单的层级结构。其中,目标菜单的层级结构反映的是目标菜单中各个菜单节点在层级结构中的具体位置以及各个菜单节点对应的层级关系。
在获取数据库中目标菜单表中的关键属性后,基于获取的关键属性,构建的目标菜单的层级结构,只是包含各个节点的树状结构。对于目标菜单中的各个节点的具体属性并不包含。
例如,构建的层级结构,只能查看各个节点,以及各个节点之间的从属关系。对于节点中的属性,如对同一层级的菜单节点进行排序的属性则不包含。
可以理解的是,基于获取目标菜单的关键属性,并基于关键属性构建层级结构,可以实现目标菜单对应的层级结构的快速准确构建。
在步骤130中,获取层级结构中各个节点的属性特征,将获取的各个节点的属性特征,补充到层级结构的对应节点中,构建目标菜单的菜单树。
构建的菜单树为属性结构的菜单。其中,树是一种数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。其中树的每个节点有零个或多个子节点,没有父节点的节点称为根节点,并且每一个非根节点有且只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树。
在步骤120中构建的层级结构只包含菜单树中各个节点的结构,并不包含各个节点对应的属性特征。所以需要将各个节点的属性特征加入层级结构对应的各个节点中,构建完整的菜单树。在获取各个节点的属性特征后,将获取的各个节点的属性特征,填充到层级结构的对应节点中。
其中,各个节点的属性特征可以是对同一层级的菜单节点进行排序、将同一层级的某个菜单节点置顶等。
直接基于数据库中的菜单表进行构建菜单树的方式,需要获取数据库中菜单表中的所有字段的所有内容。由根节点至各个叶子节点,自上而下遍历构建菜单的全部内容。对于复杂的多级结构菜单的构建过程中,需要针对每一级菜单的每一个节点,填充该节点的所有属性内容,在该节点构建完成后,才能继续下一个节点的构建。对于复杂的多级结构菜单的构建的情况,会导致构建时间较长的问题。
基于目标菜单的关键属性先构建包含各个节点结构关系的层级结构,再将各个节点对应的属性内容进行填充,可以快速实现完整菜单树的快速准确构建。将树的结构属性在构建前提取出来的方式,在递归中减少循环调用造成的效率低,速度缓慢等问题,避免了因为结构的复杂性、或是传参的多样性生成菜单树时导致开发时间长,效率慢、影响性能等问题。
可选的,在具体构建菜单树的过程中。可以对查询数据库目标菜单表返回JSON数据以key-value形式进行解析。根据配置类,将要组装的数据集合转换成Map对象,方便通过每一个对象的主键获取到对象本身,使用集合接收获取泛型的树列表对象的值。其中,配置类是构建菜单树之前创建的,其中声明了构建树的关键属性,并实现get、set方法。
采用遍历的方式,运用lambda函数来判断当前节点之间的对应关系,首先先判断是否为父节点,接下来同样运用lamdba函数来获取到每一元素的父节点主键,若找到了父节点,则将当前元素加入到父节点的子节点数组中,然后判断节点是否为叶子节点,若为叶子节点,则交给调用方消费,之后再将节点进行排序,可灵活地利用递归算法定义节点之间的关系,即根据最大递归深度,获取目标菜单表中各菜单项中的节点ID,父子节点关系、节点权重大小等,确定当前菜单项,将其作为父节点,通过父节点标识找出其子节点,再将此作为下一个父节点,以此类推,直到递归至叶子节点为止。
最后将其排序后的数据项和值用于构建树函数中的参数并转换成List<Tree<String>>类型,最后以JSON数据格式返回给前端,实现菜单树的构建。
本发明实施例提供的菜单构建方法,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
在一个实施例中,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树,包括:将所述层级结构中各个节点的属性特征,补充至所述层级结构对应的节点中,得到所述目标菜单的菜单树。
具体在构建菜单树的过程中,获取各个节点的属性特征,基于获取的各个节点的属性特征。将各个节点的属性特征填充到层级结构对应的各个节点中,得到目标菜单的菜单树。
可以理解的是,层级结构为菜单树的树状结构,相对菜单树,层级结构中不包含菜单树的属性特征。在将各个节点的属性特征填充到层级结构对应的各个节点中,即可得到目标菜单的菜单树。
本发明实施例提供的菜单构建方法,通过获取各个节点的属性特征,基于获取的各个节点的属性特征。将各个节点的属性特征填充到层级结构对应的各个节点中,得到目标菜单的菜单树,实现了对菜单树的构建。
在一个实施例中,属性特征包括节点属性特征和扩展属性特征。
属性特征是层级结构中各个节点包含的属性特征。其中属性特征可以是对同一层级的菜单节点进行排序、将同一层级的某个菜单节点置顶等。
其中,节点属性特征是数据库中的目标菜单表中存储的目标菜单的各个节点的属性特征,可以直接从数据库中读取。扩展属性特征是数据库的目标菜单表中不包含的节点的属性特征,无法直接从数据库中获取。
扩展属性特征是根据用户需求,需要在原有的节点的属性特征中增加的属性特征。可以将扩展属性特征放在程序中,在需要时,直接基于读取程序获取。在需要修改时,也可以直接基于修改程序进行更改。
本发明实施例提供的菜单构建方法,通过确定各个节点的属性特征中包括节点属性特征和扩展属性特征,实现了根据用户需求,在原有的节点的属性特征中增加属性特征。避免了在实际情况中,对于数据库表中字段不能随意修改的情况,无法实现对菜单表的修改。
在一个实施例中,获取所述层级结构中各个节点的属性特征,包括:从所述目标菜单表中获取所述层级结构中节点的节点属性特征;从前端程序中获取所述层级结构中节点的扩展属性特征。
在构建目标菜单的菜单树后,由于菜单树中只包含各个节点以及各个节点组成的结构。所以还需要进一步对各个节点中的属性特征进行填充。
获取菜单树中各个节点的属性特征,属性特征包括数据库的目标菜单表中存储已有特征以及前端程序中的扩展属性特征。
对于数据库中目标菜单表中存储的已有的节点属性特征,可以直接从数据库中获取。而对于数据库中不包含的扩展属性特征,可以基于从前端程序中获取。基于用户自定义的方式,将需要定义的扩展属性,定义在前端程序中,后续在获取时,直接从前端程序中获取用户自定义的扩展属性特征。
可以理解的是,对于一些实际应用的场景,数据库中的表以及表中的字段不能随意更改。在需要对菜单树中节点的属性进行扩展时,可以基于在前端程序中确定需要扩展的扩展属性特征。在构建完整菜单树的过程中,基于从前端程序中获取扩展属性特征的方式,实现对菜单树中扩展属性的添加。
本发明实施例提供的菜单构建方法,通过确定各个节点的属性特征中包括节点属性特征和扩展属性特征,实现了根据用户需求,在原有的节点的属性特征中增加属性特征。避免了在实际情况中,对于数据库表中字段不能随意修改的情况,无法实现对菜单表的修改。
在一个实施例中,扩展属性特征是基于泛型接口,调用前端程序中设置的泛型类对象获取的。
在确定扩展属性特征时,首先需要在前端程序中设置泛型类对象。其中,前端程序为用于接收构建菜单树参数,实现对菜单树进行界面显示以及渲染的程序。在前端程序中设置泛型类对象,泛型类对象中定义了需要扩展属性特征的泛型数据。
基于泛型接口,条约前端程序中设置的泛型类对象,获取前端程序中的扩展属性特征,实现扩展属性特征的获取。
可以理解的是,基于设置泛型类对象,可以设置任意数据类型的数据,使得用于扩展的菜单树中的扩展属性特征可以是任意数据类型,提升了扩展的可能性。
本发明实施例提供的菜单构建方法,通过确定扩展属性特征是基于泛型接口,调用前端程序中设置的泛型类对象获取的。基于泛型类对象以及泛型接口,使得用于扩展的菜单树中的扩展属性特征可以是任意数据类型,提升了扩展的可能性。
在一个实施例中,基于所述关键属性,确定所述目标菜单的层级结构,包括:基于所述关键属性中的节点名称、父子节点关系以及节点权重,确定所述目标菜单中各节点的层级关系;基于递归算法,遍历所述目标菜单中的所有节点,并基于所述层级关系,构建所述目标菜单的层级结构。
关键属性包括节点名称、父子节点关系以及节点权重,在确定关键属性后,基于关键属性,构建目标菜单的层级结构。
基于关键属性中的节点名称、父子节点关系以及节点权重,确定目标菜单中各节点的层级关系。
基于递归算法,遍历目标菜单中的所有节点,并基于确定的目标菜单的各个节点之间的层级关系,构建所述目标菜单的层级结构。
本发明实施例提供的菜单构建方法,通过关键属性,确定目标菜单中各节点的层级关系。基于递归算法,遍历目标菜单中的所有节点,并基于层级关系,构建目标菜单的层级结构,实现了目标菜单的层级结构的构建,为构建目标菜单的菜单树提供了基础。
下面以一应用本发明提供的菜单构建方法的流程示意图为例,说明本发明提供的技术方案:
如图2所示,在步骤210中,获取目标菜单的关键属性。从数据库中的目标菜单表中,获取目标菜单的关键属性,关键属性包括节点名称、父子节点关系以及节点权重。
在步骤220中,获取目标菜单的节点属性特征和扩展属性特征。从目标菜单表中获取层级结构中节点的节点属性特征。从前端程序中获取层级结构中节点的扩展属性特征。
在步骤230中,基于递归算法,构建目标菜单的层级结构。基于关键属性中的节点名称、父子节点关系以及节点权重,确定目标菜单中各节点的层级关系;基于递归算法,遍历目标菜单中的所有节点,并基于层级关系,构建目标菜单的层级结构。
在步骤240中,基于确定的目标菜单的层级结构,以及获取的目标菜单的节点属性特征和扩展属性特征,构建菜单树。
本发明实施例提供的菜单构建方法,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
下面以一应用本发明提供的菜单构建方法的装置结构示意图图3为例,说明本申请提供的技术方案:
该装置包括:获取模块310,配置模块320,构建模块330。
获取模块310,用于从数据库中的目标菜单表中,获取目标菜单的关键属性,关键属性包括节点名称、父子节点关系以及节点权重。以及从目标菜单表中获取层级结构中节点的节点属性特征。从前端程序中获取层级结构中节点的扩展属性特征。
配置模块320,用于基于关键属性中的节点名称、父子节点关系以及节点权重,确定目标菜单中各节点的层级关系;基于递归算法,遍历目标菜单中的所有节点,并基于层级关系,构建目标菜单的层级结构。
构建模块330,用于基于确定的目标菜单的层级结构,以及获取的目标菜单的节点属性特征和扩展属性特征,构建菜单树。
本发明实施例提供的应用本发明提供的菜单构建方法的装置,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
图4为本发明提供的菜单构建装置的结构示意图,如图4所示,该装置包括:
属性获取模块410,用于从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
结构构建模块420,用于基于所述关键属性,确定所述目标菜单的层级结构;
菜单树构建模块430,用于获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
本发明实施例提供的菜单构建装置,通过从数据库中的目标菜单表中,获取目标菜单的关键属性,构建目标菜单的层级结构,并将获取的层级结构的各个节点的节点属性填充到层级结构对应的各个节点中,实现菜单树的快速准确构建。将目标菜单中树的结构属性在构建前提取出来的方式,减少了直接构建方式中由于循环调用造成的效率低,速度缓慢等问题,提升了菜单树的构建效率。
在一个实施例中,菜单树构建模块430具体用于:
基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树,包括:
将所述层级结构中各个节点的属性特征,补充至所述层级结构对应的节点中,得到所述目标菜单的菜单树。
在一个实施例中,菜单树构建模块430还具体用于:
确定属性特征包括节点属性特征和扩展属性特征。
在一个实施例中,菜单树构建模块430还具体用于:
获取所述层级结构中各个节点的属性特征,包括:
从所述目标菜单表中获取所述层级结构中节点的节点属性特征;
从前端程序中获取所述层级结构中节点的扩展属性特征。
在一个实施例中,菜单树构建模块430还具体用于:
扩展属性特征是基于泛型接口,调用前端程序中设置的泛型类对象获取的。
在一个实施例中,结构构建模块420具体用于:
于所述关键属性,确定所述目标菜单的层级结构,包括:
基于所述关键属性中的节点名称、父子节点关系以及节点权重,确定所述目标菜单中各节点的层级关系;
基于递归算法,遍历所述目标菜单中的所有节点,并基于所述层级关系,构建所述目标菜单的层级结构。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行菜单构建方法,该方法包括:
从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
基于所述关键属性,确定所述目标菜单的层级结构;
获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的菜单构建方法,该方法包括:
从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
基于所述关键属性,确定所述目标菜单的层级结构;
获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的菜单构建方法,该方法包括:
从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
基于所述关键属性,确定所述目标菜单的层级结构;
获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种菜单构建方法,其特征在于,包括:
从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
基于所述关键属性,确定所述目标菜单的层级结构;
获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
2.根据权利要求1所述的菜单构建方法,其特征在于,所述基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树,包括:
将所述层级结构中各个节点的属性特征,补充至所述层级结构对应的节点中,得到所述目标菜单的菜单树。
3.根据权利要求1所述的菜单构建方法,其特征在于,所述属性特征包括节点属性特征和扩展属性特征。
4.根据权利要求3所述的菜单构建方法,其特征在于,所述获取所述层级结构中各个节点的属性特征,包括:
从所述目标菜单表中获取所述层级结构中节点的节点属性特征;
从前端程序中获取所述层级结构中节点的扩展属性特征。
5.根据权利要求3或4所述的菜单构建方法,其特征在于,所述扩展属性特征是基于泛型接口,调用前端程序中设置的泛型类对象获取的。
6.根据权利要求1所述的菜单构建方法,其特征在于,所述基于所述关键属性,确定所述目标菜单的层级结构,包括:
基于所述关键属性中的节点名称、父子节点关系以及节点权重,确定所述目标菜单中各节点的层级关系;
基于递归算法,遍历所述目标菜单中的所有节点,并基于所述层级关系,构建所述目标菜单的层级结构。
7.一种菜单构建装置,其特征在于,包括:
属性获取模块,用于从数据库中的目标菜单表中,获取目标菜单的关键属性,所述关键属性包括节点名称、父子节点关系以及节点权重;
结构构建模块,用于基于所述关键属性,确定所述目标菜单的层级结构;
菜单树构建模块,用于获取所述层级结构中各个节点的属性特征,基于所述层级结构以及所述层级结构中各个节点的属性特征,构建所述目标菜单的菜单树。
8.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述菜单构建方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述菜单构建方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述菜单构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168237.1A CN115687462A (zh) | 2022-09-23 | 2022-09-23 | 菜单构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168237.1A CN115687462A (zh) | 2022-09-23 | 2022-09-23 | 菜单构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687462A true CN115687462A (zh) | 2023-02-03 |
Family
ID=85063495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211168237.1A Pending CN115687462A (zh) | 2022-09-23 | 2022-09-23 | 菜单构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687462A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185413A (zh) * | 2023-04-24 | 2023-05-30 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎生成指定菜单的方法、系统、装置及介质 |
CN117059095A (zh) * | 2023-07-21 | 2023-11-14 | 广州市睿翔通信科技有限公司 | 基于ivr的服务提供方法、装置、计算机设备及存储介质 |
-
2022
- 2022-09-23 CN CN202211168237.1A patent/CN115687462A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185413A (zh) * | 2023-04-24 | 2023-05-30 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎生成指定菜单的方法、系统、装置及介质 |
CN116185413B (zh) * | 2023-04-24 | 2023-08-01 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎生成指定菜单的方法、系统、装置及介质 |
CN117059095A (zh) * | 2023-07-21 | 2023-11-14 | 广州市睿翔通信科技有限公司 | 基于ivr的服务提供方法、装置、计算机设备及存储介质 |
CN117059095B (zh) * | 2023-07-21 | 2024-04-30 | 广州市睿翔通信科技有限公司 | 基于ivr的服务提供方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115687462A (zh) | 菜单构建方法及装置 | |
CN112395483B (zh) | 基于树形结构的页面渲染方法及装置 | |
CN107102995B (zh) | 一种sql执行计划的确定方法及装置 | |
CN112434188B (zh) | 一种异构数据库的数据集成方法、装置及存储介质 | |
CN109815238B (zh) | 用严格平衡二叉树实现数据库的动态添加方法及装置 | |
CN111443901B (zh) | 一种基于Java反射的业务扩展方法及装置 | |
US20240256613A1 (en) | Data processing method and apparatus, readable storage medium, and electronic device | |
CN110888672B (zh) | 一种基于元数据架构的表达式引擎实现方法及系统 | |
CN110955712A (zh) | 基于多数据源的开发api处理方法及装置 | |
CN114238767A (zh) | 业务推荐方法、装置、计算机设备和存储介质 | |
CN110175047B (zh) | 处理器指令编码的自动生成方法及装置 | |
CN115982177A (zh) | 一种基于树形维度的数据归集的方法、装置、设备及介质 | |
CN114385864A (zh) | 一种图搜索方法、装置、设备及存储介质 | |
CN110209885B (zh) | 一种图查询方法及系统 | |
CN113609166A (zh) | 搜索方法、装置、计算机设备及计算机可读存储介质 | |
CN112988278A (zh) | 资源文件的meta文件修改方法、装置、电子设备及存储介质 | |
EP2851812A1 (en) | Exposing relationships between universe objects | |
CN106599076B (zh) | 论坛导图的生成方法及装置 | |
CN117742900B (zh) | 一种服务调用图的构造方法、装置、设备及存储介质 | |
CN118170430B (zh) | 一种调用链路的处理方法、装置、设备及存储介质 | |
CN113536052B (zh) | 一种基于k边连通分量在大型网络中搜索个性化影响力社区的方法 | |
CN117270912A (zh) | 一种配置更新方法、装置、电子设备及存储介质 | |
US20130304767A1 (en) | Filling attribute values of business objects | |
CN117421283A (zh) | 一种图层发布方法、装置、设备及存储介质 | |
WO2022175288A1 (en) | Systems and methods for metadata based path finding |
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 |