import { createRouter, createWebHistory } from 'vue-router' import type { RouteRecordRaw } from 'vue-router' // 导入页面组件 import Home from '@/views/Home.vue' import Courses from '@/views/Courses.vue' import CourseDetail from '@/views/CourseDetail.vue' import CourseStudy from '@/views/CourseStudy.vue' import Learning from '@/views/Learning.vue' import Profile from '@/views/Profile.vue' import LearningPaths from '@/views/LearningPaths.vue' import Faculty from '@/views/Faculty.vue' import Resources from '@/views/Resources.vue' import Activities from '@/views/Activities.vue' import TestSections from '@/views/TestSections.vue' import VideoTest from '@/views/VideoTest.vue' const routes: RouteRecordRaw[] = [ { path: '/', name: 'Home', component: Home, meta: { title: '首页' } }, { path: '/courses', name: 'Courses', component: Courses, meta: { title: '课程列表' } }, { path: '/course/:id', name: 'CourseDetail', component: CourseDetail, meta: { title: '课程详情' } }, { path: '/course/study/:id', name: 'CourseStudy', component: CourseStudy, meta: { title: '课程学习', requiresAuth: true } }, { path: '/learning/:id', name: 'Learning', component: Learning, meta: { title: '学习中心', requiresAuth: true } }, { path: '/profile', name: 'Profile', component: Profile, meta: { title: '个人中心', requiresAuth: true } }, { path: '/learning-paths', name: 'LearningPaths', component: LearningPaths, meta: { title: '学习路径' } }, { path: '/faculty', name: 'Faculty', component: Faculty, meta: { title: '师资力量' } }, { path: '/resources', name: 'Resources', component: Resources, meta: { title: '精选资源' } }, { path: '/activities', name: 'Activities', component: Activities, meta: { title: '全部活动' } }, { path: '/test-sections', name: 'TestSections', component: TestSections, meta: { title: '测试章节API' } }, { path: '/video-test', name: 'VideoTest', component: VideoTest, meta: { title: '视频播放器测试' } }, { path: '/:pathMatch(.*)*', name: 'NotFound', component: () => import('@/views/NotFound.vue'), meta: { title: '页面未找到' } } ] const router = createRouter({ history: createWebHistory(), routes, scrollBehavior(_to, _from, savedPosition) { if (savedPosition) { return savedPosition } else { return { top: 0 } } } }) // 路由守卫 router.beforeEach((to, _from, next) => { // 设置页面标题 if (to.meta.title) { document.title = `${to.meta.title} - 在线学习平台` } // 检查是否需要登录 if (to.meta.requiresAuth) { // 检查用户登录状态 const token = localStorage.getItem('token') if (!token) { // 未登录时跳转到首页,用户可以通过模态框登录 next('/') return } } next() }) export default router