import axios from 'axios'
|
import { ElMessage } from 'element-plus'
|
|
/** 后台前端只读取 admin_token,避免误带小程序端或导游端 Token。 */
|
const http = axios.create({
|
baseURL: 'https://www.mingdao123.com/api/admin',
|
timeout: 10000,
|
})
|
|
function redirectToLogin() {
|
localStorage.removeItem('admin_token')
|
if (location.pathname !== '/login') location.href = '/login'
|
}
|
|
http.interceptors.request.use((config) => {
|
const token = localStorage.getItem('admin_token')
|
if (token) config.headers.Authorization = `Bearer ${token}`
|
return config
|
})
|
|
http.interceptors.response.use(
|
(response) => {
|
const body = response.data
|
if (body.code !== 0) {
|
const message = body.message || '请求失败'
|
if (body.code === 401 || body.code === '401') {
|
redirectToLogin()
|
}
|
ElMessage.error(message)
|
const error = new Error(message)
|
error.code = body.code
|
return Promise.reject(error)
|
}
|
return body.data
|
},
|
(error) => {
|
if (error.response?.status === 401) {
|
redirectToLogin()
|
}
|
ElMessage.error(error.response?.data?.message || error.message || '网络异常')
|
return Promise.reject(error)
|
},
|
)
|
|
export default http
|