el-tree資料回顯,解決子級部分選中,父級全選效果
阿新 • • 發佈:2021-02-01
技術標籤:vuejavascriptvue.js
在el-tree中回顯資料有一個很明顯的坑,只要回顯的資料裡有父級的id,不管當前父級下的子級是部分選中還是全選,父級的check效果都是全選。
預計效果圖:
實際效果圖:
我看了很多博主說用setChecked迴圈便利來勾選葉子節點,但我試了半天也沒用,setTimeout,nextTick都試了,無效。所以乾脆自己寫。我還是用的setCheckedKeys來實現勾選的,邏輯很簡單,arr
是儲存葉子節點的陣列。利用getNode()
獲取當前節點,在後段返回給我的資料中迴圈判斷當前節點是否葉子結點,是存入arr
當中。在用setcheckedKey(arr)
const arr = []
res.data.forEach(f=>{
if(!this.$refs.tree.getNode(f.permissionId).childNodes || !this.$refs.tree.getNode(f.permissionId).childNodes.length) {
arr.push(f.permissionId)
}
})
this.$refs.tree.setCheckedKeys(arr)