Эх сурвалжийг харах

修改获取权限失败后处理

zhaoke 1 жил өмнө
parent
commit
bf0d047003
2 өөрчлөгдсөн 48 нэмэгдсэн , 29 устгасан
  1. 37 12
      src/getMenu.js
  2. 11 17
      src/store/modules/user.js

+ 37 - 12
src/getMenu.js

@@ -49,16 +49,40 @@ router.beforeEach(async (to, from, next) => {
       } else {
         try {
           const treeData = await store.dispatch('user/getMenuInfo')
-          const nd = treeData.filter(item => item.pageconfigurationid)
-          store.dispatch('auth/changeAuthArrs', nd)
-          // const typeData = setType(treeData, 'up_auth_id', 'auth_id')
-          const menusArray = parseMenuItem(nd)
-          const treeMenu = listToTree(menusArray, 'up_auth_id', 'auth_id')
-          const dataMenu = _.unionBy(treeMenu, 'auth_id')
-          const menus = parseMenu(dataMenu)
-          store.dispatch('permission/setRoutes', menus)
-          router.addRoutes(menus)
-          next({ ...to, replace: true })
+          if (Array.isArray(treeData)) {
+            const nd = treeData.filter(item => item.pageconfigurationid)
+            store.dispatch('auth/changeAuthArrs', nd)
+            // const typeData = setType(treeData, 'up_auth_id', 'auth_id')
+            const menusArray = parseMenuItem(nd)
+            const treeMenu = listToTree(menusArray, 'up_auth_id', 'auth_id')
+            const dataMenu = _.unionBy(treeMenu, 'auth_id')
+            const menus = parseMenu(dataMenu)
+            store.dispatch('permission/setRoutes', menus)
+            router.addRoutes(menus)
+            next({ ...to, replace: true })
+          } else {
+            // remove token and go to login page to re-login
+            if (store.getters.UserId) {
+              const res = await store.dispatch('user/logout')
+              if (res) {
+                store.dispatch('app/toggleOutflag', false)
+                setTimeout(() => {
+                  sessionStorage.removeItem('userName')
+                  router.push(`/login`)
+                }, 1000);
+              } else {
+                await store.dispatch('user/resetToken')
+                Message.error(error || 'Has Error')
+                next(`/login?redirect=${to.path}`)
+                NProgress.done()
+              }
+            } else {
+              await store.dispatch('user/resetToken')
+              Message.error(error || 'Has Error')
+              next(`/login?redirect=${to.path}`)
+              NProgress.done()
+            }
+          }
         } catch (error) {
           // remove token and go to login page to re-login
           await store.dispatch('user/resetToken')
@@ -82,6 +106,7 @@ router.beforeEach(async (to, from, next) => {
   }
 })
 
+
 function parseMenuItem (data) {
   //pagetype 1模块  2页面  3按钮 4表格 5树形  6弹窗
   const menus = []
@@ -90,7 +115,7 @@ function parseMenuItem (data) {
       menus.push({
         auth_id: item.pageconfigurationid,
         up_auth_id: item.superiorid,
-        path: "/"+item.pageroute,
+        path: "/" + item.pageroute,
         name: item.pagename,
         meta: {
           title: item.pagename,
@@ -105,7 +130,7 @@ function parseMenuItem (data) {
       menus.push({
         auth_id: item.pageconfigurationid,
         up_auth_id: item.superiorid,
-        path: "/"+item.pageroute,
+        path: "/" + item.pageroute,
         name: item.pagename,
         meta: {
           title: item.pagename,

+ 11 - 17
src/store/modules/user.js

@@ -91,30 +91,15 @@ const actions = {
             commit('SET_ROLES', ['admin'])
             resolve(res.returnData)
           } else {
-            this.logoutState()
+            resolve({ code: -1, type: 'error' })
           }
         })
         .catch((error) => {
-          this.logoutState()
+          resolve({ code: -1, type: 'error' })
         })
     })
   },
 
-  logoutState () {
-    if (state.UserId) {
-      this.logout()
-    } else {
-      sessionStorage.clear()
-      removeToken() // must remove  token  first
-      removeToken('codeToken')
-      removeToken('systemSet')
-      removeToken('userid')
-      resetRouter()
-      commit('RESET_STATE')
-      commit('SET_ROLES', [])
-    }
-  },
-
   // user logout
   logout ({ commit }) {
     return new Promise((resolve, reject) => {
@@ -123,6 +108,8 @@ const actions = {
           sessionStorage.clear()
           removeToken() // must remove  token  first
           removeToken('codeToken')
+          removeToken('usertoken')
+          removeToken('userName')
           removeToken('systemSet')
           removeToken('userid')
           resetRouter()
@@ -139,7 +126,14 @@ const actions = {
   // remove token
   resetToken ({ commit }) {
     return new Promise(resolve => {
+      sessionStorage.clear()
       removeToken() // must remove  token  first
+      removeToken('codeToken')
+      removeToken('usertoken')
+      removeToken('userName')
+      removeToken('systemSet')
+      removeToken('userid')
+      resetRouter()
       commit('RESET_STATE')
       commit('SET_ROLES', [])
       resolve()