返回顶部
首页 > 资讯 > 精选 >使用JavaScript怎么构造elementUI树状菜单
  • 439
分享到

使用JavaScript怎么构造elementUI树状菜单

2023-06-15 01:06:02 439人浏览 泡泡鱼
摘要

使用javascript怎么构造elementUI树状菜单?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。elementUI中自带树状菜单,就是数据结构有点复杂,

使用javascript怎么构造elementUI树状菜单?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

elementUI中自带树状菜单,就是数据结构有点复杂,偏向JSON风格。

数据库中菜单数据是二维表格,通过parentPk定义上下级,是list型。

需要把list转换成tree的结构。

elementUI树状菜单的数据结构

每个节点有4个属性,id、label、newVal、children数组

通过children数组包含关系标示上下级。

var treeData={        id: 1,        label: '一级 1',        newVal: "",        children: [{          id: 4,          label: '二级 1-1',          newVal: "",          children: [{            id: 9,            label: '三级 1-1-1',            newVal: "",          }, {            id: 10,            label: '三级 1-1-2',            newVal: "",            children:[{              id: 4444,            label: '四级 1-1-1-4',            newVal: "",            }]          }]        },{          id:22,          label:'二级 22',          newVal:''        }]      }

数据库返回的list

var itemlist =[        {itemCode:'11', itemName:'材料11',itemType:'2',parentPk:'1'},        {itemCode:'111', itemName:'材料111',itemType:'3',parentPk:'11'},          {itemCode:'1111', itemName:'材料1111',itemType:'3',parentPk:'111'},        {itemCode:'1112', itemName:'材料1112',itemType:'3',parentPk:'111'}       ]

设计思路

递归方法;

  1. 从list中遍历,找parentPk是当前节点的id的对象,组装成node,放到当前节点的children数组;同时,把list的对象删除。

  2. 对新的node,递归执行找子节点的过程。

  3. 退出条件:list为空或者循环list完毕。

具体代码

//root节点全局对象,因为不同的递归执行,要访问的一个tree对象var itemtree ={    id:'1',    label:'物料名称_整机',    children:[]}//数据库返回的菜单list全局对象,因为不同的递归执行,要访问的一个list对象var itemlist =[        {itemCode:'11', itemName:'材料11',itemType:'2',parentPk:'1'},        {itemCode:'12', itemName:'材料12',itemType:'2',parentPk:'1'},        {itemCode:'111', itemName:'材料111',itemType:'3',parentPk:'11'},          {itemCode:'1111', itemName:'材料1111',itemType:'3',parentPk:'111'},        {itemCode:'1112', itemName:'材料1112',itemType:'3',parentPk:'111'}       ]function buildtree(itemtreenode,itemlist){  if (itemlist.length===0) {    console.log('条件结束')    return   }  var j=0   //   var len=0  for(j=0,len=itemlist.length;j<len;j++){    console.log(new Date(),'j==>:',j,'len==>:',len,itemtreenode,itemlist)    if (itemtreenode.id===itemlist[j].parentPk){      var node={id:itemlist[j].itemCode,label:itemlist[j].itemName,children:[]}      itemtreenode.children.push(node)    //       itemlist.splice(j,1)        buildtree(node,itemlist)        }      }  console.log('循环结束')}console.log('begin')buildtree(itemtree,itemlist)  console.log(itemtree)

代码执行结果

使用JavaScript怎么构造elementUI树状菜单

可以看到组装树是正确的。

总结

ps:和设计方案对比,代码不是很完美,list中被引用的元素没有成功移除;移除后,后边会报错。暂时没找到好方法,对性能有点影响。

树data转list代码

与此相反的操作。

var treeData={        id: 1,        label: '一级 1',        newVal: "",        children: [{          id: 4,          label: '二级 1-1',          newVal: "",          children: [{            id: 9,            label: '三级 1-1-1',            newVal: "",          }, {            id: 10,            label: '三级 1-1-2',            newVal: "",            children:[{              id: 4444,            label: '四级 1-1-1-4',            newVal: "",            }]          }]        },{          id:22,          label:'二级 22',          newVal:'',          children:[{id:'2-2-1',label:'三级221',newVal:'',children:[],}]        }]      }var exp=undefinedvar itemlist=[]function tree2list(itemnode){  if(typeof(itemnode)=="undefined"){    console.log('返回:',itemnode)    return  }    if(itemnode.children && itemnode.children.length>0){  var i=0      for(i=0;i<itemnode.children.length;i++){      itemnode.children[i].parentPk=itemnode.id      console.log(itemnode.children[i])      itemlist.push(itemnode.children[i])             this.tree2list(itemnode.children[i])    }  }} console.log('begin')tree2list(treeData,itemlist)console.log(itemlist)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 使用JavaScript怎么构造elementUI树状菜单

本文链接: https://lsjlt.com/news/276586.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用JavaScript怎么构造elementUI树状菜单
    使用JavaScript怎么构造elementUI树状菜单?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。elementUI中自带树状菜单,就是数据结构有点复杂,...
    99+
    2023-06-15
  • js如何构造elementUI树状菜单的数据结构详解
    背景说明 elementUI中自带树状菜单,就是数据结构有点复杂,偏向json风格。 数据库中菜单数据是二维表格,通过parentPk定义上下级,是list型。 需要把list转换...
    99+
    2024-04-02
  • 利用java怎么构造一个无限层级的树形菜单
    这期内容当中小编将会给大家带来有关利用java怎么构造一个无限层级的树形菜单,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。构造一个实体类,用来存储节点,所以我们构造的需要四个对象(id,pid,name,...
    99+
    2023-05-31
    java ava
  • Spring Boot + Mybatis Plus怎么实现树状菜单
    本篇内容介绍了“Spring Boot + Mybatis Plus怎么实现树状菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希...
    99+
    2023-06-25
  • 怎么使用javascript隐藏菜单
    这篇文章主要介绍“怎么使用javascript隐藏菜单”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用javascript隐藏菜单”文章能帮助大家解决问题。一、HTML结构首先,我们需要在页面...
    99+
    2023-07-06
  • 怎么用Python构造决策树
    本篇内容介绍了“怎么用Python构造决策树”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!起步本章介绍如何不利用第三方库,仅用python自...
    99+
    2023-06-17
  • 如何使用Vue递归组件构建树形菜单
    今天小编给大家分享一下如何使用Vue递归组件构建树形菜单的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Vue.js中一个递...
    99+
    2023-07-04
  • Vue.js中怎么利用递归组件构建树形菜单
    本篇文章给大家分享的是有关Vue.js中怎么利用递归组件构建树形菜单,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Vue.js中一个递归组件...
    99+
    2024-04-02
  • 怎么使用Vue组件tree实现树形菜单
    本篇内容主要讲解“怎么使用Vue组件tree实现树形菜单”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Vue组件tree实现树形菜单”吧!vue 编写的树形菜单,小巧实用,支持vue1....
    99+
    2023-07-04
  • 怎么使用Vue递归组件实现树形菜单
    本文小编为大家详细介绍“怎么使用Vue递归组件实现树形菜单”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Vue递归组件实现树形菜单”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下图,点击后打开二级...
    99+
    2023-07-04
  • vue.js中怎么利用element-ui实现一个菜单树形结构
    这篇文章将为大家详细讲解有关vue.js中怎么利用element-ui实现一个菜单树形结构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。后台返回的数据格式是...
    99+
    2024-04-02
  • javascript构造函数怎么借用
    本篇内容主要讲解“javascript构造函数怎么借用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript构造函数怎么借用”吧!说明调用子类构造函数中的父类构造函数。采用apply...
    99+
    2023-06-20
  • JavaScript树结构深度优先算法怎么使用
    这篇文章主要讲解了“JavaScript树结构深度优先算法怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript树结构深度优先算法怎么使...
    99+
    2024-04-02
  • 使用JavaScript怎么将数组转为树形结构
    本篇文章给大家分享的是有关使用JavaScript怎么将数组转为树形结构,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.需求后台给了一个这样的数据让咱前端去转换为树形结构(没...
    99+
    2023-06-15
  • 什么是java构造器?怎么使用构造器?
    1、怎么使用构造方法通过一个类创建一个对象,这个过程叫做实例化。实例化就是通过调用构造方法(又叫做构造器)实现的。1.1、什么是构造方法方法名和类名一样(包括大小写)没有返回类型实例化一个对象的时候,必然调用构造方法public class...
    99+
    2016-02-13
    java教程 构造器
  • javascript new怎么调用构造函数
    本篇内容主要讲解“javascript new怎么调用构造函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript new怎么调用构造函数”吧!说明在内存中创建新对象。新对象内部的...
    99+
    2023-06-20
  • javascript怎么构造可以上传文件的form表单
    这篇文章主要介绍“javascript怎么构造可以上传文件的form表单”,在日常操作中,相信很多人在javascript怎么构造可以上传文件的form表单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jav...
    99+
    2023-06-03
  • 怎么使用HTML+CSS+JavaScript实现下拉菜单效果
    今天小编给大家分享一下怎么使用HTML+CSS+JavaScript实现下拉菜单效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • 利用Freemarker怎么生成一个树形导航菜单
    利用Freemarker怎么生成一个树形导航菜单?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。很多导航菜单是树形的,即一级一级往下分,这样的结构固然需要用递归来处理。 对于...
    99+
    2023-05-31
    freemarker 树形导航
  • 怎么使用python字典生成树状图
    这篇文章主要介绍了怎么使用python字典生成树状图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用python字典生成树状图文章都会有所收获,下面我们一起来看看吧。python字典生成树状图from&n...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作