Ver Fonte

功能优化

songxy há 1 ano atrás
pai
commit
86767a206d
3 ficheiros alterados com 21 adições e 18 exclusões
  1. 1 1
      client_h5/index.html
  2. 18 16
      client_h5/src/router/getUserInfo.ts
  3. 2 1
      client_h5/src/router/index.ts

+ 1 - 1
client_h5/index.html

@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1">
     <script src='https://cdn.bootcss.com/vConsole/3.3.2/vconsole.min.js'></script>
     <script type="text/javascript">
-      window.vConsole = new window.VConsole()
+      // window.vConsole = new window.VConsole()
       window.locationBaseUrl = "/html_h5"
     </script>
     <title>万维空间OA</title>

+ 18 - 16
client_h5/src/router/getUserInfo.ts

@@ -8,21 +8,23 @@ const USERINFO_KEY: string = '_userInfo';
 const TOKEN_KEY: string = 'ACCESS_TOKEN';
 const EXPIRES_TIME_KEY: string = 'EXPIRES_TIME_KEY';
 
-const initUserInfoHandler = async () => {
+export const initUserInfoHandler = async (isStore: boolean = false) => {
   const userStore = useUserStoreWithOut();
-  const userInfoString = localStorage.getItem(USERINFO_KEY);
-  if (localStorage.getItem(TOKEN_KEY) && userInfoString) {
-    const expiresTimeString = localStorage.getItem(EXPIRES_TIME_KEY);
-    const date = new Date();
-    const time = date.getTime();
-    if (expiresTimeString && Number(expiresTimeString) > time) {
-      localStorage.clear();
-    } else {
-      const userInfoObject = JSON.parse(userInfoString);
-      userStore.setUser(userInfoObject);
-      return true;   
-    }
-  };
+  if (isStore) {
+    const userInfoString = localStorage.getItem(USERINFO_KEY);
+    if (localStorage.getItem(TOKEN_KEY) && userInfoString) {
+      const expiresTimeString = localStorage.getItem(EXPIRES_TIME_KEY);
+      const date = new Date();
+      const time = date.getTime();
+      if (!expiresTimeString || Number(expiresTimeString) < time) { //没有用户过期时间重新获取用户
+        localStorage.clear();
+      } else {
+        const userInfoObject = JSON.parse(userInfoString);
+        userStore.setUser(userInfoObject);
+        return true;   
+      }
+    };
+  }
   try {
     const code: string = (await getDDAuthCode()) as string;
     const userIdResult = await getUserIdByDD({ code });
@@ -89,8 +91,8 @@ const getUserIdByDD = async (data: Required<UserIdParam>) => {
 const getUserInfoById = async () => {
   return reqest.get("/admin-api/system/auth/get-permission-info");
 };
-export const getUserInfoPromise = () => {
+export const getUserInfoPromise = (isStore:boolean = false) => {
   return new Promise(async (resolve, reject) => {
-    resolve(await initUserInfoHandler());
+    resolve(await initUserInfoHandler(isStore));
   })
 }

+ 2 - 1
client_h5/src/router/index.ts

@@ -15,7 +15,7 @@ const router = createRouter({
 
 // 路由加载前
 router.beforeEach(async (to, from, next) => {
-  getUserInfoPromise().then((isLogin) => {
+  getUserInfoPromise(true).then((isLogin) => {
     next(); 
     if (!isLogin) {
       showDialog({
@@ -24,6 +24,7 @@ router.beforeEach(async (to, from, next) => {
         beforeClose: function(action) {
           if (action === 'confirm') {
             closeDialog()
+            localStorage.clear();
             window.location.reload()
           }
         },