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屬性,它的屬性值必須是唯一存在的.

也可以給他們某個節點添加不可用功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM