refactor: 提取移动端公共底部导航栏并优化全面屏安全区域与接口报错机制
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user