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