Browse Source

fix 修复 重新登录无法跳转到过期前页面问题

疯狂的狮子Li 8 months ago
parent
commit
25848ea99e
2 changed files with 10 additions and 4 deletions
  1. 8 2
      src/utils/request.ts
  2. 2 2
      src/views/login.vue

+ 8 - 2
src/utils/request.ts

@@ -10,6 +10,7 @@ import FileSaver from 'file-saver';
 import { getLanguage } from '@/lang';
 import { encryptBase64, encryptWithAes, generateAesKey, decryptWithAes, decryptBase64 } from '@/utils/crypto';
 import { encrypt, decrypt } from '@/utils/jsencrypt';
+import router from "@/router";
 
 const encryptHeader = 'encrypt-key';
 let downloadLoadingInstance: LoadingInstance;
@@ -134,8 +135,13 @@ service.interceptors.response.use(
         }).then(() => {
           isRelogin.show = false;
           useUserStore().logout().then(() => {
-              location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index';
-            });
+            router.replace({
+              path: '/login',
+              query: {
+                redirect: encodeURIComponent(router.currentRoute.value.fullPath || '/')
+              }
+            })
+          });
         }).catch(() => {
           isRelogin.show = false;
         });

+ 2 - 2
src/views/login.vue

@@ -97,7 +97,7 @@ const tenantEnabled = ref(true);
 
 // 注册开关
 const register = ref(false);
-const redirect = ref(undefined);
+const redirect = ref('');
 const loginRef = ref<ElFormInstance>();
 // 租户列表
 const tenantList = ref<TenantVO[]>([]);
@@ -105,7 +105,7 @@ const tenantList = ref<TenantVO[]>([]);
 watch(
   () => router.currentRoute.value,
   (newRoute: any) => {
-    redirect.value = newRoute.query && newRoute.query.redirect;
+    redirect.value = newRoute.query && decodeURIComponent(newRoute.query.redirect);
   },
   { immediate: true }
 );