aops-hermes/0002-set-the-default-language-for-requests.patch
2024-12-02 16:17:42 +08:00

106 lines
3.3 KiB
Diff

From d18757fd6acf0315052267c8cf60061d9bd0285b Mon Sep 17 00:00:00 2001
From: Hu Gang <18768366022@163.com>
Date: Mon, 2 Dec 2024 15:43:31 +0800
Subject: [PATCH] fix: Coset the default language for requests
---
.eslintrc.js | 1 -
src/api/request.ts | 34 ++++++++++++++++++++--------------
src/views/account/Auth.vue | 2 +-
3 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
index 5942158..b4dbe94 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -29,7 +29,6 @@ module.exports = {
},
plugins: ["@typescript-eslint", "vue"],
rules: {
- indent: ["error", 2],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-expressions": 'off',
"vue/valid-define-props": "off",
diff --git a/src/api/request.ts b/src/api/request.ts
index 9644c2f..d7f93db 100644
--- a/src/api/request.ts
+++ b/src/api/request.ts
@@ -56,7 +56,7 @@ request.interceptors.request.use(
}
const { lang } = useLangStore()
- config.headers['Accept-Language'] = lang === 'zh_cn' ? 'zh' : 'en'
+ config.headers['Accept-Language'] = lang === 'en' ? 'en' : 'zh'
const aopsInfo = localStorage.getItem('aops')
if (aopsInfo) {
@@ -96,6 +96,7 @@ function dealBlobResponse(resp: AxiosResponse<any, any>) {
}
downloadBlobFile(resp.data, filename)
}
+let isAuthing = false
request.interceptors.response.use(
async (response: AxiosResponse<any, any>): Promise<any> => {
@@ -125,19 +126,23 @@ request.interceptors.response.use(
if (!code.toString().match(/^2\d{2}$/)) {
switch (Number(code)) {
case 1201:
- notification.error({
- message: `${t('account.sentence.validationFailed')}`,
- description: response.data.message,
- })
- setTimeout(async () => {
- const { clearInfo } = useAccountStore()
- const { getAuthRedirectUrl } = useAccountStore()
- const url = await getAuthRedirectUrl()
- if (url) {
- clearInfo()
- window.location.href = url
- }
- }, 1000)
+ if (!isAuthing) {
+ notification.error({
+ message: `${t('account.sentence.validationFailed')}`,
+ description: response.data.message,
+ })
+ isAuthing = true
+ setTimeout(async () => {
+ const { clearInfo } = useAccountStore()
+ const { getAuthRedirectUrl } = useAccountStore()
+ const url = await getAuthRedirectUrl()
+ if (url) {
+ clearInfo()
+ window.location.href = url
+ }
+ }, 1000)
+ }
+
break
case 1207:
if (response.config.url !== `/accounts/refreshtoken`) {
@@ -189,6 +194,7 @@ request.interceptors.response.use(
}
return Promise.reject(result)
}
+ isAuthing = false
return data
},
(error: AxiosError) => {
diff --git a/src/views/account/Auth.vue b/src/views/account/Auth.vue
index 55f81cc..4b8a33b 100644
--- a/src/views/account/Auth.vue
+++ b/src/views/account/Auth.vue
@@ -21,7 +21,7 @@ async function auth(code: string) {
type: res.type || '',
})
setTimeout(() => {
- router.push('/dashboard')
+ router.replace('/')
isAuthing.value = false
}, 1000)
} else {
--
2.33.0