element-ui树形组件做权限管理
程序员文章站
2022-06-07 18:37:06
...
- 最近新开了个项目,不巧的是我又要做菜单权限控制这块,再次使用element tree组件,我这次在获取角色权限时直接使用tree组件封装的方法:
this.rightIds = [ ...this.$refs.rightTree.getCheckedKeys(), ...this.$refs.rightTree.getHalfCheckedKeys() ];
获取tree上勾选和半勾选的菜单即可。 - 想起上次在tree上加了个change事件,每次都会重复获取之前已经取得的key,很老火,唉。。。。。当时没有想到直接调用方法获取key。
- 渲染默认勾选,之前的项目是确定了权限的层级,我直接一层一层的遍历的,这次这个项目的权限层级没有确定,这就促使我找方法解决这个问题。我用到了递归获取角色的权限,在tree上使用default-checked-keys属性。
// 默认勾选
getleafKey(node, arr) {
if (!node.menuVoList) {
arr.push(node.menuId);
} else {
node.menuVoList.forEach(item => {
this.getleafKey(item, arr);
});
}
},
角色本身是拥有一个树形权限,所有函数中的node,传的是角色对象,递归判断如果没有下级节点时,将节点的key放到数组中。这样就能获取到所有权限(不包含父节点)
上一篇: 炫酷盒子 哪位高手用过