import axios from 'axios' import utils from '../utils' import { Toast } from 'vant'; class Axios { constructor() { axios.defaults.baseURL = utils.BaseApi() this.RequestInterceptors() this.ResponseInterceptors() } /** * get接口的请求 * @param params * { * url: '请求地址', * data: { * 接口请求参数 * } * } * @returns {Promise<*>} */ async get(params = {}) { return await axios.get(params.url, { params: params.data }) } /** * post 接口的请求 * @param params * { * url: '请求地址', * data: { * 接口请求参数 * } * } * @param params * @returns {Promise<*>} */ async post(params = {}) { return await axios.post(params.url, params.data) } /** * 添加请求拦截器 * @constructor */ RequestInterceptors() { axios.interceptors.request.use(function(config) { // ajax发送的时候显示加载进度 Toast.loading({ message: '加载中...', forbidClick: true }); // 在发送请求之前做些什么 return config; }, function(error) { // 对请求错误做些什么 return Promise.reject(error); }); } /** * 添加响应拦截器 * @constructor */ ResponseInterceptors() { axios.interceptors.response.use(function(response) { console.log(response.data) switch (response.data.resultCode) { case '000': Toast.clear("给你"); return response.data.data; break; case '500': Toast.fail(response.data.message); break; default: break; } }, function(error) { // 对响应错误做点什么 Toast.fail('wwwww'); // 给用户看 // 日志记录 稍后写 return Promise.reject(error); }); } } export default new Axios();