/* * @Author: RenXiaoDong * @Date: 2025-06-22 22:59:16 */ import type { Router } from 'vue-router'; import { message } from 'ant-design-vue'; import NProgress from 'nprogress'; import { goUserLogin } from '@/utils/user'; // import router from '@/router'; import { checkRoutePermission } from '@/permission/permission'; import { useUserStore } from '@/stores/modules/user'; export default function setupUserLoginInfoGuard(router: Router) { router.beforeEach(async (to, from, next) => { NProgress.start(); const userStore = useUserStore(); const routeName = to?.name as string; const requiresAuth = to?.meta?.requiresAuth || false; const requireLogin = to?.meta?.requireLogin || false; const query = to?.query ?? {}; if (requireLogin && !userStore.isLogin) { goUserLogin(query); next(); return; } if (requiresAuth) { const hasPermission = checkRoutePermission(routeName); if (!hasPermission) { message.error('您没有权限访问该页面'); next('/trial'); return; } next(); return; } next(); }); router.afterEach((to) => { NProgress.done(); }); }