Files
xj-screen/src/router/index.ts
T
2024-08-29 15:14:04 +08:00

106 lines
2.7 KiB
TypeScript

import { createRouter, createWebHistory, Router, RouteRecordRaw } from 'vue-router';
import { setCurrentPath } from '/@/enum/pageEnum.ts';
import { getAuthCache } from '/@/utils/auth.ts';
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'default',
redirect: '/login',
},
{
path: '/login',
name: 'login',
meta: {
title: '登录',
},
component: () => import('/@/views/sys/login.vue'),
},
{
path: '/screenLogin',
name: 'screenLogin',
meta: {
title: '登录',
},
component: () => import('/@/views/sys/login.vue'),
},
{
path: '/home',
name: 'index',
meta: {
title: '首页',
},
component: () => import('/@/views/index.vue'),
},
{
path: '/yinChuanHome',
name: 'yinChuanHome',
meta: {
title: '银川片应急就医',
},
component: () => import('/@/views/yinChuan/yinChuan.vue'),
},
{
path: '/yinChuanTest',
name: 'yinChuanTest',
meta: {
title: '银川片应急就医',
},
component: () => import('/@/views/yinChuanTest/yinChuanTest.vue'),
},
{
path: '/secondScreen',
name: 'secondScreen',
meta: {
title: '副屏',
},
component: () => import('/@/views/indexSon.vue'),
},
{
path: '/transfer',
name: 'transfer',
meta: {
title: '应急大屏',
},
component: () => import('/@/views/transfer.vue'),
},
];
const router: Router = createRouter({
history: createWebHistory('/'),
routes: [...routes],
});
const xian = ['/home', '/secondScreen', '/transfer'];
const yinchuan = ['/yinChuanHome', '/transfer'];
router.beforeEach((to, from, next) => {
if (to.path !== '/login' && to.path !== '/screenLogin') {
setCurrentPath(to.path);
}
let flag1 = getAuthCache('flag1')?.includes('yinchuan');
let flag2 = getAuthCache('flag2')?.includes('xian');
if (flag1 && flag2) {
next();
} else {
// 检查是否有权访问目标页面
if (yinchuan.includes(to.path)) {
// 如果在 yinchuan 列表中,并且有权限,则导航到目标页面
if (flag1) {
next();
} else {
next({ path: '/screenLogin' });
}
}
if (xian.includes(to.path)) {
// 如果在 xian 列表中,并且有权限,则导航到目标页面
if (flag2) {
next();
} else {
next({ path: '/login' });
}
}
next();
}
});
export default router;