From 15d09bdf3f0bf574653eb72e194ba2c7d030bbe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Mon, 3 Jul 2023 21:42:33 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/permission.js | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/permission.js b/src/permission.js index 31fe0e1..e2e1e82 100644 --- a/src/permission.js +++ b/src/permission.js @@ -7,9 +7,9 @@ import { isHttp } from '@/utils/validate' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' import usePermissionStore from '@/store/modules/permission' -NProgress.configure({ showSpinner: false }); +NProgress.configure({ showSpinner: false }) -const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/socialLogin']; +const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/socialLogin'] router.beforeEach((to, from, next) => { NProgress.start() @@ -22,22 +22,29 @@ router.beforeEach((to, from, next) => { } else { if (useUserStore().roles.length === 0) { // 判断当前用户是否已拉取完user_info信息 - useUserStore().getInfo().then(() => { - usePermissionStore().generateRoutes().then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - accessRoutes.forEach(route => { - if (!isHttp(route.path)) { - router.addRoute(route) // 动态添加可访问路由表 - } - }) - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + useUserStore() + .getInfo() + .then(() => { + usePermissionStore() + .generateRoutes() + .then((accessRoutes) => { + // 根据roles权限生成可访问的路由表 + accessRoutes.forEach((route) => { + if (!isHttp(route.path)) { + router.addRoute(route) // 动态添加可访问路由表 + } + }) + next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + }) }) - }).catch(err => { - useUserStore().logOut().then(() => { - ElMessage.error(err != undefined ? err : '登录失败') - next({ path: '/' }) + .catch((err) => { + useUserStore() + .logOut() + .then(() => { + // ElMessage.error(err != undefined ? err : '登录失败') + next({ path: '/' }) + }) }) - }) } else { next() } @@ -48,6 +55,7 @@ router.beforeEach((to, from, next) => { // 在免登录白名单,直接进入 next() } else { + console.log('to login') next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 NProgress.done() } @@ -56,4 +64,4 @@ router.beforeEach((to, from, next) => { router.afterEach(() => { NProgress.done() -}) \ No newline at end of file +})