VueのElementUIツリーコンポーネントエコーの問題(設定はこのビジネスシナリオは適切ではありません持って、親の選択のすべての子を選択します)

そのようなA問題のビジネスシナリオがあります

フロントエンドのビジネス要件を保存する必要が 半选节点

ソリューション

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);
});

おすすめ

転載: www.cnblogs.com/dadiwm321/p/elemelt_ui_tree.html