CN110780793A - 一种树形菜单的构建方法、装置、电子设备及存储介质 - Google Patents
一种树形菜单的构建方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110780793A CN110780793A CN201911052867.0A CN201911052867A CN110780793A CN 110780793 A CN110780793 A CN 110780793A CN 201911052867 A CN201911052867 A CN 201911052867A CN 110780793 A CN110780793 A CN 110780793A
- Authority
- CN
- China
- Prior art keywords
- menu
- menu item
- tree
- items
- menu items
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种树形菜单的构建方法,以解决相关技术中采用递归算法构建树形菜单时,可能由于菜单项的数量和菜单项对应的层级数量较大,导致构建速度较慢的问题。方法包括:获取数据列表中各菜单项的索引号,索引号表征各菜单项的先序遍历顺序;根据各菜单项的索引号确定各菜单项的排列顺序;基于各菜单项的排列顺序以及各菜单项的父节点构建树形菜单。本发明还公开一种树形菜单的构建装置、电子设备及计算机可读存储介质。
Description
技术领域
本发明涉及树形菜单技术领域,尤其涉及一种树形菜单的构建方法、装置、电子设备及计算机可读存储介质。
背景技术
树形菜单是企业运营和管理的过程中常用的一种数据展示方式。在多级树形菜单中,用户可以通过点击某一级中的一个菜单项,从而展示该菜单项对应的下一级菜单项。
现有技术中,构建树形菜单时通常采用递归方式,即预先确定当前菜单项,并将当前菜单项作为父节点,通过调用当前菜单项以查询当前菜单项的子节点,然后再将当前菜单项的子节点作为下一个父节点,通过调用当前菜单项的子节点以查询当前菜单项的子节点的子节点,以此类推,直至递归到叶子节点为止,进而实现树形菜单构建。
然而,采用上述递归方式构建树形菜单时,由于每次查询子节点菜单项时都需要对该子节点的父节点菜单进行调用,这样,当菜单项的数量较大时,可能使得调用次数较多,导致调用时间增长,从而降低树形菜单的构建速度。
发明内容
本发明实施例提供一种树形菜单的构建方法,用以加快树形菜单的构建速度。
本发明实施例还提供一种树形菜单的构建装置,一种电子设备以及一种计算机可读存储介质。
本发明实施例采用下述技术方案:
第一方面,本发明实施例提供了一种树形菜单的构建方法,所述方法包括:
获取数据列表中各菜单项的索引号,所述索引号表征对应菜单项的先序遍历顺序;根据所述各菜单项的索引号确定所述各菜单项的排列顺序;基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单。
在一种实现方式中,所述方法还包括:从所述数据列表中获取所述各菜单项的父节点;利用先序遍历算法基于所述各菜单项的父节点,确定所述各菜单项的索引号;将所述各菜单项的索引号存储至所述数据列表。
在一种实现方式中,所述根据所述各菜单项的索引号确定各菜单项的排列顺序,包括:
在一种实现方式中,所述基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单,包括:按照所述各菜单项的排列顺序,依次获取所述各菜单项;当获取的所述菜单项的父节点为空时,构建所述菜单项;或,当获取的所述菜单项的父节点为非空时,则在所述菜单项对应的父节点菜单项下构建所述菜单项,以构建树形菜单。
第二方面,本发明实施例提供了一种基于上述第一方面所述的树形菜单的构建方法的菜单展示方法,所述方法包括:
确定待访问用户的角色信息;基于待访问用户的角色信息以及预设第一映射关系,查询所述角色信息对应的菜单项,并展示所述菜单项;其中,所述预设第一映射关系用于关联所述用户角色与所述用户角色对应的菜单项的权限。
在一种实现方式中,若所述用户角色具备访问所述树形菜单中子节点菜单项的权限,则所述用户角色也具备访问所述子节点菜单项对应的上级菜单项的权限;其中,所述上级菜单项包括所述子节点菜单项对应的第一父节点菜单项和所述第一父节点菜单项对应的第二父节点菜单项。
第三方面,本发明实施例提供了一种树形菜单的构建装置,所述装置包括获取模块,确定模块和构建模块,其中:
获取模块,用于获取数据列表中各菜单项的索引号,所述索引号表征对应菜单项的先序遍历顺序;
确定模块,用于根据所述各菜单项的索引号确定所述各菜单项的排列顺序;
构建模块,用于基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单。
在一种实现方式中,所述装置还包括处理模块,用于从所述数据列表中获取所述各菜单项的父节点;利用先序遍历算法基于所述各菜单项的父节点,确定所述各菜单项的索引号;将所述各菜单项的索引号存储至所述数据列表。
在一种实现方式中,确定模块,用于按照所述各菜单项的索引号的数值大小顺序,对所述数据列表中各菜单项进行排序,以确定所述各菜单项的排列顺序。
在一种实现方式中,构建模块,用于按照所述各菜单项的排列顺序,依次获取所述各菜单项;当获取的所述菜单项的父节点为空时,构建所述菜单项;或,当获取的所述菜单项的父节点为非空时,则在所述菜单项对应的父节点菜单项下构建所述菜单项,以构建树形菜单。
第四方面,本发明实施例提供了一种基于上述第三方面所述的树形菜单的构建装置的菜单展示装置,所述装置包括角色确定模块和查询模块,其中:
角色确定模块,用于确定待访问用户的角色信息;
查询模块,用于基于待访问用户的角色信息以及预设第一映射关系,查询所述角色信息对应的菜单项,并展示所述菜单项;其中,所述预设第一映射关系用于关联所述用户角色与所述用户角色对应的菜单项的权限。
在一种实现方式中,若所述用户角色具备访问所述树形菜单中子节点菜单项的权限,则所述用户角色也具备访问所述子节点菜单项对应的上级菜单项的权限;其中,所述上级菜单项包括所述子节点菜单项对应的第一父节点菜单项和所述第一父节点菜单项对应的第二父节点菜单项。
第五方面,本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的第一方面中的任意一种树形菜单的构建方法或如上所述的第二方面中的菜单展示方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的第一方面中的任意一种树形菜单的构建方法或如上所述的第二方面中的菜单展示方法的步骤。
本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本发明实施例提供的方法,由于索引号可以表征对应菜单项的先序遍历顺序,因此,根据各菜单项的索引号确定各菜单项的排列顺序时,使得各菜单项对应的父节点菜单项均排列在各菜单项之前,这样,后续按照各菜单项的排列顺序构建树形菜单时,可以保证各菜单项对应的父节点菜单项在构建各菜单项前均已构建完成,从而不需要再利用递归算法遍历树形结构数据中同一个父菜单,加快了构建树形菜单的速度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a为本发明实施例提供的树形菜单的示意图;
图1b为本发明实施例提供的树形菜单的构建方法的实现流程示意图;
图1c为本发明实施例提供的树形菜单的构建方法中索引号的确定方法的实现流程示意图;
图2为本发明实施例提供的基于树形菜单的构建方法的菜单展示方法的实现流程示意图;
图3为本发明实施例提供树形菜单的构建装置的具体结构示意图;
图4为本发明实施例提供基于树形菜单的构建装置的菜单展示装置的具体结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
为解决相关技术中采用上述递归方式构建树形菜单时,由于每次查询子节点菜单项时都需要对该子节点的父节点菜单进行调用,这样,当菜单项的数量和菜单项对应的层级数量较大时,则容易延长网络传输时间,从而降低树形菜单的构建速度的问题,本发明实施例提供一种树形菜单的构建方法。
该方法的执行主体,可以是各种类型的电子设备,比如可以是台式计算机、膝上型计算机、笔记本电脑、台式计算机、蜂窝电话、智能电话、智能手表、可佩戴电子设备或可植入电子设备等用户终端,也可以是服务器等。
其中,所述服务器可以是单个服务器或者多个服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或服务器构成的云。
为便于描述,本发明实施例以该方法的执行主体为服务器为例,对该方法进行介绍。本领域技术人员可以理解,本发明实施例以该电子设备为例对方法进行介绍,仅是一种示例性说明,并不对本方案对应的权利要求保护范围构成限制。
为便于理解本实施提供的树形菜单的构建方法,以下在介绍本发明实实例提供的树形菜单的构建方法之前,先对树形菜单进行描述。
树形菜单是一种层次的嵌套结构,可以用于描述各菜单项之间的层次关系或所属关系、并列关系。在树形菜单中,处于树根结点位置的菜单项的父节点/前驱结点菜单项为空,其余每个结点位置上的菜单项有且只有一个父节点/前驱结点菜单项。叶子结点位置上的菜单项没有后续结点/子节点菜单项,其余每个结点的后续节点数/子节点菜单项数可以是一个也可以是多个。
以下为方便描述,将父节点/前驱结点菜单项统称为父节点菜单项,将后续节点/子节点菜单项统称为子节点菜单项。
例如,假设存在一个内容监管菜单项,该内容监管菜单项下包括服务端IP探测以及技术设计方案两个子菜单项,且技术设计方案菜单项下还包括软件架构设计以及软件详细设计两个子菜单项,则根据上述所例举的各菜单项以及菜单项之间的层级关系,可以构建成如下图1a所示的树形菜单。
如下图1a所示,内容监管菜单项所处的位置为树形菜单的根节点,该菜单项处于树形菜单的顶层,父节点菜单项为空;服务端IP探测菜单项以及技术设计方案菜单项处于树形菜单的非叶子节点上,二者所对应的父节点菜单项为内容监管菜单项;软件架构设计菜单项以及软件详细设计菜单项处于树形菜单的叶子节点位置,即树形菜单的最底层,不存在子节点菜单项。
具体地,本发明实施例提供的该方法的实现流程如图1b所示,包括如下步骤:
步骤101,获取数据列表中各菜单项的索引号,所述索引号表征对应菜单项的先序遍历顺序。
在介绍步骤101之前,下面先对数据列表以及对应菜单项的索引号作简单描述:
数据列表,通常可以用于存储各菜单项的关联信息,以及对各菜单项之间的从属关系进行树形结构描述。数据列表例如可以是关系型数据库管理系统Mysql,或者可以是树形插件easyui,dynatree,ztree等。
其中,所述关联信息包括菜单项的名称(Permission-name)、菜单项对应的父节点菜单项(Parent-id)等。可选地,在实际应用场景,菜单项的关联信息还可以包括各菜单项的标识、各菜单项的编码、各菜单项对应的权限角色等信息。
以菜单项为图1a所示的树形菜单中的各菜单项为例,上述菜单项对应的传统数据列表如下表1所示:
表1
Permission-name | Parent-id |
内容监管 | NULL |
服务端IP探测 | 内容监管 |
技术设计方案 | 内容监管 |
软件架构设计 | 技术设计方案 |
软件详细设计 | 技术设计方案 |
其中,上述数据列表中父节点菜单项(Parent-id)为NULL的菜单项,表示该菜单项处于树形菜单的顶层,父节点菜单项为空。
通常,本发明实施例中提供的数据列表,除包含各菜单项的名称(Permission-name)、菜单项对应的父节点菜单项(Parent-id)等关联信息外,还可以包括预先存储的各菜单项的索引号(index),例如,如下表2提供的数据列表所示:
表2
索引号,可以用于表征对应的菜单项的先序遍历顺序,比如可以根据菜单项所对应的的索引号的数字大小、字母表顺序等,来确定其所对应的菜单项的先序遍历顺序。在一种实现方式中,各菜单项的索引号例如可以利用先序遍历算法,通过遍历各菜单项对应的数据结构来确定,并预先存储到各菜单项对应的数据列表中。
可选地,索引号可以包括第一索引号和/或第二索引号,第一索引号能够用于表征按照从根节点菜单项到叶子节点菜单项的顺序遍历各菜单项;第二索引号表征从菜单项对应的子节点菜单项返回菜单项时的排序数值。
例如,如图1c所示,可以从根节点位置上的内容监管菜单项开始,然后按照从上往下,从左往右的顺序,依次遍历各菜单项并根据遍历次序对各菜单项定义一个编号数值,直至遍历到叶子节点位置上的软件架构设计菜单项、软件详细设计菜单项为止,从而确定各菜单项的第一索引号(如图1c中各菜单项左边的编号所示)以及第二索引号(如图1c中各菜单项右边的编号所示)。
其中,上述按照从上往下,从左往右的顺序,依次遍历各菜单项并根据遍历次序对各菜单项定义一个编号数值,作为各菜单项的索引号仅是一种示例性说明,并不对本发明实施例造成任何限定。
在一种实现方式中,还可以按照从上往下,从左往右的顺序,依次遍历各菜单项并根据遍历次序对各菜单项定义字符串,作为各菜单项的索引号,例如,可以分别将内容监管菜单项、服务端IP探测菜单项、技术设计方案菜单项、软件架构设计菜单项以及软件详细设计菜单项的索引号定义为aa1、bb2、cc3、dd4、ee5。
基于上述描述的数据列表以及各菜单项的索引号内容,以下对步骤101作详细介绍。
在一种实施例中,获取数据列表中各菜单项的索引号时,例如可以在数据列表的输入选项中输入菜单项的菜单项名称或者菜单项标识,从而获取菜单项的索引号。其中,在数据列表的输入选项中输入菜单项的菜单项名称或者菜单项标识,从而获取菜单项的索引号仅是一种示例性说明,并不对本发明造成任何限定。
步骤102,根据各菜单项的索引号确定各菜单项的排列顺序。
相关技术中,构建树形菜单时,通常需要基于当前已构建完成的菜单项确定下一个待构建菜单项,这样,使得每次构建数据列表中的待菜单项时都需要调用当前已构建完成的菜单项,并基于当前已构建完成的菜单项确定下一个待构建菜单项,从而容易导致树形菜单构建过程中构建速度较慢的问题。
为了避免上述问题,本发明实施例中,可以根据各菜单项的索引号确定各菜单项的排列顺序,即根据各菜单项的索引号对各菜单项进行排序,这样一来,由于索引号可以表征各菜单项的先序遍历顺序,因此,根据各菜单项的索引号确定各菜单项的排列顺序时,使得各菜单项对应的父节点菜单项均排列在各菜单项之前,这样,后续构建树形菜单时,可以按照排列后的顺序依次从数据列表中获取菜单项并构建菜单项,不需要再调用当前已构建完成的菜单项,从而加快了构建树形菜单的速度。
沿用步骤101的例子,假设菜单项的索引号为根据遍历次序对各菜单项定义的编号数值,则根据各菜单项的索引号确定各菜单项的排列顺序时,可以按照各菜单项的索引号的数值大小顺序,对数据列表中各菜单项进行排序,以确定各菜单项的排列顺序。
例如,若各菜单项的索引号包括第一索引号,则可以根据第一索引号对应的数值,按照从小到大的顺序排列各菜单项,如上述表2所示,各菜单项的排列顺序依次为:内容监管菜单项(排列序号为1)、服务端IP探测菜单项(排列序号为2)、技术设计方案菜单项(排列序号为3)、软件架构设计菜单项(排列序号为4)以及软件详细设计菜单项(排列序号为5)。
或者,如图1c所示,若各菜单项的索引号包括第二索引号,则还可以根据第二索引号对应的数值,按照从大到小的顺序排列各菜单项,使各菜单项的排列顺序依次为:内容监管菜单项(排列序号为1)、服务端IP探测菜单项(排列序号为2)、技术设计方案菜单项(排列序号为3)、软件架构设计菜单项(排列序号为4)以及软件详细设计菜单项(排列序号为5)。
需要说明的是,上述两种排列方式仅是本发明实施例的一种示例性说明,并不对本发明实施例造成任何限定。
步骤103,基于各菜单项的排列顺序以及各菜单项的父节点构建树形菜单。
在一种实现方式中,可以基于各菜单项的排列顺序以及各菜单项的父节点,获取排序第一的菜单项,若获取的菜单项的父节点为空时,则直接构建该菜单项;或者,若获取的菜单项的父节点为非空时,则在该菜单项对应的父节点菜单项下构建该菜单项,以构建树形菜单。然后,依次获取第二个菜单项,按照上述方式,建立该菜单项与父节点菜单项对应的层级关系,以此类推,直至所有菜单项的层级关系构建完成,这样即可完成树形菜单的构建。
例如,沿用上述数据列表2中的各菜单项,则可以先获取排序第一的内容监管菜单项,由于该菜单项的父节点菜单项为空,说明该菜单项处于树形菜单的根节点位置,因此可以直接构建;然后,获取排序第二的服务端IP探测菜单项,由于该菜单项的父节点菜单项为内容监管菜单项,说明该菜单项为内容监管菜单项的子菜单项,因此,可以建立该菜单项与内容监管菜单项的层级关系;依次类推,直至建立完软件详细设计菜单项与技术设计方案菜单项的层级关系,即可实现树形菜单的构建。
采用本发明实施例提供的方法,由于索引号可以表征对应菜单项的先序遍历顺序,因此,根据各菜单项的索引号确定各菜单项的排列顺序时,使得各菜单项对应的父节点菜单项均排列在各菜单项之前,这样,后续按照各菜单项的排列顺序构建树形菜单时,可以保证各菜单项对应的父节点菜单项在构建各菜单项前均已构建完成,从而不需要再利用递归算法遍历树形结构数据中同一个父菜单,加快了构建树形菜单的速度。
实施例2
如图2所示,本发明实施例提供一种基于树形菜单的构建方法的菜单展示方法,该方法的执行主体,可以是各种类型的电子设备,所述的电子设备,比如可以是台式计算机、膝上型计算机、笔记本电脑、蜂窝电话、智能电话、智能电视、智能手表、可佩戴电子设备或可植入电子设备等用户终端,也可以是服务器等。
为便于描述,本发明实施例以该方法的执行主体为服务器为例,对该方法进行介绍。本领域技术人员可以理解,本发明实施例以服务器为例对方法进行介绍,仅是一种示例性说明,并不对本方案对应的权利要求保护范围构成限制。
在介绍本发明实施例提供的基于树形菜单的构建方法的菜单展示方法之前,以下先对提出该方法的目的进行说明。
由于通过菜单项权限配置,可以对应用系统的所有菜单项资源权限控制,比如应用系统的功能菜单项进行权限的操控,使得权限与角色相关联,用户通过成为指定角色的成员而得到这些角色对应的权限,相比于传统访问控制(自主访问,强制访问)菜单项而言,极大地简化了对于权限的配置和管理。
因此,本发明实施例提供一种菜单项权展示方法,当用户具备对菜单项的访问权限时,则对用户展示该菜单项;否则,不展示该菜单项,从而对菜单项进行更加细粒度的控制,更好地实现菜单项的权限配置。本发明实施例提供的该方法的实现流程如图2所示,包括如下步骤:
步骤201,确定待访问用户的角色信息。
在一种实现方式中,接收到待访问用户发送的访问请求后,可以根据带访问用户输入的身份信息确定该待访问用户的角色信息。其中,输入的身份信息可以包括待访问用户的登录名、登录密码等信息。
或者,在一种实现方式中,还可以预先建立一个用户角色表,用于存储用户标识以及用户角色的关联关系。当接收到待访问用户发送的访问请求后,可以获取该待访问用户对应的用户标识;然后,通过用户角色表以及待访问用户对应的用户标识确定待访问用户的角色信息。
步骤202,基于待访问用户的角色信息以及预设第一映射关系,查询角色信息对应的菜单项,并展示菜单项。
其中,预设第一映射关系用于关联用户角色与用户角色对应的菜单项的权限。
可选地,预设第一映射关系中每个用户角色对应有一个或多个菜单项权限。若用户角色包含上级菜单项和下级菜单项的访问权限,则每个用户角色在访问下级菜单项时,该下级菜单项对应的上级菜单项亦可被选中。
例如,待访问用户只具有对树形菜单中的1、2级节点具有访问权限,则在进行树形菜单的展示操作时,只展示待访问用户具备访问权限的1、2级节点,从而待访问用户可对1、2级节点下的操作指引内容进行编辑。
在一些应用场景中,可以以树形层级结构展示上述菜单项,每一级菜单下附有对应的操作指引内容。通过这种展示方式,增强了方案的可实施性。
采用本发明实施例提供的方法,通过接收待访问用户输入的身份信息,并根据待访问用户输入的身份信息确定待访问用户的用户角色;根据待访问用户的用户角色展示对应的菜单项,从而提高了菜单项展示效率。
以下通过介绍实施例3,对本发明实施例提供的树形菜单的构建装置作进一步说明。
实施例3
本发明实施例中,提供一种树形菜单的构建装置30的具体结构示意图,该装置30的具体结构示意图如图3所示,包括获取模块31,确定模块32以及构建模块33。其中,各模块的功能如下:
获取模块31,用于获取数据列表中各菜单项的索引号,索引号表征对应菜单项的先序遍历顺序;
确定模块32,用于根据各菜单项的索引号确定各菜单项的排列顺序;
构建模块33,用于基于各菜单项的排列顺序以及各菜单项的父节点构建树形菜单。
在一种实现方式中,确定模块,用于按照各菜单项的索引号的数值大小顺序,对数据列表中各菜单项进行排序,以确定各菜单项的排列顺序。
在一种实现方式中,构建模块,用于按照各菜单项的排列顺序,依次获取各菜单项;当获取的菜单项的父节点为空时,构建菜单项;或,当获取的菜单项的父节点为非空时,则在菜单项对应的父节点菜单项下构建菜单项,以构建树形菜单。
在一种实现方式中,所述装置还包括处理模块,用于从所述数据列表中获取所述各菜单项的父节点;利用先序遍历算法基于所述各菜单项的父节点,确定所述各菜单项的索引号;将所述各菜单项的索引号存储至所述数据列表。
采用本发明实施例提供的该装置,由于索引号可以表征对应菜单项的先序遍历顺序,因此,根据各菜单项的索引号确定各菜单项的排列顺序时,使得各菜单项对应的父节点菜单项均排列在各菜单项之前,这样,后续按照各菜单项的排列顺序构建树形菜单时,可以保证各菜单项对应的父节点菜单项在构建各菜单项前均已构建完成,从而不需要再利用递归算法遍历树形结构数据中同一个父菜单,加快了构建树形菜单的速度。
实施例4
基于与上述实施例1相同的发明构思,本发明实施例提供一种基于树形菜单的构建装置的菜单展示装置装置40,该装置的具体结构示意图如图4所示,包括角色确定模块41以及查询模块42。其中,各模块的功能如下:
角色确定模块,用于确定待访问用户的角色信息;
查询模块,用于基于待访问用户的角色信息以及预设第一映射关系,查询所述角色信息对应的菜单项,并展示所述菜单项;其中,所述预设第一映射关系用于关联所述用户角色与所述用户角色对应的菜单项的权限。
在一种实现方式中,若用户角色具备访问树形菜单中子节点菜单项的权限,则用户角色也具备访问子节点菜单项对应的上级菜单项的权限;其中,上级菜单项包括子节点菜单项对应的第一父节点菜单项和第一父节点菜单项对应的第二父节点菜单项。
采用本发明实施例提供的装置,通过接收待访问用户输入的身份信息,并根据待访问用户输入的身份信息确定待访问用户的用户角色;根据待访问用户的用户角色展示对应的菜单项,从而提高了菜单项展示效率。
实施例5
图5是根据一示例性实施例示出的一种电子设备的硬件结构示意图。如图5所示,电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。
本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器510,耦合到所述存储器,用于:获取数据列表中各菜单项的索引号,索引号表征各菜单项的先序遍历顺序;根据各菜单项的索引号确定各菜单项的排列顺序;基于各菜单项的排列顺序以及各菜单项的父节点构建树形菜单。
在一种实现方式中,处理器510,还包括从所述数据列表中获取所述各菜单项的父节点;利用先序遍历算法基于所述各菜单项的父节点,确定所述各菜单项的索引号;将所述各菜单项的索引号存储至所述数据列表。
在一种实现方式中,处理器510可以用于按照各菜单项的索引号的数值大小顺序,对数据列表中各菜单项进行排序,以确定各菜单项的排列顺序。
在一种实现方式中,处理器510用于按照各菜单项的排列顺序,依次获取各菜单项;当获取的菜单项的父节点为空时,构建菜单项;或,当获取的菜单项的父节点为非空时,则在菜单项对应的父节点菜单项下构建菜单项,以构建树形菜单。
存储器509,用于存储可在处理器510上运行的计算机程序,该计算机程序被处理器510执行时,实现处理器510所实现的上述功能。
应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。
输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。
电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板5061。
用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图5中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;可选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备500包括一些未示出的功能模块,在此不再赘述。
在示例性实施例中,还提供了一种包括指令的存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中所述任意一种方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和构思由上面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种树形菜单的构建方法,其特征在于,包括:
获取数据列表中各菜单项的索引号,所述索引号用于表征对应菜单项的先序遍历顺序;
根据所述各菜单项的索引号确定所述各菜单项的排列顺序;
基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述数据列表中获取所述各菜单项的父节点;
利用先序遍历算法基于所述各菜单项的父节点,确定所述各菜单项的索引号;
将所述各菜单项的索引号存储至所述数据列表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述各菜单项的索引号确定各菜单项的排列顺序,包括:
按照所述各菜单项的索引号的数值大小顺序,对所述数据列表中各菜单项进行排序,以确定所述各菜单项的排列顺序。
4.根据权利要求1所述的方法,其特征在于,所述基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单,包括:
按照所述各菜单项的排列顺序,依次获取所述各菜单项;
当获取的所述菜单项的父节点为空时,构建所述菜单项,以构建树形菜单;或,
当获取的所述菜单项的父节点为非空时,则在所述菜单项对应的父节点菜单项下构建所述菜单项,以构建树形菜单。
5.一种基于如权利要求1所述的树形菜单的构建方法的菜单展示方法,其特征在于,所述展示方法包括:
确定待访问用户的角色信息;
基于待访问用户的角色信息以及预设第一映射关系,查询所述角色信息对应的菜单项,并展示所述菜单项;其中,所述预设第一映射关系用于关联所述用户角色与所述用户角色对应的菜单项的权限。
6.根据权利要求5所述的方法,其特征在于,若所述用户角色具备访问所述树形菜单中子节点菜单项的权限,则所述用户角色也具备访问所述子节点菜单项对应的上级菜单项的权限;其中,所述上级菜单项包括所述子节点菜单项对应的第一父节点菜单项和所述第一父节点菜单项对应的第二父节点菜单项。
7.一种树形菜单的构建装置,其特征在于,所述装置包括:
获取模块,用于获取数据列表中各菜单项的索引号,所述索引号表征对应菜单项的先序遍历顺序;
确定模块,用于根据所述各菜单项的索引号确定所述各菜单项的排列顺序;
构建模块,用于基于所述各菜单项的排列顺序以及所述各菜单项的父节点构建树形菜单。
8.一种基于如权利要求7所述的树形菜单的构建装置的菜单展示装置,其特征在于,所述展示装置包括:
角色确定模块,用于确定待访问用户的角色信息;
查询模块,用于基于待访问用户的角色信息以及预设第一映射关系,查询所述角色信息对应的菜单项,并展示所述菜单项;其中,所述预设第一映射关系用于关联所述用户角色与所述用户角色对应的菜单项的权限。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的树形菜单的构建方法或如权利要求5所述的菜单展示方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的树形菜单的构建方法或如权利要求5所述的菜单展示方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052867.0A CN110780793B (zh) | 2019-10-31 | 2019-10-31 | 一种树形菜单的构建方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052867.0A CN110780793B (zh) | 2019-10-31 | 2019-10-31 | 一种树形菜单的构建方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110780793A true CN110780793A (zh) | 2020-02-11 |
CN110780793B CN110780793B (zh) | 2021-11-09 |
Family
ID=69388057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911052867.0A Active CN110780793B (zh) | 2019-10-31 | 2019-10-31 | 一种树形菜单的构建方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110780793B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162679A (zh) * | 2020-10-21 | 2021-01-01 | 北京乐我无限科技有限责任公司 | 一种下拉菜单配置方法、装置、电子设备及存储介质 |
CN112597167A (zh) * | 2020-12-29 | 2021-04-02 | 四川汇安融信息技术服务有限公司 | 一种基于HashMap的多叉树生成方法 |
CN115795203A (zh) * | 2023-01-30 | 2023-03-14 | 北京志翔科技股份有限公司 | 菜单页面的构建方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876990A (zh) * | 2009-10-27 | 2010-11-03 | 用友软件股份有限公司 | 传递树形结构对象的方法 |
CN102520933A (zh) * | 2011-11-28 | 2012-06-27 | 深圳市五巨科技有限公司 | 一种基于用户权限构建树形菜单的方法及装置 |
CN103092992A (zh) * | 2013-02-17 | 2013-05-08 | 南京师范大学 | 基于Key/Value型NoSQL数据库的矢量数据先序四叉树编码和索引方法 |
CN103186568A (zh) * | 2011-12-28 | 2013-07-03 | 金蝶软件(中国)有限公司 | 树型结构数据的访问方法及系统 |
CN104102694A (zh) * | 2014-06-24 | 2014-10-15 | 用友优普信息技术有限公司 | 树形节点排序方法和树形节点排序装置 |
US20140359426A1 (en) * | 2013-05-31 | 2014-12-04 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for providing suggestion for browser address bar input, browser and terminal thereof |
CN106599218A (zh) * | 2016-12-16 | 2017-04-26 | 北京奇虎科技有限公司 | 一种树形结构的处理方法和装置 |
CN108090083A (zh) * | 2016-11-23 | 2018-05-29 | 北京国双科技有限公司 | 一种菜单查询方法及服务器 |
CN109324856A (zh) * | 2018-08-17 | 2019-02-12 | 平安科技(深圳)有限公司 | 菜单处理方法、装置、计算机设备及存储介质 |
-
2019
- 2019-10-31 CN CN201911052867.0A patent/CN110780793B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876990A (zh) * | 2009-10-27 | 2010-11-03 | 用友软件股份有限公司 | 传递树形结构对象的方法 |
CN102520933A (zh) * | 2011-11-28 | 2012-06-27 | 深圳市五巨科技有限公司 | 一种基于用户权限构建树形菜单的方法及装置 |
CN103186568A (zh) * | 2011-12-28 | 2013-07-03 | 金蝶软件(中国)有限公司 | 树型结构数据的访问方法及系统 |
CN103092992A (zh) * | 2013-02-17 | 2013-05-08 | 南京师范大学 | 基于Key/Value型NoSQL数据库的矢量数据先序四叉树编码和索引方法 |
US20140359426A1 (en) * | 2013-05-31 | 2014-12-04 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for providing suggestion for browser address bar input, browser and terminal thereof |
CN104102694A (zh) * | 2014-06-24 | 2014-10-15 | 用友优普信息技术有限公司 | 树形节点排序方法和树形节点排序装置 |
CN108090083A (zh) * | 2016-11-23 | 2018-05-29 | 北京国双科技有限公司 | 一种菜单查询方法及服务器 |
CN106599218A (zh) * | 2016-12-16 | 2017-04-26 | 北京奇虎科技有限公司 | 一种树形结构的处理方法和装置 |
CN109324856A (zh) * | 2018-08-17 | 2019-02-12 | 平安科技(深圳)有限公司 | 菜单处理方法、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162679A (zh) * | 2020-10-21 | 2021-01-01 | 北京乐我无限科技有限责任公司 | 一种下拉菜单配置方法、装置、电子设备及存储介质 |
CN112597167A (zh) * | 2020-12-29 | 2021-04-02 | 四川汇安融信息技术服务有限公司 | 一种基于HashMap的多叉树生成方法 |
CN115795203A (zh) * | 2023-01-30 | 2023-03-14 | 北京志翔科技股份有限公司 | 菜单页面的构建方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110780793B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143005B (zh) | 一种应用分享方法、电子设备及计算机可读存储介质 | |
CN108632658B (zh) | 一种弹幕显示方法、终端 | |
CN110780793B (zh) | 一种树形菜单的构建方法、装置、电子设备及存储介质 | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
CN109471690B (zh) | 一种消息显示方法及终端设备 | |
CN111177180A (zh) | 一种数据查询方法、装置以及电子设备 | |
CN107908765B (zh) | 一种游戏资源处理方法、移动终端及服务器 | |
CN110879680B (zh) | 一种图标管理方法及电子设备 | |
CN110674112A (zh) | 一种数据查询的方法、装置及电子设备 | |
CN110458655B (zh) | 一种商铺信息推荐方法及移动终端 | |
CN111049980A (zh) | 一种应用分享方法、电子设备及计算机可读存储介质 | |
CN111163449B (zh) | 一种应用分享方法、第一电子设备及计算机可读存储介质 | |
CN107765954B (zh) | 一种应用程序图标更新方法、移动终端及服务器 | |
CN110008234B (zh) | 一种业务数据搜索方法、装置及电子设备 | |
CN106682189B (zh) | 文件名显示方法及装置 | |
CN107967086B (zh) | 一种移动终端的图标排列方法及装置、移动终端 | |
CN111600729B (zh) | 群成员添加方法及电子设备 | |
CN111163227B (zh) | 一种分享方法及电子设备 | |
CN110851042A (zh) | 一种界面显示方法及电子设备 | |
CN107734049B (zh) | 网络资源的下载方法、装置和移动终端 | |
CN112559532B (zh) | 一种基于红黑树的数据插入方法、装置及电子设备 | |
CN111666421B (zh) | 数据处理方法、装置及电子设备 | |
CN110826044B (zh) | 一种解锁方法及电子设备 | |
CN109033297B (zh) | 一种图像显示方法及移动终端 | |
CN110659329A (zh) | 一种数据处理方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |