|
@@ -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
|