32 lines
732 B
JavaScript
32 lines
732 B
JavaScript
import { createRouter, createWebHashHistory } from 'vue-router'
|
|||
|
|
import { getToken } from '../utils/request'
|
||
|
|
|
||
|
|
// hash 路由:静态托管下刷新/深链稳定,不需要服务端兜底配置
|
||
|
|
const routes = [
|
||
|
|
{ path: '/', redirect: '/main' },
|
||
|
|
{
|
||
|
|
path: '/login',
|
||
|
|
name: 'Login',
|
||
|
|
component: () => import('../views/Login.vue')
|
||
|
|
},
|
||
|
|
{
|
||
|
|
path: '/main',
|
||
|
|
name: 'Main',
|
||
|
|
component: () => import('../views/Main.vue')
|
||
|
|
}
|
||
|
|
]
|
||
|
|
|
||
|
|
const router = createRouter({
|
||
|
|
history: createWebHashHistory(),
|
||
|
|
routes
|
||
|
|
})
|
||
|
|
|
||
|
|
router.beforeEach((to) => {
|
||
|
|
const hasToken = !!getToken()
|
||
|
|
if (!hasToken && to.path !== '/login') return '/login'
|
||
|
|
if (hasToken && to.path === '/login') return '/main'
|
||
|
|
return true
|
||
|
|
})
|
||
|
|
|
||
|
|
export default router
|