权限设置 element - ui 树形控件 父级半选状态id和选中子级id一起传给后台 回显去掉父级半选状态id

本文详细介绍了Element UI中树形组件的高级使用技巧,包括如何获取半选中的节点ID,将全选和半选状态的节点ID传递给后台,以及如何在更新数据时正确显示树形结构的状态,避免半选状态导致的视图错误。
< el - tree
default - expand - all
:data = "treeData"
show - checkbox
node - key = "id"
:filter - node - method = "filterNode"
:default - checked - keys = "checkedKeys"
ref = "menuTree"
@check - change = "getNodeData"
:props = "defaultProps" >
</el - tree >

//传给后台

var parentArr = this.$refs.menuTree.getHalfCheckedKeys();
var childeArr = this.$refs.menuTree.getCheckedKeys();
var arr = childeArr.concat(parentArr);

//更新数据时的树形显示 (去掉半选状态id避免视图半选状态id下全选)

var arr = response.data; //后台返回的id组成的数组
var newArr = [];
var item = '';
arr.forEach(item=>{
     checked(item,this.treeData,newArr)
})
this.checkedKeys = newArr;


function checked(id,data,newArr){
 data.forEach(item => {
     if(item.id == id){
           if( item.children.length == 0 ){
                newArr.push(item.id)
            }
     }else{
          if( item.children.length !=0 ){
              checked(id,item.children,newArr)
           }
      }
   });
};

 

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值