elementUI tree组件权限分类获取当前选择所有数据,并且必须把父级ID一起传过去。
效果图
2222.png
20181129172141512.png
<div style="width: 70%;margin: 0 auto;margin-top: 0px;">
<el-tree :data="data" show-checkbox default-expand-all node-key="id" ref="tree" icon-class='' :check-on-click-node='false'
:expand-on-click-node="false" :default-checked-keys="xz_id" :props="defaultProps" @check-change="handleCheckChange">
</el-tree>
</div>
//对应的方法,文档都有标注。不知道可以去看一下
回显效果图
微信图片_20190719161857.png
defaultProps: {
children: 'children', //字段里的children
label: 'title' //这里我是按照title循环
},
this.$refs.tree.getCheckedKeys() //获取当前选择的id,不带父级
this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys()) //和当前的选中的和半选中的合并
let self = this;
this.$axios.post(this.$url + "/shop/abcdefg").then((res) => {
self.data = res.data.list
let arr = [] //arr是循环一级和二级的id
res.data.list.forEach((val)=>{
arr.push(val.id)
val.children.forEach((res)=>{
if(res.children.length!=0){
arr.push(res.id)
}
})
})
//这里我是这样回显的。拿着刚刚选中的所有数据,和arr里的ID匹配,匹配到的就是父级id,匹配不到的就是子级的,然后赋值给xz_id ok啦哈哈哈
this.xz_id = JSON.parse(JSON.parse(localStorage.getItem('tree'))).filter(item=>arr.indexOf(item)==-1)
})
样式也贴出来,省的大家写了
.el-tree-node__content {
width: 140px !important;
float: left !important;
margin-left: 5px !important;
}
.el-tree>div {
margin: 30px 0 !important;
background: #fff !important;
}
.el-tree-node.is-current>.el-tree-node__content:hover {
background: #fff !important;
}
.el-tree-node__content:hover {
/* background: #fff !important; */
}
.el-tree-node__expand-icon.is-leaf {
display: none;
}
.el-tree-node__expand-icon.expanded {
display: none;
}
.el-tree>div {
margin: 10px 0 !important;
background: #fff !important;
}
.el-tree-node.is-current>.el-tree-node__content:hover {
background: #fff !important;
}
.el-tree-node__content:hover {
/* background: #fff !important; */
}
.el-tree-node__expand-icon.is-leaf {
display: none;
}
.el-tree-node__expand-icon.expanded {
display: none;
}
.el-tree-node__content {
width: 140px !important;
float: left !important;
margin-left: 5px !important;
}
.el-tree>div {
padding: 5px 0 !important;
height: auto;
overflow: hidden;
background: #fff !important;
border-bottom: #F0F0F0 dotted 1px;
}
/* .el-tree-node.is-current>.el-tree-node__content:hover {
background: #fff !important;
} */
.el-tree-node__content:hover {
/* background: #fff !important; */
}
.el-tree-node__expand-icon.is-leaf {
display: none;
}
.el-tree-node__expand-icon.expanded {
display: none;
}
.el-tree-node__children {
border-left: #ccc dotted 1px;
}
.el-tree-node:hover {
background: #F5F7FA !important;
}
把在工作中遇到的问题记录下来,百度一大堆非得让改源码,改你妹哈哈,折腾了好一阵,一起加油ヾ(◍°∇°◍)ノ゙
饿