A8000
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.
 
 
 
 

133 lines
3.9 KiB

import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{
path: '/',
redirect: '/index',
},
{
path: '/index',
component: () => import('@/pages/Index/Index.vue'),
children: [
{
path: '/index',
redirect: '/index/regular',
},
{
path: 'regular', //常规
component: () => import('@/pages/Index/Regular.vue'),
children: [
{
path: '/index/regular',
redirect: '/index/regular/consumables',
},
{
path: 'consumables', //耗材,
component: () => import('@/pages/Index/Regular/Consumables.vue'),
},
{
path: 'test-tube', //试管,
component: () => import('@/pages/Index/Regular/TestTube.vue'),
},
{
path: 'running', //运行
component: () => import('@/pages/Index/Regular/Running.vue'),
},
],
},
{
path: 'history',
component: () => import('@/pages/Index/History.vue'),
},
{
path: 'setting',
component: () => import('@/pages/Index/Setting.vue'),
meta: { requiresAuth: true, requiresAdmin: true }, // 需要登录和 Admin 权限
children: [
{
path: '/index/setting',
redirect: '/index/setting/device',
},
{
path: 'device', //设备
component: () => import('@/pages/Index/Settings/Device.vue'),
},
{
path: 'users', //用户管理
component: () => import('@/pages/Index/Settings/Users.vue'),
},
{
path: 'version', //版本管理
component: () => import('@/pages/Index/Settings/Version.vue'),
},
{
path: 'lis', //LIS配置
component: () => import('@/pages/Index/Settings/Lis.vue'),
},
],
},
{
path: 'emergency', //添加急诊页面
component: () => import('@/pages/Index/Regular/Emergency.vue'),
},
{
path: 'change-user', //编辑患者页面
component: () => import('@/pages/Index/TestTube/ChangeUser.vue'),
},
],
},
{
path: '/login',
component: () => import('@/pages/Login/Login.vue'),
},
//匹配任何找不到的路由,404兜底
{
path: '/notFound',
component: () => import('@/pages/NotFound/NotFound.vue'),
},
]
const router = createRouter({
history: createWebHistory(),
routes,
})
function getCurrentUser() {
const token = JSON.parse(sessionStorage.getItem('token')!)
return token
}
// 路由守卫,检查本地 Token 是否存在
// router.beforeEach((to, from, next) => {
// console.log(from)
// const token = sessionStorage.getItem('token')
// if (!token && to.path !== '/login') {
// next('/login') // 没有 token,重定向到登录页
// } else if (token && to.path === '/login') {
// next('/index') // 已有 token 且请求登录页,则跳转到主页
// } else {
// next() // 通过
// }
// })
// 在 router/index.ts 中添加全局路由守卫
// router.beforeEach((to, from, next) => {
// console.log(from)
// const user = getCurrentUser() // 获取当前用户
// console.log(user)
// // 判断目标路由是否需要权限检查
// if (to.matched.some((record) => record.meta.requiresAuth)) {
// // 如果没有登录,重定向到登录页面
// if (!user) {
// return next('/login') // 保存当前访问的路径,用于登录后重定向
// }
// // 判断是否需要 Admin 权限
// if (
// to.matched.some((record) => record.meta.requiresAdmin) &&
// user.usrRole !== 'Admin'
// ) {
// return next({ path: '/notFound' }) // 权限不足,重定向到首页或者其他页面
// }
// }
// // 如果没有问题,继续导航
// next()
// })
export default router