🔨 修改路由配置.

This commit is contained in:
lijiahangmax
2024-12-11 22:47:56 +08:00
parent 32e4859ba7
commit f52a81f9d0
35 changed files with 552 additions and 225 deletions

View File

@@ -1,7 +1,7 @@
import type { Router } from 'vue-router';
import NProgress from 'nprogress';
import { useMenuStore } from '@/store';
import { NOT_FOUND_ROUTER_NAME, WHITE_ROUTER_LIST } from '../constants';
import NProgress from 'nprogress';
import usePermission from '@/hooks/permission';
export default function setupPermissionGuard(router: Router) {

View File

@@ -1,7 +1,8 @@
import type { LocationQueryRaw, Router } from 'vue-router';
import type { RouteLocationRaw, Router } from 'vue-router';
import NProgress from 'nprogress';
import { useUserStore } from '@/store';
import { isLogin } from '@/utils/auth';
import { LOGIN_ROUTE_NAME, UPDATE_PASSWORD_ROUTE_NAME } from '@/router/constants';
/**
* 初始化用户登录路由守卫
@@ -11,40 +12,49 @@ export default function setupUserLoginInfoGuard(router: Router) {
NProgress.start();
const userStore = useUserStore();
if (isLogin()) {
// 获取用户信息
if (userStore.id) {
// 跳转
next();
} else {
try {
// 获取用户信息
await userStore.info();
next();
const info = await userStore.getUserInfo();
if (info.user.passwordUpdateStatus === 1) {
// 跳转到修改密码页面
next({
name: UPDATE_PASSWORD_ROUTE_NAME,
query: { reason: info.user.passwordUpdateReason },
} as RouteLocationRaw);
} else {
// 跳转
next();
}
} catch (error) {
// 获取失败退出登录
await userStore.logout();
next({
name: 'login',
name: LOGIN_ROUTE_NAME,
query: {
redirect: to.name,
...to.query,
} as LocationQueryRaw,
});
},
} as RouteLocationRaw);
}
}
} else {
// 未登录跳转到登录页
if (to.name === 'login') {
if (to.name === LOGIN_ROUTE_NAME) {
// 未登录跳转到登录页
next();
return;
} else {
// 跳转到登录页
next({
name: LOGIN_ROUTE_NAME,
query: {
redirect: to.name,
...to.query,
},
} as RouteLocationRaw);
}
// 跳转到登录页
next({
name: 'login',
query: {
redirect: to.name,
...to.query,
} as LocationQueryRaw,
});
}
});
}