使用element-ui tree獲取子節點全選的父節點的信息


使用el-tree來展示機構信息,然后傳給后台用來作為查詢條件。最初版本是把所有選中的節點都傳給后端,后端使用in的方式來查詢數據。這就出現一個問題,如果選中的是根節點,就會把整棵樹的數據都傳給后端,sql執行性能差。

后端提出要求,如果子節點都選中了,就不要傳子節點了,只要把父節點的信息傳出去;如果子節點只是部分選中,那么就把選中節點的信息傳出去;翻爛了element-ui文檔,也沒找到現成的方法。只能自己寫了,具體代碼如下(參考了element-ui tree的源碼)

getSimpleCheckedNodes(store) {
const checkedNodes = [];
const traverse = function(node) {
const childNodes = node.root ? node.root.childNodes : node.childNodes;

childNodes.forEach(child => {
if (child.checked) {
checkedNodes.push(child.data);
}
if (child.indeterminate) {
traverse(child);
}
});
};
traverse(store)
return checkedNodes;
}

....
// 調用
getSimpleCheckedNodes(this.$refs.tree.store);// el-tree的ref是tree


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM