zoukankan      html  css  js  c++  java
  • el-tree获取所有子节点以及给子节点添加属性

    获取所有子节点数据

    关键代码

    var userArr=[]
                function getChildren(data){
                    
                    if(data && data.length>0){
                        data.forEach((item,index)=>{
                            if(item.children){
                                getChildren(item.children)
                            }else{
                                if(item.type=="student"){
                                    userArr.push(item)
                                }
                            }
                        })
                    }                
                    return userArr;
                }
    View Code

    userArr全局变量,不要定义在函数里面

    item.type=="student"  这里是子节点的判断条件;

    调用

    var treeUsers =getChildren(userData)
    console.log(treeUsers)

    给子节点添加属性

    关键代码

    function  formatTreeData(data) {
          if (data && data.length > 0) {
            data.forEach((item) => {
              if (item.children) {
                //  item.rid = item.id +randomWord(5);
                .formatTreeData(item.children);
              } else {
                item.rid = item.id + randomWord(5);
                return;
              }
            });
          }
          return data;
        };
    function randomWord(length = 32) {
          //默认32位
          //由以下元素组成
          let arr = [
            "0",
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "a",
            "b",
            "c",
            "d",
            "e",
            "f",
            "g",
            "h",
            "i",
            "j",
            "k",
            "l",
            "m",
            "n",
            "o",
            "p",
            "q",
            "r",
            "s",
            "t",
            "u",
            "v",
            "w",
            "x",
            "y",
            "z",
          ];
          let num = "";
          for (let i = 0; i < length; i++) {
            num += arr[parseInt(Math.random() * arr.length)];
          }
          return num;
        }

    给所有子节点添加唯一性rid属性,这是因为在工作项目中遇到相同用户信息存在不同部门中,原本后端生成的id属性不具有了唯一性,在是使用setChecked等需要用到node-key属性,它的属性值必须是唯一存在的.

    也可以给他们某个节点添加不可用功能。

  • 相关阅读:
    选择适合什么模式
    Filter做用户授权的例子
    分析LogFilter
    理解session
    XML定义用途
    web服务后台应用工作原理
    企业级应用和互联网应用的区别
    轻量级Java EE企业应用实战的目标
    软件工程期末项目总结
    软件工程之学习报告
  • 原文地址:https://www.cnblogs.com/shanchui/p/14859321.html
Copyright © 2011-2022 走看看