import Axios from 'axios'; import { ElMessage } from 'element-plus'; import store from 'store'; const baseUrl = '/gateway'; const instance = Axios.create({ baseUrl, timeout: 20000, }); // request instance.interceptors.request.use( config => { const token = store.getters['user/token'] || sessionStorage.getItem('token'); if (token) { // config.headers.Authorization = `Bearer ${token}`; } // config.headers.deviceId = store.state.systemInfo.deviceId; config.headers.deviceId = '1'; config.headers.appType = 0; return config; }, error => { return Promise.reject(error); }, ); // response instance.interceptors.response.use( response => { if (response.status !== 200 || !response.data) { return Promise.reject(response.statusText); } const { code, data, msg } = response.data; if (code === 200) { return data; } return Promise.reject(msg); }, error => { if (error.response && error.response.data) { const code = error.response.status; const msg = error.response.data.message; ElMessage.error(`Code: ${code}, Message: ${msg}`); console.error(`[Axios Error]`, error.response); } else { // ElMessage.error(`${error}`); } return Promise.reject(error); }, ); export default instance;