diff --git a/core/core-frontend/src/config/axios/service.ts b/core/core-frontend/src/config/axios/service.ts index affc34a0e9..4db5140287 100644 --- a/core/core-frontend/src/config/axios/service.ts +++ b/core/core-frontend/src/config/axios/service.ts @@ -15,6 +15,7 @@ import { useLinkStoreWithOut } from '@/store/modules/link' import { config } from './config' import { configHandler } from './refresh' import { isMobile } from '@/utils/utils' +import { useRequestStoreWithOut } from '@/store/modules/request' type AxiosErrorWidthLoading = T & { config: { @@ -33,6 +34,7 @@ const { result_code } = config import { useCache } from '@/hooks/web/useCache' const { wsCache } = useCache() +const requestStore = useRequestStoreWithOut() const embeddedStore = useEmbedded() const basePath = import.meta.env.VITE_API_BASEPATH @@ -203,6 +205,10 @@ service.interceptors.response.use( } }, (error: AxiosErrorWidthLoading) => { + if (error.message?.includes('timeout of')) { + requestStore.resetLoadingMap() + } + if (!error?.response) { return Promise.reject(error) } diff --git a/core/core-frontend/src/store/modules/request.ts b/core/core-frontend/src/store/modules/request.ts index cdddb411c8..5165eb3d41 100644 --- a/core/core-frontend/src/store/modules/request.ts +++ b/core/core-frontend/src/store/modules/request.ts @@ -24,6 +24,11 @@ export const useRequestStore = defineStore('request', { setLoadingMap(value: object) { this.loadingMap = value }, + resetLoadingMap() { + for (const key in this.loadingMap) { + this.loadingMap[key] = 0 + } + }, addLoading(key: string) { if (Object.prototype.hasOwnProperty.call(this.loadingMap, key)) { const map = this.loadingMap