element-ui树形控件(利用递归把后端数据转换成树形)

Posted SpaceX7_s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element-ui树形控件(利用递归把后端数据转换成树形)相关的知识,希望对你有一定的参考价值。

element的tree树形控件需要的是树形结构的数据,一个对象里面放入当前节点子节点,以数组的形式存放

通过文档可以发现,树形控件需要通过data属性接收数据,数组里的对象的label属性为一级节点,如果需要在一级节点下设置二级节点,那么就是在对象里放入一个数组

声明节点的值通过label查找,如果修改为 label:‘name’,那么节点的值就会通过name属性去查找,绑定给 :data 的数组里的对象就应该设置为

 list: [
        
          name: "xxx",//一级节点的值
          /*默认设置从children查找子节点,意思就是如果当前对象
            如果有children属性并且为一个数组,数组里的对象有name
            属性,那么该属性就是该节点的子节点     
          */
          children: [
            
              name: xxx,//二级节点的值
            ,
          ],
        ,
      ],

从后端返回的数据是一个数组,里面是一个个的对象,不是属性结构,使用递归把数据转换成树形结构,通过条件知道,一级节点的对象pid属性为空,当前节点的id等于它子节点的pid

export function transListToTreeData(list, RootValue) 
  let arr = [];
  list.forEach((item) => 
    //如果数据对象的pid为 '' 说明数据为根节点
    if (item.pid === RootValue) 
      let children = transListToTreeData(list, item.id); //寻找id等于该对象pid的数据,为它的子节点,返回一个数组
      if (children.length) 
        item.children = children; //往对象添加一个children属性,属性值为一个数组
      
      arr.push(item);
    
  );
  return arr;


以上是关于element-ui树形控件(利用递归把后端数据转换成树形)的主要内容,如果未能解决你的问题,请参考以下文章

Element-Ui级联选择器递归显示某一级树形结构数据

elementuitable表格中把后端传过来的数据加了逗号不显示怎么回事

elementui 后台管理系统遇到的问题(二) 树形控件 el-tree

elementui 后台管理系统遇到的问题(二) 树形控件 el-tree

Element-ui中tree树形控件全选与取消全选的功能实现

Element-UI的组件改造的树形选择器(树形下拉框)