import axios from 'axios'; import config from '../config'; import { Toast } from 'vant'; class Http { constructor() { axios.defaults.baseURL = config.getUrl(); this.interceptors(); } async get(option) { return await axios.get(option.url, { params: option.data, headers: Object.assign({ token: localStorage.getItem("token") }, option.headers) }); } async post(option) { return await axios.post(option.url, option.data, { headers: Object.assign({ token: localStorage.getItem("token") }, option.headers) }); } interceptors() { // 添加请求拦截器 axios.interceptors.request.use(function (config) { Toast.loading({ duration: 0, message: '加载中...', forbidClick: true, }); // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么 Toast.clear(); var data = response.data; switch(data.resultCode) { case "000": return data.data; case "500": Toast.fail(data.message); throw new Error(data.message); break; } }, function (error) { // 对响应错误做点什么 return Promise.reject(error); }); } } export default new Http()