十二、分配权限

本文介绍了如何在前端实现权限管理,包括点击分配权限按钮弹出对话框,使用el-tree控件展示权限数据,设置复选框、默认展开所有结点,以及加载当前角色已有权限。同时,详细阐述了如何优化树形控件展示效果,如添加复选框和默认勾选功能。此外,还展示了如何通过API完成权限分配,获取选中结点的key值,并在分配成功后更新角色列表并关闭弹框。
摘要由CSDN通过智能技术生成

(1)弹出分配权限对话框,并请求权限数据

1. 为分配权限图标添加点击事件。

2. 当点击时,首先获取权限数据,然后保存获取的权限数据,并显示分配权限对话框

3. 添加分配权限对话框

                         

(2)初步配置并使用el-tree控件

1. 根据el-tree控件,将获取的权限数据以树的形式显示在分配角色对话框

 

(3)优化树形控件的展示效果

1. 加上属性show-checkbox,实现在树形控件的每个结点前面加上复选框

2. 加上node-key="id", 使复选框选择的是具有唯一标识性的id值

3. 加上属性default-expand-all,打开分配权限弹窗时,默认展开所有结点

4. 效果图

(4)加载当前角色已有的权限(即打开角色分配弹框时,当前角色已有的权限默认勾选)

1. 点击分配权限按钮时,获取当前角色已有的三级权限id,并存到数组defKeys

   通过递归的方式获取: getLeafKeys(node, arr) 获取node结点下所有的三级结点id,并存到数组arr中

2. 将该数组赋值给属性default-checked-keys

获取结点node下所有三级结点的id值,并存到数组arr

在打开分配权限弹框之前,获取当前结点的所有三级节点id值

问题:当点击完一个结点的权限分配按钮之后,不会清空defKeys数组中的值。在点击下一个结点时,也会把上一个结点的三级目录默认勾选

解决:为分配权限对话框添加一个关闭事件,关闭时将数组defKeys清空

 

(5)调用API完成分配权限的功能(点击对话框中的确定,分配权限)

由参数rids可知,我们需要获取所有被选中和半选中结点的key值,则需要用到树形控件的两个方法:


1. 点击分配权限图标时,将保存当前结点的id,以便为其分配权限

2. 通过在树形控件中添加ref属性,获取该控件,便于调用上述的两个方法,获取所有被选中和半选中结点的key值

3. 为分配权限弹框的确定按钮添加点击事件

4. 点击事件所对应的方法:

4.1 首先通过ref获取所有选中和半选中结点的key值;

4.2 通过...展开合并的方式,将这些key放到同一个数组,然后用,拼接存到idStr;

4.3 然后访问roles/当前节点的id/rights,并将idStr传过去;

4.4 最后获取分配权限的信息,若分配成功,则重新获取角色列表(回到角色列表),隐藏弹框

5. 效果图

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值