el-tree 全選,$refs.tree無法獲取


方法一:

//當el-tree設置check-strictly時,通過setCheckedNodes全選方法失效,父子不關聯,只能選中一級父節點
//全選
this.$refs.tree.setCheckedNodes(this.treeData);
//清空
this.$refs.tree.setCheckedKeys([]);

方法二:

selectAllNodes: function() {
      //  獲取根節點
      let rootNode = this.$refs.tree.getNode(this.treeData[0].id).parent;
      travelNodes(rootNode);
      function travelNodes(tmpRoot) {
        // 選中該節點
        tmpRoot.checked = true;
        // 葉子節點
        if (tmpRoot.childNodes.length === 0) {
          return;
        }
        // 不是葉子節點,遞歸遍歷
        else {
          let tmpChildNoes = tmpRoot.childNodes;
          for (let i = 0; i < tmpChildNoes.length; i++) {
            travelNodes(tmpChildNoes[i]);
          }
        }
      }
    },

方法三:

(因使用彈窗, el-tree初始未渲染,無法獲取$refs, 遞歸獲取key)

traverseTree(val) {
      if(val && val.length >= 0) {
        val.forEach((item) => {
          if(item.children == undefined || item.children.length <= 0) {
            this.checkedIds.push(item.key)
            console.log(item.key, 'key..');
          } else {
            this.traverseTree(item.children)
          }
        })
      }
    },

 


免責聲明!

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



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