一、defaultExpandAll
默認展開所有樹節點
1、需求:默認展開所有樹節點
?
2、問題:
v-if="data.length"判斷的層級不夠,只判斷到了物理那一層,所以只展開到那一層。
3、原因分析:
默認展開所有樹節點, 如果是異步數據,需要在數據返回后再實例化,建議用 v-if="data.length";當有 expandedKeys 時,defaultExpandAll 將失效。
4、解決辦法:
判斷:到最里面的那一層數據都有了之后再渲染。
?
二、點擊文字可以“選中/取消選中”節點
1、需求:點擊文字選中/取消選中節點
?
2、解決辦法:
<a-treecheckablev-model="checkedKeys":tree-data="treeData"@select="treeNodeSelect">
</a-tree>/**
* @description: 點擊文字也能選中
* @return {*}
*/
const treeNodeSelect= (selectedKeys, e) => {// 轉成真正的數組const toArray = (list) => Array.from(list || []);// 獲取被點擊的樹節點const node = e.nativeEvent.path.find((item) => {return toArray(item.classList).findIndex(className => className === "ant-tree-treenode-switcher-open") !== -1;});// 獲取checkbox復選框const checkbox = toArray(node.childNodes).find((item) => {return toArray(item.classList).findIndex(className => className === "ant-tree-checkbox") !== -1;})// 模擬點擊checkbox && checkbox.click();
};
?