import axios from 'axios' import config from '@/config' import { Toast } from 'vant'; var toast = null; export default class Http { constructor () { this.instance = axios.create({ baseURL: config.checkUrl(), timeout: 10000, headers: { 'Content-Type': 'application/json' } }) this.interceptors() } async get (params) { return await this.instance.get(params.url, { params: params.data, headers: Object.assign({ token: localStorage.getItem("token") }, params.headers ) }) } async post (params) { return await this.instance.post(params.url, params.data, { headers: Object.assign({ token: localStorage.getItem("token") }, params.headers ) }) } interceptors () { // 添加请求拦截器 this.instance.interceptors.request.use(function (config) { toast = Toast.loading({ duration: 0, message: '加载中...' }); return config }, function (error) { // 对请求错误做些什么 return Promise.reject(error) }) // 添加响应拦截器 this.instance.interceptors.response.use(function (response) { // 对响应数据做点什么 toast.clear(); switch (response.data.status) { case 200: return response.data.result break; case 404: Toast.fail(response.data.msg); throw new Error(response.data.msg) break; } }, function (error) { // 对响应错误做点什么 return Promise.reject(error) }) } }