登录注册的前端重提交
Change-Id: I30dec474fa4a6159ce0d785f3d8e20cbcbeb0465
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000..5dd4d7b
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,80 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import { ElMessage } from 'element-plus'
+
+// 路由组件
+import LoginView from '@/views/auth/LoginView.vue'
+import RegisterView from '@/views/auth/RegisterView.vue'
+import HomeView from '@/views/HomeView.vue'
+
+const routes = [
+ {
+ path: '/',
+ redirect: '/login'
+ },
+ {
+ path: '/login',
+ name: 'Login',
+ component: LoginView,
+ meta: {
+ title: 'PT Tracker - 登录',
+ requiresGuest: true
+ }
+ },
+ {
+ path: '/register',
+ name: 'Register',
+ component: RegisterView,
+ meta: {
+ title: 'PT Tracker - 注册',
+ requiresGuest: true
+ }
+ },
+ {
+ path: '/home',
+ name: 'Home',
+ component: HomeView,
+ meta: {
+ title: 'PT Tracker - 首页',
+ requiresAuth: true
+ }
+ },
+ {
+ path: '/:pathMatch(.*)*',
+ redirect: '/login'
+ }
+]
+
+const router = createRouter({
+ history: createWebHistory(),
+ routes
+})
+
+// 路由守卫
+router.beforeEach((to, from, next) => {
+ // 设置页面标题
+ if (to.meta.title) {
+ document.title = to.meta.title
+ }
+
+ // 检查登录状态
+ const isLoggedIn = localStorage.getItem('isLoggedIn') === 'true'
+
+ console.log(`路由跳转: ${from.path} -> ${to.path}, 登录状态: ${isLoggedIn}`)
+
+ // 需要登录但未登录
+ if (to.meta.requiresAuth && !isLoggedIn) {
+ ElMessage.warning('请先登录')
+ next('/login')
+ return
+ }
+
+ // 已登录但访问登录/注册页
+ if (to.meta.requiresGuest && isLoggedIn) {
+ next('/home')
+ return
+ }
+
+ next()
+})
+
+export default router