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