parent
858e06b1e1
commit
9343419bfb
@ -0,0 +1,66 @@
|
||||
// router/index.js
|
||||
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
|
||||
import StudentManageView from "@/views/Manage.vue";
|
||||
import LayoutView from '@/components/Layout.vue';
|
||||
import HomeView from '@/views/Home.vue'
|
||||
import LoginView from '@/views/Login.vue'
|
||||
import RollCallView from '@/views/RollCall.vue'
|
||||
import { useTokenStore } from "@/store/token.js";
|
||||
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: LoginView
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
component: LayoutView,
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
redirect: '/home'
|
||||
},
|
||||
{
|
||||
path: '/home',
|
||||
name: 'home',
|
||||
component: HomeView
|
||||
},
|
||||
{
|
||||
path: '/rollcall',
|
||||
name: 'rollcall',
|
||||
component: RollCallView
|
||||
},
|
||||
{
|
||||
path: '/student',
|
||||
name: 'student',
|
||||
component: StudentManageView
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes
|
||||
});
|
||||
|
||||
export function setupRouterGuard(router) {
|
||||
router.beforeEach((to, from, next) => {
|
||||
const tokenStore = useTokenStore()
|
||||
const isAuthenticated = tokenStore.token !== ''
|
||||
|
||||
if (to.name !== 'login' && !isAuthenticated) {
|
||||
next({ name: 'login' })
|
||||
} else if (to.name === 'login' && isAuthenticated) {
|
||||
next({ name: 'home' })
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default router
|
Loading…
Reference in new issue