94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
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();
|