lrf 1 rok pred
rodič
commit
5a3af7e2cf
2 zmenil súbory, kde vykonal 15 pridanie a 4 odobranie
  1. 14 4
      src/router/guard.js
  2. 1 0
      src/views/login/index.vue

+ 14 - 4
src/router/guard.js

@@ -4,8 +4,8 @@ import { UserStore } from '@/store/user'
 import { cloneDeep, isArray, omit } from 'lodash-es'
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
+import { ElMessageBox } from 'element-plus'
 const whiteList = ['/redirect', '/login', '/401', '/404']
-
 NProgress.configure({ showSpinner: false }) // 进度条
 // 检查路由是否存在
 const hasNecessaryRoute = (to, router) => {
@@ -22,15 +22,16 @@ const getUserMeta = async (token) => {
       token: token
     }
   })
-  if (checkResult(result)) {
+  if (result.errcode === 0) {
     userStore.setUser(result.data)
     const resetMenusResult = resetMenus(result.data.menus)
     const storeMenus = toRaw(userStore.menus)
     if (storeMenus.length <= 0) {
       userStore.setMenus(resetMenusResult)
     }
-    return result.data.menus
+    return { menus: result.data.menus, errcode: 0 }
   }
+  return { errmsg: result.errmsg, errcode: 401 }
 }
 /**
  * 将路由数组一维化
@@ -140,7 +141,16 @@ export const registerBeforeRouter = async (router) => {
       NProgress.inc()
       if (to.path === '/login') next()
       NProgress.inc()
-      const menus = await getUserMeta(token)
+      const { menus, errcode, errmsg } = await getUserMeta(token)
+      // 登录信息有问题
+      if (errcode !== 0) {
+        await ElMessageBox.alert(errmsg, '用户确认', {
+          confirmButtonText: '重新登录'
+        })
+        next('/login')
+        return
+      }
+      // 菜单格式不正确
       if (!menus) {
         next('/401')
         return

+ 1 - 0
src/views/login/index.vue

@@ -60,6 +60,7 @@ const toLogin = async (data) => {
   } else {
     ElMessage({ message: `${res.errmsg}`, type: 'error' })
   }
+  loading.value = false
 }
 /**
  * 登录