方法一:
//当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)
}
})
}
},