广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue路由权限和按钮权限的实现示例
  • 485
分享到

vue路由权限和按钮权限的实现示例

2024-04-02 19:04:59 485人浏览 泡泡鱼
摘要

目录一 菜单路由权限二 按钮权限的实现一 菜单路由权限 1.1前端路由配置表 1.2后端数据返回 1.3 拿到数据后存到Vuex  1.4 扁平化的目的是为了跳转路由

一 菜单路由权限

1.1前端路由配置表

1.2后端数据返回

1.3 拿到数据后存到Vuex

 1.4 扁平化的目的是为了跳转路由时进行对比权限

//扁平化方法
flatten(data) {
 return data.reduce((arr,{name,id,resourceType,dimensionTypeCode,btnPermissions,path,children = [],}) =>
   arr.concat([{name,id,resourceType,dimensionTypeCode,btnPermissions,path,},],
     this.flatten(children)
    ),[]);
},

1.5 el-menu中直接拿到vuex中的数据进行渲染 sidebar-item组件的代码就不贴了

<el-menu
  :default-active="activeMenu"
  :collapse="isCollapse"
  :unique-opened="false"
  :collapse-transition="false"
  mode="vertical"
>
 <sidebar-item
    v-for="(route,index) in productMenuList"
    :key="index"
    :item="route"
    :base-path="route.path"
  />
</el-menu>
 
//js部分
computed: {
  productMenuList() {
    if(this.$store.state.user.user.userMenu){
      return this.$store.state.user.user.userMenu;
    }     
  },
},

 1.6 router跳转拦截判断

router.beforeEach((to, _from, next) => {
  document.title = "后台系统-" + to.meta.title // 动态title
  if (whiteList.includes(to.path)) {
    next();
  } else {
    if (storageLocal.getItem("token")) {
      if (hasPermission(to, store.state.user.user.menuTile)) {
        next();
      }
      else {
        next('/error/404')
      }
    }
    else {
      next({
        path: "/login",
        query: {
          redirect: to.fullPath
        }
      })
    }
  }
})
//获取是否有当前跳转的菜单权限
function hasPermission(router, acceSSMenu) {
  let menu = getMenuByPath(router.path, accessMenu);
  if (menu.path) {
    return true;
  }
  return false;
}

1.7 getMenuBypath方法

这里我是拿path进行比对的,也可以拿name,只要是路由中唯一的都可以;

export const getMenuByPath = function (path, accessMenu) {
    if (accessMenu) {
        let filter = accessMenu.filter(res => {
            return res.path == path;
        })
        return filter.length > 0 ? filter[0] : {}
    }
 
}

二 按钮权限的实现

2.1后端返回的数据还是?那份

 2.2 封装自定义指令,新建hasPermissionbtn.js

import router from '../../router'
import store from '../../store'
 
export default (Vue) => {
  
  Vue.directive('has', {
    mounted(el, binding) {
      //从配置获取用户按钮权限
      let path = router.currentRoute.value.path;
      let menu = getMenuByPath(path, store.state.user.user.menuTile);
      //获取按钮权限
      if (!Vue.config.globalProperties.$_has(binding.value, menu.btnPermissions)){
        //移除不匹配的元素
         el.parentnode.removeChild(el)
         // el.setAttribute("disabled",true)
       }
  },
})
 
//检查权限方法
Vue.config.globalProperties.$_has = function (value, btnPermissions) {
  let isExist = false
  //有权限的按钮集合;
   let btnPermsArr = []
    if (btnPermissions) {
      btnPermsArr = btnPermissions;
    }
    if (btnPermsArr.includes(value)) {
      isExist = true
    }
    return isExist
  }
}

2.3 权限按钮中的使用

//v-has可以使用在任何元素上,如div或者el-table-column标签
<el-button type="text" v-has="'env:account'">关联</el-button>

到此这篇关于vue路由权限和按钮权限的实现示例的文章就介绍到这了,更多相关vue路由权限和按钮权限内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue路由权限和按钮权限的实现示例

本文链接: https://www.lsjlt.com/news/146243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue路由权限和按钮权限的实现示例
    目录一 菜单路由权限二 按钮权限的实现一 菜单路由权限 1.1前端路由配置表 1.2后端数据返回 1.3 拿到数据后存到vuex  1.4 扁平化的目的是为了跳转路由...
    99+
    2022-11-13
  • vue路由权限和按钮权限怎么实现
    这篇“vue路由权限和按钮权限怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue路由权限和按钮权限怎么实现”文章吧...
    99+
    2023-06-30
  • vue按钮怎么实现权限控制
    这篇文章主要讲解了“vue按钮怎么实现权限控制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue按钮怎么实现权限控制”吧!一、步骤1.定义buttom权限在state中创建buttomPe...
    99+
    2023-06-22
  • vue + vuex + directives如何实现权限按钮
    这篇文章主要介绍vue + vuex + directives如何实现权限按钮,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!遇到了一个业务场景:某个按钮按下去之前需要先判断它是否登陆...
    99+
    2022-10-19
  • vue基于Element按钮权限实现方案
    背景需求:ERP系统需增加 ”按钮权限控制“ 功能,对权限的控制粒度要普及到按钮层级。 预期 按钮权限控制的交互方式无非两种:"不可见" 和 "可见不可点"。 不可见 不可见...
    99+
    2022-11-12
  • Spring Security权限想要细化到按钮实现示例
    目录引言1. 权限颗粒度2. 权限表3. 后端权限判断4. 角色与权限4.1 RBAC 简介4.2 RBAC 的提出4.3 RBAC 三原则4.4 RBAC 模型分类4.4.1 RB...
    99+
    2022-11-13
  • vue-element-admin按钮级权限管控的实现
    目录思路表结构与数据实现按钮调用随着软件的发展,网站从最初的满足用户业务需求到提升用户。就比如一个按钮只要求权限方面的管控我们可以通过 shiro,注解等方式来实现,但是页面上用户点...
    99+
    2022-11-13
  • vue实现前端按钮组件权限管理
    目录方案1:数组+自定义指令关于路由权限方案2: 二进制表达权限:权限判断判断和使用小结方案1:数组+自定义指令 把权限放到数组中,通过vue的自定义指令来判断是否拥有该权限,有则显...
    99+
    2022-11-13
  • vue如何实现路由权限控制
    这篇“vue如何实现路由权限控制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何实现路由权限控制”文章吧。在Vue中...
    99+
    2023-07-06
  • vue使用自定义指令实现按钮权限展示功能
    目录一、在src下新建directive文件夹二、定义index.js文件,在vue上注入自定义指令三、编写自定义指令四、使用一、在src下新建directive文件夹 二、定义i...
    99+
    2022-11-13
  • Vue实现两种路由权限控制方式
    目录方式一:路由元信息(meta)方式二:动态生成路由表(addRoutes)路由权限控制常用于后台管理系统中,对不同业务人员能够访问的页面进行一个权限的限制。 对于无权限的页面可...
    99+
    2022-11-12
  • 前端配合后端实现Vue路由权限的方法实例
    目录前言实现思路代码实现登录本地路由列表生成路由挂载路由总结前言 在开发管理后台时,都会存在多个角色登录,登录成功后,不同的角色会展示不同的菜单路由。这就是我们通常所说的动态路由权限...
    99+
    2022-11-13
  • Vue自定义v-has指令实现按钮权限判断
    应用场景 以后台管理系统为例,每个用户所拥有的按钮权限不一样。管理员配置权限之后,用户登录时,从接口拿到按钮权限列表,然后根据后台数据判断显示哪些按钮。 简单说一下,自定义指令 ...
    99+
    2022-11-12
  • vue怎么使用自定义指令实现按钮权限展示功能
    今天小编给大家分享一下vue怎么使用自定义指令实现按钮权限展示功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、在src...
    99+
    2023-06-30
  • vue2/vue3路由权限管理的方法实例
    1. Vue 路由权限控制一般有2种方法 a、路由元信息(meta) b、动态加载菜单和路由(addRoutes) 2 路由元信息(meta)来进行路由权限控制 2.1 在vue2种...
    99+
    2022-11-12
  • vue-router如何实现路由懒加载和权限控制
    本篇内容主要讲解“vue-router如何实现路由懒加载和权限控制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue-router如何实现路由懒加载和权限控制”吧!1、为什么要使用路由懒加载呢...
    99+
    2023-07-04
  • vue router权限管理实现不同角色显示不同路由
    目录思路:主要逻辑代码全部页面代码思路: login页面登录时 加上角色的标记,存储到本地缓存(localstorage)路由js文件,meta属性加个是否可见(visiable t...
    99+
    2022-11-13
  • laravel结合vue添加权限的实现示例
    目录一、添加(权限)节点1.1、引入vue1.2、添加模版(vue、jquery)1.3、添加节点控制器逻辑1.4、模型中定义修改器1.5、效果:一、添加(权限)节点 1.1、引入v...
    99+
    2022-11-12
  • vue登录路由权限管理的项目实践
    目录前言登录验证路由配置权限管理总结前言 在开发Web应用程序时,常常需要进行登录验证和权限管理。Vue是一款流行的JavaScript框架,提供了一套灵活的路由管理工具,可以方便地...
    99+
    2023-05-16
    vue登录路由权限管理 vue登录路由权限
  • vue-router中怎么实现路由懒加载和权限控制
    今天就跟大家聊聊有关vue-router中怎么实现路由懒加载和权限控制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、为什么要使用路由懒加载呢用v...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作