import store from '@/store' import errorCode from '@/config/errorCode' import axios from 'axios' import mpAdapter from 'axios-miniprogram-adapter' axios.defaults.adapter = mpAdapter import mock from './mock' const baseUrl = 'https://zzjs.zzxcx.net/prod-api'; // 创建axios实例 const service = axios.create({ // axios中请求配置有baseURL选项,表示请求URL公共部分 //#ifdef MP-WEIXIN baseURL: process.env.NODE_ENV === 'development' ? 'https://jpcj-admin1.zzxcx.net/stage-api' : 'https://jpcj-admin.zzxcx.net/prod-api', //#endif //#ifdef MP-TOUTIAO baseURL: process.env.NODE_ENV === 'development' ? 'https://sdjk-admin1.zzxcx.net/stage-api' : 'https://sdjk-admin1.zzxcx.net/prod-api', //#endif }) mock.init(service) // request拦截器 service.interceptors.request.use( async config => { // 是否需要设置 token if (config.headers.isLogin) { return config } if (await store.dispatch("getToken")) { config.headers['Authorization'] = 'Bearer ' + await store.dispatch("getToken") // 让每个请求携带自定义token 请根据实际情况自行修改 } else { } return config }, error => { Promise.reject(error) } ) // 响应拦截器 service.interceptors.response.use( res => { // 未设置状态码则默认成功状态 const code = res.data.code || 200; // 获取错误信息 const msg = errorCode[code] || res.data.msg || errorCode['default'] //重置Authorization时间 if (code !== 401) store.commit('REFRESH_TOKEN') if (code !== 200) { if (code == 500) { console.log('code' + code + ':' + msg) wx.showToast({ title: 'code' + code + ':系统错误', icon: 'none' }) } else { console.log('code' + code + ':' + msg) wx.showToast({ title: 'code' + code + ':' + msg, icon: 'none' }) } } return res.data }, error => { let { message } = error; console.log(error, 'error') if (!message) { message = "未知错误" wx.showToast({ title: message, icon: 'none' }) return Promise.reject(error) } if (message == "Network Error") { message = "后端接口连接异常"; } else if (message.includes("timeout")) { message = "系统接口请求超时"; } else if (message.includes("Request failed with status code")) { message = "系统接口" + message.substr(message.length - 3) + "异常"; } wx.showToast({ title: message, icon: 'none' }) return Promise.reject(error) } ) export default service