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