若依页面权限

13 篇文章 0 订阅

 页面权限

管理项目接触最多也最基本的就是权限控制,例如不同的用户对不同页面的操作权限,在同一页面对不同功能按钮的展示和使用等;封装了一个指令权限,能简单快速的实现按钮级别的权限判断

这里涉及到 v-permission 标签,在directive.permission文件夹下;其中包括权限控制 hasPermi.js,角色控制 hasRole.js ,还有标签的封装 index.js ,见下

4.1 使用权限字符串 v-hasPermi

// 单个
<el-button v-hasPermi="['system:user:add']">存在权限字符串才能看到</el-button>
// 多个
<el-button v-hasPermi="['system:user:add', 'system:user:edit']">包含权限字符串才能看到</el-button>

4.2 使用权限字符串 v-hasRole

// 单个
<el-button v-hasRole="['admin']">管理员才能看到</el-button>
// 多个
<el-button v-hasRole="['role1', 'role2']">包含角色才能看到</el-button>

注意!在某些情况下,是不适合使用 v-hasPermi,如元素标签组件,只能通过手动设置v-if。 可以使用全局权限判断函数,用法和指令 v-hasPermi 类似;例如页面有多个标签组,点击不同标签组下方则会显示不同内容,,不同角色会看到不同的标签组,如果我们这里还是直接用 v-hasPermi 来操作,则被隐藏的是标签组下面的对应内容,但是标签没有被隐藏;这时我们可以用下面这种方式来解决

<template>
  <el-tabs>
    <!--3. 加入v-if="checkRole/Permi"来操作-->
    <el-tab-pane v-if="checkPermi(['system:user:add'])" label="用户管理" name="user">用户管理</el-tab-pane>
    <el-tab-pane v-if="checkPermi(['system:user:add', 'system:user:edit'])" label="参数管理" name="menu">参数管理</el-tab-pane>
    <el-tab-pane v-if="checkRole(['admin'])" label="角色管理" name="role">角色管理</el-tab-pane>
    <el-tab-pane v-if="checkRole(['admin','common'])" label="定时任务" name="job">定时任务</el-tab-pane>
   </el-tabs>
</template>

<script>
import { checkPermi, checkRole } from "@/utils/permission"; // 1. 导入权限判断函数

export default{//2. 对判断函数进行引用
   methods: {
    checkPermi,
    checkRole
  }
}
</script>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值