deepchart后台管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

110 lines
2.9 KiB

import { createRouter, createWebHistory } from 'vue-router'
import Layout from '../layout/Layout.vue'
const routes = [
{
path: '/',
redirect: '/userPermissions/market'
},
{
path: '/login',
name: 'login',
component: () => import('../views/Login.vue'),
meta: {
title: '登录',
hiddenSidebar: true,
requireAuth: false // 登录页不需要登录
}
},
{
path: '',
component: Layout,
meta: {
requireAuth: true // Layout下所有子路由都需要登录
},
children: [
{
path: 'userPermissions',
name: 'userPermissions',
meta: { title: '用户权限管理', icon: "UserFilled", showSidebar: true, isParentNav: true },
children: [
{
path: 'market',
name: 'market',
component: () => import('../views/UserPermissions/Market.vue'),
meta: { title: '行情期限', showSidebar: true }
},
{
path: 'module',
name: 'module',
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 }
}
]
}
]
}
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes
})
// 全局前置守卫
router.beforeEach((to, from, 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