|
@@ -14,6 +14,9 @@ export const API_DOMAINS = {
|
|
|
SECONDARY: import.meta.env.VITE_SERVER_BASEURL_SECONDARY,
|
|
SECONDARY: import.meta.env.VITE_SERVER_BASEURL_SECONDARY,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// 添加全局标志,防止重复弹窗
|
|
|
|
|
+let loginModalShown = false
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 创建请求实例
|
|
* 创建请求实例
|
|
|
*/
|
|
*/
|
|
@@ -109,24 +112,33 @@ const alovaInstance = createAlova({
|
|
|
if (statusCode !== 200) {
|
|
if (statusCode !== 200) {
|
|
|
// 直接处理401错误,跳转到登录页面
|
|
// 直接处理401错误,跳转到登录页面
|
|
|
if (statusCode === 401) {
|
|
if (statusCode === 401) {
|
|
|
- uni.showModal({
|
|
|
|
|
- title: '提示',
|
|
|
|
|
- content: '登录已过期,请重新登录',
|
|
|
|
|
- confirmText: '去登录',
|
|
|
|
|
- cancelText: '回首页',
|
|
|
|
|
- success: ({ confirm, cancel }) => {
|
|
|
|
|
- if (confirm) {
|
|
|
|
|
- toLoginPage({ mode: 'reLaunch' })
|
|
|
|
|
- }
|
|
|
|
|
- else if (cancel) {
|
|
|
|
|
- uni.reLaunch({ url: '/pages/home/home' })
|
|
|
|
|
|
|
+ if (!loginModalShown) {
|
|
|
|
|
+ loginModalShown = true
|
|
|
|
|
+
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ content: '登录已过期,请重新登录',
|
|
|
|
|
+ confirmText: '去登录',
|
|
|
|
|
+ cancelText: '回首页',
|
|
|
|
|
+ success: ({ confirm, cancel }) => {
|
|
|
|
|
+ loginModalShown = false // 重置标志
|
|
|
|
|
+
|
|
|
|
|
+ if (confirm) {
|
|
|
|
|
+ toLoginPage({ mode: 'reLaunch' })
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (cancel) {
|
|
|
|
|
+ uni.reLaunch({ url: '/pages/home/home' })
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ fail: () => {
|
|
|
|
|
+ loginModalShown = false // 重置标志
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- useTokenStore().cleanToken()
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- toLoginPage({ mode: 'reLaunch' })
|
|
|
|
|
- }, 1500)
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ useTokenStore().cleanToken()
|
|
|
|
|
+ }
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // toLoginPage({ mode: 'reLaunch' })
|
|
|
|
|
+ // }, 1500)
|
|
|
throw new Error('登录已过期')
|
|
throw new Error('登录已过期')
|
|
|
}
|
|
}
|
|
|
|
|
|