/** * Vue Router 路由配置 */ import { createRouter, createWebHashHistory } from 'vue-router'; import LoginPage from '../views/LoginPage.vue'; import ConsolePage from '../views/ConsolePage.vue'; import DeliveryPage from '../views/DeliveryPage.vue'; import InvitePage from '../views/InvitePage.vue'; import FeedbackPage from '../views/FeedbackPage.vue'; import PurchasePage from '../views/PurchasePage.vue'; import LogPage from '../views/LogPage.vue'; import store from '../store'; const routes = [ { path: '/', redirect: '/console' }, { path: '/login', name: 'Login', component: LoginPage, meta: { requiresAuth: false, showSidebar: false } }, { path: '/console', name: 'Console', component: ConsolePage, meta: { requiresAuth: true } }, { path: '/delivery', name: 'Delivery', component: DeliveryPage, meta: { requiresAuth: true } }, { path: '/invite', name: 'Invite', component: InvitePage, meta: { requiresAuth: true } }, { path: '/feedback', name: 'Feedback', component: FeedbackPage, meta: { requiresAuth: true } }, { path: '/log', name: 'Log', component: LogPage, meta: { requiresAuth: true } }, { path: '/purchase', name: 'Purchase', component: PurchasePage, meta: { requiresAuth: true } } ]; const router = createRouter({ history: createWebHashHistory(), routes }); // 路由守卫 router.beforeEach((to, from, next) => { const isLoggedIn = store.state.auth.isLoggedIn; if (to.meta.requiresAuth && !isLoggedIn) { // 需要登录但未登录,跳转到登录页 next('/login'); } else if (to.path === '/login' && isLoggedIn) { // 已登录访问登录页,跳转到控制台 next('/console'); } else { next(); } }); export default router;