Files
tonePage/tonecn/src/router/index.ts

69 lines
1.6 KiB
TypeScript

import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/resource',
name: 'resource',
component: () => import('../views/Resource.vue')
},
{
path: '/download',
name: 'download',
component: () => import('../views/Download.vue')
},
{
path: '/blog',
name: 'blog',
component: () => import('../views/Blog.vue')
},
{
path: '/blogContent/:uuid',
name: 'blogContent',
component: () => import('../views/BlogContent.vue'),
},
{
path: '/console',
name: 'console',
component: () => import('../views/Console/Console.vue'),
children: [
{
path: 'login',
name: 'login',
component: () => import('../views/Console/Login.vue')
},
{
path: 'dashboard',
name: 'dashboard',
component: () => import('../views/Console/Dashboard.vue')
}
],
},
{
path: '/:pathMatch(.*)*',
name: 'notFound',
component: () => import('../views/NotFound.vue')
}
]
})
router.beforeEach((to, from, next) => {
const isAuthenticated = !!localStorage.getItem('jwtToken');
if (to.name === 'dashboard' && !isAuthenticated) {
return next({ name: 'login' });
} else if (to.name === 'login' && isAuthenticated) {
return next({ name: 'dashboard' });
}
next()
})
export default router