【类 型】:fix 路由守卫bug 问题提
【原 因】:next() 并不返回一个 Promise 所以它后面调用 catch()会导致错误 【过 程】: 【影 响】: # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动
This commit is contained in:
parent
b8285a322c
commit
22249b4ca3
@ -13,31 +13,30 @@ router.beforeEach((to, from, next) => {
|
|||||||
NProgress.start()
|
NProgress.start()
|
||||||
// 设置title
|
// 设置title
|
||||||
document.title = getPageTitle(to.meta.title)
|
document.title = getPageTitle(to.meta.title)
|
||||||
// 路由
|
|
||||||
store.commit('user/initUser')// 用户信息初始化 PS:token不存在 执行且执行一次
|
store.commit('user/initUser') // 用户信息初始化
|
||||||
const power = store.state.user.power
|
const power = store.state.user.power
|
||||||
const token = store.state.user.token
|
const token = store.state.user.token
|
||||||
if (token === null) {
|
|
||||||
|
if (!token) {
|
||||||
if (to.path === '/login') {
|
if (to.path === '/login') {
|
||||||
next()
|
next()
|
||||||
NProgress.done()
|
|
||||||
} else {
|
} else {
|
||||||
next('/login')
|
next('/login') // 直接调用 next('/login')
|
||||||
NProgress.done()
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (to.path === '/login') {
|
if (to.path === '/login') {
|
||||||
next('/')
|
next('/')
|
||||||
NProgress.done()
|
|
||||||
} else {
|
} else {
|
||||||
if (to.meta.roles.indexOf(power) >= 0) { // 判断 roles权限 有权限打开页面 没权限跳转到首页
|
if (to.meta.roles && to.meta.roles.indexOf(power) >= 0) { // 确保 roles 存在
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
next('/')
|
next('/')
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,9 +52,5 @@ router.afterEach(() => {
|
|||||||
* @param {*} pageTitle 路由mate.tiele
|
* @param {*} pageTitle 路由mate.tiele
|
||||||
*/
|
*/
|
||||||
function getPageTitle (pageTitle) {
|
function getPageTitle (pageTitle) {
|
||||||
if (pageTitle) {
|
return pageTitle ? `${pageTitle} - ${store.state.settings.title}` : store.state.settings.title
|
||||||
return `${pageTitle} - ${store.state.settings.title}`
|
|
||||||
} else {
|
|
||||||
return store.state.settings.title
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user