65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
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()
|