Files
CosScene/admin-web/src/router.ts
T
2026-05-09 16:40:29 +08:00

54 lines
1.7 KiB
TypeScript

import { createRouter, createWebHashHistory } from 'vue-router'
import AdminLayout from '~/layouts/AdminLayout.vue'
import LoginPage from '~/pages/login.vue'
import DashboardPage from '~/pages/dashboard.vue'
import SpotsPage from '~/pages/spots.vue'
import EventsPage from '~/pages/events.vue'
import ShootingPage from '~/pages/shooting.vue'
import ModuleDesignPage from '~/pages/module-design.vue'
import NavConfigsPage from '~/pages/nav-configs.vue'
import PromotionsPage from '~/pages/promotions.vue'
import UsersPage from '~/pages/users.vue'
import MembershipPage from '~/pages/membership.vue'
import OpsPage from '~/pages/ops.vue'
import { getAdminToken } from '~/composables/admin-auth'
const router = createRouter({
history: createWebHashHistory(),
routes: [
{
path: '/',
component: AdminLayout,
children: [
{ path: '', redirect: '/dashboard' },
{ path: 'dashboard', component: DashboardPage },
{ path: 'spots', component: SpotsPage },
{ path: 'events', component: EventsPage },
{ path: 'shooting', component: ShootingPage },
{ path: 'module-design', component: ModuleDesignPage },
{ path: 'nav-configs', component: NavConfigsPage },
{ path: 'promotions', component: PromotionsPage },
{ path: 'users', component: UsersPage },
{ path: 'membership', component: MembershipPage },
{ path: 'ops', component: OpsPage },
],
},
{ path: '/login', component: LoginPage },
],
})
router.beforeEach((to, _from, next) => {
if (to.path === '/login') {
next()
return
}
if (!getAdminToken()) {
next('/login')
return
}
next()
})
export default router