Vue3.0+vue-router 实现权限路由方案一

  • 定义路由

const routes=[{path: '/page',name: "dashboard",redirect: '/page/home',meta: {title: "首页",},component: () => import('@/components/layout/index.vue'),children: [{path: 'home',name: "home",meta: {title: "仪表盘",role: [1,2,3,4,5]},component: () => import("@/pages/home/index.vue"),},{path: 'application-form-list',name: "application-form-list",redirect: '/page/application-form-list/application-list',meta: {title: "申请表列表",role: [2]},component: () => import("@/components/childView.vue"),children: [{path: 'application-list',name: "application-list",meta: {title: "",role: [1,2,3]},component: () => import("@/pages/applicationFormList/index.vue"),},{path: 'application-history',name: "application-history",meta: {title: "历史申请",role: [2]},component: () => import("@/pages/applicationFormList/historyList.vue"),}]}]
]

​​​​​​​role:定义拥有该页面权限的用户

  • 创建路由

const router = createRouter({ history:'...',routes})
  • 创建导航守卫 

router.beforeEach(async(to, from, next) => {if (to.path !== '/login') {const userInfo=xxx;//用户数据const menuList=[...]//菜单、路由数组const role=xxx//用户权限const hasRole=to.meta.role.indexOf(role)if(hasRole==-1){//无访问权限if(to.path=="/page/home"&&menuList.length>0){//首页没有权限重定向return next(menuList[0].path)}else{//跳转无权限页面return next('/page/permission')}}if(!userInfo) {return next('/login')}}next()
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB之MongoDBConnectorBI安装与使用

MongoDB之MongoDBConnectorBI安装与使用 文章目录 MongoDB之MongoDBConnectorBI安装与使用1. What is the MongoDB Connector for BI?1. 官网2. 是什么?3. 主要功能和作用4. 应用用场景 2. 安装及说明1. 前提条件2. 在Windows下的安装3.启动与运行1. 配置2. 启动mo…

计算机网络:路由协议

路由协议简介 路由协议是计算机网络中不可或缺的一部分,它们负责确定数据包从源地址到目的地址的最佳路径。想象一下,如果你是一个数据包,路由协议就像是地图或导航工具,指导你如何到达目的地。 目录 路由协议简介 工作原理简化…

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合?

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合? 现在大多数人都知道LLM是什么,以及可以做什么。 人们讨论着它的优缺点,畅想着它的未来, 向往着真正的AGI,又有…

prometheus告警

alter 告警 下载解压安装 wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz tar -zxvf alertmanager-0.26.0.linux-amd64.tar.gz -C /usr/local mv alertmanager-0.26.0.linux-amd64 alertmanager配置起启…

Vue插件之Plugins

插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。 通过 app.component() 和 app.directive() 注册一到多个全局组件或自定义指令。 通过 app.provide() 使一个资源可被注入进整个应用。 向 app.config.globalProperties 中添加一些全局实例属性或方法 一个可能上述三种…

Element UI组件安装使用会了吗?

Element UI 是一套基于 Vue.js 构建的开源 UI 组件库,它提供了丰富且易于使用的 UI 组件,能够帮助开发者快速搭建企业级的页面。以下是详细的 Element UI 组件安装及使用步骤: 安装 Element UI 方法一:使用 npm 安装 适用于 No…

Qt程序设计-仪表盘自定义控件实例

本文讲解Qt仪器表盘自定义控件实例。 效果如下 创建仪表表盘类 #ifndef DIALPLATE_H #define DIALPLATE_H#include <QWidget> #include <QTimer> #include <QPainter> #include <QPen> #include <QDebug> #include <QtMath> #include &l…

程序员就业数据分析,需要掌握python哪些知识?

程序员就业数据分析是一项综合性的工作&#xff0c;涉及到多个方面的知识和技能。Python 是一种功能强大的编程语言&#xff0c;被广泛应用于数据分析领域。要进行程序员就业数据分析&#xff0c;你需要掌握一系列与 Python 相关的知识。 1. Python 基础知识 基本语法和数据类…

序列化-反序列化--json-xml-protoBuf

序列化和反序列化 数据在网络中传输需要按照一定的规范组成。这些规定的规范有json,xml,protobuf。 序列化 也就是说数据需要通过网络传输时&#xff0c;需要把数据转化为需要的传输格式&#xff0c;所以需要把需要传输的数据生成json或者xml或者protobuf语言格式文件&#…

【论文阅读】基于图像处理和卷积神经网络的板式换热器气泡识别与跟踪

Bubble recognizing and tracking in a plate heat exchanger by using image processing and convolutional neural network 基于图像处理和卷积神经网络的板式换热器气泡识别与跟踪 期刊信息&#xff1a;International Journal of Multiphase Flow 2021 期刊级别&#xff1a;…

IDEA中 @SpringBootApplication 多个注解无法引入依赖

终于解决了&#xff01;&#xff01;&#xff01; cd到报红项目的根目录&#xff0c;然后输入mvn idea:idea就行了。

2024022701-信息安全(二)——密码学

密码学的基本概念 密码学(Cryptology)&#xff1a; 研究信息系统安全保密的科学。 密码编码学(Cryptography)&#xff1a; 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) &#xff1a; 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用…

windows安装部署node.js并搭建Vue项目

一、官网下载安装包 官网地址&#xff1a;https://nodejs.org/zh-cn/download/ 二、安装程序 1、安装过程 如果有C/C编程的需求&#xff0c;勾选一下下图所示的部分&#xff0c;没有的话除了选择一下node.js安装路径&#xff0c;直接一路next 2、测试安装是否成功 【winR】…

Docker(运维工具)—— 学习笔记

快速构建、运行、管理应用的工具 一、安装docker 参考Install Docker Engine on Ubuntu | Docker Docs 二、快速入门 1、镜像和容器 docker镜像可以做到忽略操作系统的差异&#xff0c;跨平台运行&#xff0c;忽略安装的差异 当我们利用Docker安装应用时&#xff0c;Dock…

有效防止CDN网站被溯源ip的教程

如何反溯源隐藏自己的源IP防止溯源&#xff1f; 还有些大牛会进行渗透攻击、CC攻击&#xff0c;溯源打服务器&#xff0c;各式各样的&#xff0c;防不胜防。所以很多站长套起了cdn&#xff0c;比起cdn提供的加速效果&#xff0c;更多的站长可能还是为了保护那可怜弱小的源站ip…

FolkMQ v1.2 开源消息中间件(添加事务消息)

简介 采用 “单线程” “多路复用” “内存运行” “快照持久化” “Broker 集群模式”&#xff08;可选&#xff09;基于 Socket.D 网络应用协议 开发。全新设计&#xff0c;自主架构&#xff01; 角色功能生产端发布消息、定时消息、顺序消息、可过期消息、事务消息。发…

Spring Cloud项目合规性注册之-(单元集成测试报告)

用于合规性注册&#xff0c;本文章仅提供模板 这个大纲涵盖了从单元测试到集成测试&#xff0c;再到自动化和持续集成的全方位测试过程。 一、引言 1. 项目概述 "xxxxxx"是一个先进的数据管理和展示平台&#xff0c;旨在提供高效、可靠的数据服务。该平台通过集成各…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Recolor)

Recolor&#xff0c;顾名思义就是重上色的意思&#xff0c;很明显能想到的用法就是老照片上色&#xff0c;也就是老照片修复&#xff0c;看下效果吧&#xff08;左边为老旧照片&#xff0c;右边为重上色效果&#xff09;&#xff1a; 当然除了这种玩法&#xff0c;也可以局部修…

安防视频监控EasyCVR平台使用GB28181协议接入时,如何正确配置端口?

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…

TypeScript之JSON点语法调用

场景 当我们想要通过将JSON中的属性名赋值给一个变量,并且通过点语法实现字段调用.常规的String变量保存会出现下述问题,就可以通过String[][]实现动态调用字段. let parentJSON{"name":"liupeng"}let a:String;Object.keys(parentJSON).forEach(key >…