From 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期二, 30 九月 2025 17:38:04 +0800 Subject: [PATCH] feat: 完善比赛晋级功能并清理测试文件 --- web/src/router/index.ts | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 1 deletions(-) diff --git a/web/src/router/index.ts b/web/src/router/index.ts index 854f6f1..b052ee7 100644 --- a/web/src/router/index.ts +++ b/web/src/router/index.ts @@ -1,4 +1,5 @@ import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' +import { isLoggedIn } from '@/utils/auth' const routes: RouteRecordRaw[] = [ { @@ -64,7 +65,13 @@ path: '/player', name: 'Player', component: () => import('@/views/player/index.vue'), - meta: { title: '姣旇禌鎶ュ悕', icon: 'UserFilled' } + meta: { title: '鎶ュ悕瀹℃牳', icon: 'UserFilled' } + }, + { + path: '/player/:id/detail', + name: 'PlayerDetail', + component: () => import('@/views/player/detail.vue'), + meta: { title: '鎶ュ悕璇︽儏', icon: 'UserFilled' } }, { path: '/activity-player/:id/rating', @@ -89,6 +96,42 @@ name: 'Employee', component: () => import('@/views/employee/index.vue'), meta: { title: '鍛樺伐绠$悊', icon: 'Avatar' } + }, + { + path: '/project-review', + name: 'ProjectReview', + component: () => import('@/views/project-review/index.vue'), + meta: { title: '椤圭洰璇勫', icon: 'View' } + }, + { + path: '/project-review/:id/detail', + name: 'ProjectReviewDetail', + component: () => import('@/views/project-review/detail.vue'), + meta: { title: '椤圭洰璇勫璇︽儏', hidden: true } + }, + { + path: '/review', + name: 'Review', + component: () => import('@/views/review/index.vue'), + meta: { title: '椤圭洰璇勫', icon: 'Edit' } + }, + { + path: '/review/:id/detail', + name: 'ReviewDetail', + component: () => import('@/views/review/detail.vue'), + meta: { title: '椤圭洰璇勫璇︽儏', hidden: true } + }, + { + path: '/competition-promotion', + name: 'CompetitionPromotion', + component: () => import('@/views/competition-promotion/index.vue'), + meta: { title: '姣旇禌鏅嬬骇', icon: 'Promotion' } + }, + { + path: '/test/graphql', + name: 'GraphQLTest', + component: () => import('@/views/test/graphql-test.vue'), + meta: { title: 'GraphQL娴嬭瘯', icon: 'Connection' } } ] }, @@ -105,4 +148,28 @@ routes }) +// 璺敱瀹堝崼 +router.beforeEach((to, from, next) => { + // 濡傛灉鏄櫥褰曢〉闈紝鐩存帴鏀捐 + if (to.path === '/login') { + // 濡傛灉宸茬粡鐧诲綍锛岄噸瀹氬悜鍒伴椤� + if (isLoggedIn()) { + next('/') + } else { + next() + } + return + } + + // 妫�鏌ユ槸鍚﹀凡鐧诲綍 + if (!isLoggedIn()) { + // 鏈櫥褰曪紝閲嶅畾鍚戝埌鐧诲綍椤� + next('/login') + return + } + + // 宸茬櫥褰曪紝姝e父璁块棶 + next() +}) + export default router \ No newline at end of file -- Gitblit v1.8.0