import axios from 'axios' import config from '@/config' import { Notification, Loading } from 'element-ui'; let loadingInstance = 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) { loadingInstance = Loading.service({ text: '加载中...' }) return config }, function (error) { // 对请求错误做些什么 return Promise.reject(error) }) // 添加响应拦截器 this.instance.interceptors.response.use(function (response) { // 对响应数据做点什么 loadingInstance.close(); switch (response.data.status) { case 200: return response.data.result break; case 404: Notification.error({ title: '接口出现错误', message: response.data.msg, duration: 0 }) throw new Error(response.data.msg) break; } }, function (error) { // 对响应错误做点什么 return Promise.reject(error) }) } }