You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

36 lines
759 B

import router from '@/router/index'
import userStore from './store/module/user'
// 定义要求登录访问的名单
const asyncRouterName = [
'UserInfo',
'RegistrationPersonage',
'RegistrationGroup',
]
const asyncRouter = (path: string) => {
return asyncRouterName.includes(path)
}
router.beforeEach(async (to, form, next) => {
const useuserStore = userStore()
if (useuserStore.token) {
if (to.path === '/login') {
next({ path: '/' })
} else {
if (!Object.keys(useuserStore.userInfo).length) {
useuserStore.getUserInfo()
next()
} else {
next()
}
}
} else {
if (asyncRouter(to.name as string)) {
next('/login')
} else {
next()
}
}
})
export default router