diff --git a/src/router/index.js b/src/router/index.js index 2cdc813..7060ba4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -2,18 +2,26 @@ import { createRouter, createWebHistory } from 'vue-router' import Layout from '../layout/Layout.vue' const routes = [ - { path: '/', + { + path: '/', redirect: '/userPermissions/market' }, { path: '/login', name: 'login', component: () => import('../views/Login.vue'), - meta: { title: '登录', hiddenSidebar: true } + meta: { + title: '登录', + hiddenSidebar: true, + requireAuth: false // 登录页不需要登录 + } }, { path: '', component: Layout, + meta: { + requireAuth: true // Layout下所有子路由都需要登录 + }, children: [ { path: 'userPermissions', @@ -32,17 +40,33 @@ const routes = [ component: () => import('../views/UserPermissions/Module.vue'), meta: { title: '模块期限', showSidebar: true } }, + // 深度探索--操作日志 { path: 'logDeepexplore', name: 'logDeepexplore', component: () => import('../views/UserPermissions/LogDeepExplore.vue'), meta: { hidden: true } }, + // DeepMate--操作日志 { path: 'logDeepMate', name: 'logDeepMate', component: () => import('../views/UserPermissions/LogDeepMate.vue'), meta: { hidden: true } + }, + // 行情期限--操作日志 + { + path: 'logMarket', + name: 'logMarket', + component: () => import('../views/UserPermissions/LogMarket.vue'), + meta: { hidden: true } + }, + // 导出列表页面 + { + path: 'export', + name: 'export', + component: () => import('../views/UserPermissions/Export.vue'), + meta: { hidden: true } } ] } @@ -55,9 +79,32 @@ const router = createRouter({ routes }) +// 全局前置守卫 router.beforeEach((to, from, next) => { - if (to.meta.title) document.title = to.meta.title - next() + // 设置页面标题 + if (to.meta.title) { + document.title = to.meta.title + } + + // 登录状态判断 + const token = localStorage.getItem('token') + + // 权限拦截逻辑 + if (to.meta.requireAuth) { + // 目标页面需要登录:已登录→放行,未登录→跳登录页 + if (token) { + next() // 已登录,放行 + } else { + next({ path: '/login' }) // 跳登录页 + } + } else { + // 目标页面不需要登录:已登录→跳首页,未登录→放行 + if (token && to.path === '/login') { + next('/') // 自动跳首页 + } else { + next() // 未登录,放行到登录页 + } + } }) export default router \ No newline at end of file