vue-element-admin按钮级权限管控的实现

 更新时间:2022年04月28日 10:09:43   作者:乐之终曲  
开发离不开权限,不同的用户登录,根据不同的权限,可以访问不同的管理目录,本文主要介绍了vue-element-admin按钮级权限管控的实现,具有一定的参考价值,感兴趣的可以了解一下

随着软件的发展,网站从最初的满足用户业务需求到提升用户。就比如一个按钮只要求权限方面的管控我们可以通过 shiro,注解等方式来实现,但是页面上用户点击后没反应或者点击后弹框没权限,这显然不是一个好的用户体验,因此通过前端来实现权限管控也是很有必要的。

思路

1.获取按钮权限
2.按钮权限保存在前端全局中 vuex
3.页面加载按钮时通过判断权限的存在与否,控制按钮的显示隐藏或者样式选择

PS:事实证明,思路清晰,实现起来就很容易,没几行代码

表结构与数据

就表结构方面设计上不管有哪些字段,我们需要一个字段来存储唯一权限,其他都是浮云,如图

打印看看获取到的数据

可以看到我只返回了权限数组,因为其他字段没有意思,当然直接返回对象也是 ok 的

实现

先来添加下 vuex 全局变量,方便后面获取到按钮权限后进行存储

/src/store/modules/user

新增 button 全局变量,并在新增 mutations 操作 button

   

为啥是在这,因为按钮的权限是属于每个用户的

/src/store/getters

使用时我们一般需要通过这个东西来获取全局变量中的值
这个 state.user.button 以我的理解就是上图中 user 对象下的 button

/src/store/modules/user

回到 user 文件,现在我们可以把取到的 button 权限放到全局变量中就行了

做过权限模块的都知道这个 GetUserInfo 方法,每次缓存失效后,都会调用这个方法去获取必要的用户信息,这里按钮权限我也是在这里直接返回获取。
如果说你的按钮权限时单独写的,你也可以在这个文件里写个获取的方法,然后再 permission 文件里去调用,如图

当然我不太建议单独去获取,因为由于vue自身特性的原因,vuex中的数据在页面刷新之后其中的数据会初始化,也就是数据没了,这个时候就会去调用后台去获取数据,如果每次都去单独获取,在高并发等情况下这种频繁的重复数据的请求会给数据库带来巨大的压力,因此像一些用户权限数据,我比较建议在登陆时统一获取后保存到 redis 这种地方,以后的请求都只需要从 redis 取就可以了,效率上也会得到巨大的提升。

按钮调用

调用就很简单了,直接获取全局中的权限,用 v-if 判断是否包含这个按钮就行了,includes 后面的字符串就是对应这个按钮的权限
PS:如果存储起来的不是这种简单的字符串数组,也可以改为 some 函数去判断

到此这篇关于vue-element-admin按钮级权限管控的实现的文章就介绍到这了,更多相关vue-element-admin按钮权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 前端vue3手动设置滚动条位置/自动定位详细代码

    前端vue3手动设置滚动条位置/自动定位详细代码

    这篇文章主要给大家介绍了关于前端vue3手动设置滚动条位置/自动定位的相关资料,文中通过代码介绍的非常详细,对大家学习学习或者使用vue3具有一定的参考解决价值,需要的朋友可以参考下
    2024-05-05
  • VUE2旧项目重新安装依赖后@vue/compiler-sfc编译报错问题

    VUE2旧项目重新安装依赖后@vue/compiler-sfc编译报错问题

    在VUE2旧项目中重新安装依赖后,如果遇到@vue/compiler-sfc编译报错,首先需要检查package.json文件中的Vue版本是否升级到2.7版本,2.7版本的编译插件不再支持/deep/这种样式穿透,版本^和~的区别在于^只能锁住第一位数
    2025-01-01
  • Vue.js实现watch属性的示例详解

    Vue.js实现watch属性的示例详解

    本文讨论了watch函数是如何利用副作用函数和options进行封装实现的,也通过调度函数去控制回调函数的立即执行和执行时机,还可以解决竞态问题,感兴趣的可以了解一下
    2022-04-04
  • vue跳转页面的几种方法(推荐)

    vue跳转页面的几种方法(推荐)

    这篇文章主要介绍了vue不同方法跳转页面,本文给大家分享多种方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 在Vue中使用Echarts实例图的方法实例

    在Vue中使用Echarts实例图的方法实例

    这篇文章主要给大家介绍了关于如何在Vue中使用Echarts实例图的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • vue项目在运行npm run build时卡住不动问题及解决方案

    vue项目在运行npm run build时卡住不动问题及解决方案

    这篇文章主要介绍了vue项目在运行npm run build时卡住不动问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 使用Vue 实现滑动验证码功能

    使用Vue 实现滑动验证码功能

    本文章主要来介绍一下第一个阶段,也就是前端校验的验证码的实现,下面来介绍一下拖动验证码的具体实现。这篇文章主要介绍了利用 Vue 实现滑动验证码,需要的朋友可以参考下
    2019-06-06
  • vue项目使用luckyexcel预览excel表格功能(心路历程)

    vue项目使用luckyexcel预览excel表格功能(心路历程)

    这篇文章主要介绍了vue项目使用luckyexcel预览excel表格,我总共尝试了2种方法预览excel,均可实现,还发现一种方法可以实现,需要后端配合,叫做KKfileview,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • 解决vue安装less报错Failed to compile with 1 errors的问题

    解决vue安装less报错Failed to compile with 1 errors的问题

    这篇文章主要介绍了解决vue安装less报错Failed to compile with 1 errors的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue项目build后,图片加载不出来的解决

    Vue项目build后,图片加载不出来的解决

    这篇文章主要介绍了Vue项目build后,图片加载不出来的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论