1. 程式人生 > >element ui 全載入樹節點內子項的動態更新

element ui 全載入樹節點內子項的動態更新

為了持之以恆的勳章,不得不在9月的最後幾天,水幾篇原創文章(無奈ing)。本人剛接觸element ui,屬於白痴一個,如果有更好的的方法,歡迎大神留言交流,感激不盡!!!

其實跟《element ui 懶載入樹節點內子項的動態更新》道理大致是一樣的。

我們得到選中的的節點,或者說是待更新的節點,手動刪掉下面的所有子節點,然後再新增子節點。所有的方法,還是element提供的方法。

function refreshAllLoadTree(theTree, data, selectNode) {
  if (theTree && selectNode && data) {
    if (selectNode.nextSibling) {
      const nextNode = selectNode.nextSibling
      theTree.remove(selectNode.data)
      theTree.insertBefore(data, nextNode)
    } else if (selectNode.previousSibling) {
      const beforeNode = selectNode.previousSibling
      theTree.remove(selectNode.data)
      theTree.insertAfter(data, beforeNode)
    } else {
      const parentNode = selectNode.parent
      theTree.remove(selectNode.data)
      theTree.append(data, parentNode)
    }
  } else {
    console.error('全載入樹節點的動態重新整理,未傳入樹或選中的節點!')
  }
}

theTree 就是通過元件索引得到的tree,直白點也就是 this.$refs.tree

data 是更新過的節點

selectNode是選中的節點(待重新整理父節點)

這裡面的remove、insertBefore、insertAfter、append都是element 樹封裝好的方法

上面的方法可以改寫一下,也可以寫迴圈的,遍歷 selectNode下的children挨個remove刪除,再迴圈向 selectNode內append子節點。那就跟《element ui 懶載入樹節點內子項的動態更新》道理是完全一樣的。