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按钮权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Vue2.0+ElementUI实现表格翻页功能

    基于Vue2.0+ElementUI实现表格翻页功能

    Element UI 是一套采用 Vue 2.0 作为基础框架实现的组件库,它面向企业级的后台应用,能够帮助你快速地搭建网站,极大地减少研发的人力与时间成本。这篇文章主要介绍了Vue2.0+ElementUI实现表格翻页功能,需要的朋友可以参考下
    2017-10-10
  • Vue中利用better-scroll组件实现横向滚动功能

    Vue中利用better-scroll组件实现横向滚动功能

    横向滚动这个功能是我们日常开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于Vue中如何利用better-scroll组件实现横向滚动的相关资料,需要的朋友可以参考下
    2021-06-06
  • vue实现表格增删改查效果的实例代码

    vue实现表格增删改查效果的实例代码

    本篇文章主要介绍了vue实现增删改查效果的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • vue3使用ref获取dom结果为'null'的原因详析

    vue3使用ref获取dom结果为'null'的原因详析

    这篇文章主要给大家介绍了关于vue3使用ref获取dom结果为'null'的原因详析,ref是Vue3中一个非常重要的功能,它可以用来获取DOM节点,从而实现对DOM节点的操作,需要的朋友可以参考下
    2023-07-07
  • vue 修改 data 数据问题并实时显示操作

    vue 修改 data 数据问题并实时显示操作

    这篇文章主要介绍了vue 修改 data 数据问题并实时显示操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue获取参数的几种方式总结

    vue获取参数的几种方式总结

    这篇文章主要介绍了vue获取参数的几种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue使用v-viewer实现图片预览

    Vue使用v-viewer实现图片预览

    这篇文章主要为大家详细介绍了Vue使用v-viewer实现图片预览,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Vue中router.beforeEach与beforeRouteEnter的区别及说明

    Vue中router.beforeEach与beforeRouteEnter的区别及说明

    这篇文章主要介绍了Vue中router.beforeEach与beforeRouteEnter的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造

    vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造

    这篇文章主要介绍了vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造,home.vue 组件有了两个属性:navs 和 tts 属性,具体实例代码大家跟随小编一起通过本文学习吧
    2018-09-09
  • 详解vue+nodejs获取多个表数据的方法

    详解vue+nodejs获取多个表数据的方法

    这篇文章主要为大家介绍了vue+nodejs获取多个表数据的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12

最新评论