vue+ruoyi权限控制,控制dialog是否出现

描述:需求是对一个进入系统,弹窗提示的消息提醒,根据登录用户角色的不同,控制其是否弹出的问题

解决思路:我找了很多关于ruoyi权限控制的解决方案,大多都是通过v-hasPermi=[]来控制的或者v-hasRole=[]来控制的如下:

<el-button
        type="primary"
        plain
        size="mini"
        :disabled="multiple"
        @click="printBoxExcel"
        v-hasPermi="['business:boxData:print']"
      >打印箱清单</el-button>

但是我发现这个对于dialog并不起作用,v-hasPermi=[]等只对div button...这些起作用,然后我就想着在dialog外面包一个div发现即使div没有权限,但是当dialog的:visible.sync="overOpen"为true的时候弹窗还是会显示的,后面我的解决如下:

  1. 拿到用户权限列表(我这里是写了封了一个方法引入的),然后判断给用户的权限标识是否存在于权限列表中

import store from '@/store'
export function hasPerMission(data){
        const permissions = store.getters && store.getters.permissions
        if(permissions.includes(data) || permissions[0]=='*:*:*'){
            return true
        }
            return false
        
    }
  1. 然后在dialog使用v-if,通过v-if来控制其是否展示记得在使用的地方要引入hasPerMission哦

<el-dialog v-if="logShow"  title="逾期提醒" :visible.sync="overOpen" width="500px" append-to-body  @close='resetRemindLog'>
      <span>当前有{{dataLength}}份件袋逾期未归还,请处理</span>
      <div slot="footer" class="dialog-footer">
        <el-button  type="primary" @click="goToOverDetial()" >查看详情</el-button>
        <el-button  @click="resetRemindLog()">关闭弹窗</el-button>
      </div>
    </el-dialog>

//使用方法
 getoverList(){
      this.logShow = hasPerMission('business:archive:messageReminder')//business:archive:messageReminder这个就是我设置的权限标识,这个在系统配置
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值