vue项目系统内路由无权限跳转404改为跳转401
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
当客户进入新页面无权限时,打开一个新页签,提示客户“sorry! 你没有权限去该页面” 。系统外路由还是跳转404.
解决思路:
这里需要后端提供个接口,传当前路由,如果是系统内路由接口返回true,如果不是返回false.
在路由跳转404的时候进行调接口判断。如果返回true .则跳转401页面,如果false,继续跳转404.
核心代码如下:
这里注意参数不需要传给后端, to.redirectedFrom 是从哪个路由进来的。
if (to.path === '/404' && to.redirectedFrom) {
let routerParam = to.redirectedFrom.split('?')[0]
if (to.redirectedFrom.indexOf('/order/air-export-detail/') !== -1) {
routerParam = '/order/air-export-detail/:multTabs'
}
const result = await isSystemRoute({ route: routerParam })
if (result.data) {
next({ path: '/401' })
} else {
next()
}
}
这里遇到一个问题。401页面需要在权限配置里进行配置才能访问这个401无权限页签。这样很麻烦,需要对每个角色进行这个页面的权限配置。
这里处理思路是在前端动态生成路由的过程将401页面的配置添加进去。这样不用系统进行额外配置这个页面的权限了。
代码如下:
accessRoutes[0].children.push({ path: '/401', componentName: 'Page401', meta: {
defaultIcon: 'icon-form',
title: '无权限',
icon: 'icon-form',
noCache: false,
affix: true,
sidebar: false
}, hidden: true, id: '7077096466080006144', pid: 4, sort: 2147483647, component: () => import('@/views/error-page/401') })
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)