el-tree取消子級(jí)不取消父級(jí)

  1. 選擇父級(jí) 自動(dòng) 選擇子級(jí)
  2. 選擇子級(jí)自動(dòng)選擇父級(jí)
  3. 取消子級(jí)不取消父級(jí)
<el-tree
    ref="permissionNode"
    :props="props"
    :data="all_permission"
    node-key="id"
    check-strictly
    @check="handleCheck"
    @check-change="handleCheckChange"
></el-tree>

    data() {
        return {
          props: {
                // label: 'title',
                children: "children"
          },
          all_permission:[{
                id:1,
                label: "父級(jí)" 
                children:[{
                      label: "子級(jí)"
                      parentId: 1, 
               }]
          }]
        };
    },
methods:{
    selectChildren(data) {
        data && data.children && data.children.map(item => {
            this.$refs.permissionNode.setChecked(item.id, true);
            if (data.children) {
                this.selectChildren(item)
            }
        });
    },
    handleCheck(data, { checkedKeys }) {
        // 節(jié)點(diǎn)所對(duì)應(yīng)的對(duì)象、節(jié)點(diǎn)本身是否被選中、節(jié)點(diǎn)的子樹中是否有被選中的節(jié)點(diǎn)
        //如果為取消
        if (checkedKeys.includes(data.id)) {
            //如果當(dāng)前節(jié)點(diǎn)有子集
            this.selectChildren(data);
        }

    },
handleCheckChange(data, checked, indeterminate) {
    // 節(jié)點(diǎn)所對(duì)應(yīng)的對(duì)象、節(jié)點(diǎn)本身是否被選中、節(jié)點(diǎn)的子樹中是否有被選中的節(jié)點(diǎn)
    //如果為取消
    if (checked === false) {
        //如果當(dāng)前節(jié)點(diǎn)有子集
        if (data.children) {
            //循環(huán)子集將他們的選中取消
            data.children.map(item => {
                this.$refs.permissionNode.setChecked(item.id, false);
            });
        }
    } else {
        //否則(為選中狀態(tài))
        //判斷父節(jié)點(diǎn)id是否為空
        if (data.parentId !== 0) {
            //如果不為空則將其選中
            this.$refs.permissionNode.setChecked(data.parentId, true);
        }
    }

    var check = this.$refs.permissionNode.getCheckedNodes();
    console.log(data, checked, indeterminate,check);
},
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容