import axios from 'axios' import { ElMessage } from 'element-plus' import { useUserStore } from '@/stores/user' import router from '@/router' const request = axios.create({ baseURL: '/api', timeout: 3600000 }) request.interceptors.request.use( (config) => { const userStore = useUserStore() if (userStore.token) { config.headers.Authorization = `Bearer ${userStore.token}` } return config }, (error) => { return Promise.reject(error) } ) request.interceptors.response.use( (response) => { const res = response.data console.log('拦截res=', res) if (res.code && res.code !== 200) { ElMessage.error(res.message || '请求失败') return Promise.reject(new Error(res.message || '请求失败')) } return res }, (error) => { if (error.response && error.response.status === 401) { const userStore = useUserStore() userStore.logout() router.push('/login') ElMessage.error('登录已过期,请重新登录') } else { ElMessage.error(error.message || '网络错误') } return Promise.reject(error) } ) export default request