refactor: 提取移动端公共底部导航栏并优化全面屏安全区域与接口报错机制

This commit is contained in:
yml
2026-05-25 09:00:39 +08:00
parent d16469aae3
commit 8a241a5cbc
11 changed files with 147 additions and 481 deletions
+13 -3
View File
@@ -1,5 +1,15 @@
import axios, { type AxiosResponse, type InternalAxiosRequestConfig } from 'axios'
import { ElMessage } from 'element-plus'
import { showToast } from 'vant'
function showError(message: string) {
const isMobile = window.location.pathname.startsWith('/m')
if (isMobile) {
showToast({ message, icon: 'cross' })
} else {
ElMessage.error(message)
}
}
declare module 'axios' {
export interface AxiosRequestConfig {
@@ -115,7 +125,7 @@ apiClient.interceptors.response.use(
if (!originalRequest || error?.response?.status !== 401 || originalRequest._retry) {
if (originalRequest && !originalRequest.silent) {
const msg = error.response?.data?.message || error.message || '网络连接异常,请稍后重试'
ElMessage.error(msg)
showError(msg)
}
return Promise.reject(error)
}
@@ -125,7 +135,7 @@ apiClient.interceptors.response.use(
if (isRefreshRequest(requestUrl)) {
redirectToLogin(scope)
if (originalRequest && !originalRequest.silent) {
ElMessage.error('登录已失效,请重新登录')
showError('登录已失效,请重新登录')
}
return Promise.reject(error)
}
@@ -152,7 +162,7 @@ apiClient.interceptors.response.use(
rejectPendingRequests(scope, refreshError)
redirectToLogin(scope)
if (originalRequest && !originalRequest.silent) {
ElMessage.error('会话已过期,请重新登录')
showError('会话已过期,请重新登录')
}
return Promise.reject(refreshError)
} finally {