<div>
<el-checkbox @change="isAllChange" v-model="isAll">选中全部</el-checkbox>
<el-checkbox @change="openAllChange" v-model="openAll">展开全部</el-checkbox>
</div>
<div class="el-tree-box">
<el-tree
:data="AuthorityList"
:default-expand-all="openAll"
show-checkbox
ref="tree"
@check-change="handleCheck"
node-key="id"
:default-expanded-keys="defaultIds"
:default-checked-keys="defaultIds"
:props="defaultProps">
</el-tree>
</div>
export default {
name: "AuthorityGroup",
data(){
return{
AuthorityList:[],
isAll:false,
openAll:false,
}
}
}
全选于非全选
isAllChange(val){
if(val){
this.$refs.tree.setCheckedNodes(this.AuthorityList);
}else {
this.$refs.tree.setCheckedNodes([]);
}
},
递归全展开
openAllChange(val){
if(val){
this.unFoldAll2(this.AuthorityList)
}else {
this.collapseAll2(this.AuthorityList)
}
},
unFoldAll2(data) {
let self = this;
data.forEach((el) => {
self.$refs.tree.store.nodesMap[el.id].expanded = true;
el.subs && el.subs.length > 0
? self.unFoldAll2(el.subs)
: "";
});
},
collapseAll2(data) {
let self = this;
data.forEach((el) => {
self.$refs.tree.store.nodesMap[el.id].expanded = false;
el.subs && el.subs.length > 0
? self.collapseAll2(el.subs)
: "";
});
},```