Browse Source

feat: 用户数据由接口实时获取(方便第一个请求是get获取token)

lanjianrong 3 years ago
parent
commit
5ffa30b5bb
2 changed files with 26 additions and 22 deletions
  1. 23 19
      src/router/guard/pageLoadingGuard.ts
  2. 3 3
      src/store/modules/user.ts

+ 23 - 19
src/router/guard/pageLoadingGuard.ts

@@ -1,34 +1,38 @@
-import type { Router } from 'vue-router';
-import { useAppStoreWidthOut } from '/@/store/modules/app';
-import { useUserStoreWidthOut } from '/@/store/modules/user';
-import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
-import { unref } from 'vue';
+import type { Router } from 'vue-router'
+import { useAppStoreWidthOut } from '/@/store/modules/app'
+import { useUserStoreWidthOut } from '/@/store/modules/user'
+import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'
+import { unref } from 'vue'
 
 export function createPageLoadingGuard(router: Router) {
-  const userStore = useUserStoreWidthOut();
-  const appStore = useAppStoreWidthOut();
-  const { getOpenPageLoading } = useTransitionSetting();
-  router.beforeEach(async (to) => {
+  const userStore = useUserStoreWidthOut()
+  const appStore = useAppStoreWidthOut()
+  const { getOpenPageLoading } = useTransitionSetting()
+  router.beforeEach(async to => {
+    if (!userStore.getUserInfo) {
+      await userStore.getUserInfoAction()
+      return true
+    }
     if (!userStore.getToken) {
-      return true;
+      return true
     }
     if (to.meta.loaded) {
-      return true;
+      return true
     }
 
     if (unref(getOpenPageLoading)) {
-      appStore.setPageLoadingAction(true);
-      return true;
+      appStore.setPageLoadingAction(true)
+      return true
     }
 
-    return true;
-  });
+    return true
+  })
   router.afterEach(async () => {
     if (unref(getOpenPageLoading)) {
       setTimeout(() => {
-        appStore.setPageLoading(false);
-      }, 220);
+        appStore.setPageLoading(false)
+      }, 220)
     }
-    return true;
-  });
+    return true
+  })
 }

+ 3 - 3
src/store/modules/user.ts

@@ -15,7 +15,7 @@ import {
   LoginParams
 } from '/@/api/sys/model/userModel'
 
-import { loginApi, getXsrfToken, logoutApi, getAccountGroupList, getUserInfo } from '/@/api/sys/user'
+import { loginApi, logoutApi, getAccountGroupList, getUserInfo } from '/@/api/sys/user'
 
 import { useI18n } from '/@/hooks/web/useI18n'
 import { useMessage } from '/@/hooks/web/useMessage'
@@ -47,7 +47,7 @@ export const useUserStore = defineStore({
   }),
   getters: {
     getUserInfo(): GetUserInfoModel {
-      return this.userInfo || getAuthCache<GetUserInfoModel>(USER_INFO_KEY) || {}
+      return this.userInfo
     },
     getToken(): string {
       return this.token || getAuthCache<string>(TOKEN_KEY)
@@ -160,7 +160,7 @@ export const useUserStore = defineStore({
     },
 
     async getToken() {
-      await getXsrfToken('gs01')
+      // await getXsrfToken('gs01')
       const token = getToken() as string
       this.setToken(token)
     },