Vue ElementUI Tree組件 回顯問題(設置選擇父級時會全選所有的子級,有此業務場景是不適合的)


業務場景下有這樣的問題

業務需求需要保存前端 半選節點

解決方案

let checked = this.$refs.menuTree.getCheckedKeys();
//此方法獲取半選節點
let halfChecked = this.$refs.menuTree.getHalfCheckedKeys();
//我們合並兩個數組,便獲取到了我們選中的節點及半選節點
let cArr=checked.concat(halfChecked);

之后業務數據包含半選的節點,在前端回顯時會全選他的子節點,???!!非我們預期

其中一種解決方法,去除業務數據中的父節點信息

let resData=[]//獲取后端數據(包含半選節點,數據結構為 數組...[{id:XX,pid:XXX},...])
let checked = [];//需要選中的節點
let pidArr=[];//獲取父節點
for (let item of resData) {
    pidArr.push(item.pid);
}

for (let item of resData) {
    let id=item.id;
    let isP=pidArr.includes(id);
    if(!isP){
        checked.push(id);
    }
}

this.$nextTick(function () {
    that.$refs.menuTree.setCheckedKeys([]);
    that.$refs.menuTree.setCheckedKeys(checked);
});


免責聲明!

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



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