import axios from 'axios';
import router from '../src/router/index';
import { Message } from 'element-ui';
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  const token = sessionStorage.getItem('token');
  if (token) config.headers.authorization = token;
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  if (response.status == 401) {
    // 返回登录处理
    sessionStorage.removeItem('token');
    router.replace('/frame/login');
  }
  if (response.status == 500) {
    // 错误处理
    response.data.data = { errcode: -1001, errmsg: '服务器错误' };
  }
  return response.data;
}, function (error) {
  Message.error('服务器错误');
  // 对响应错误做点什么
  return Promise.reject(error);
});

// 私有方法
const request = async ({ url, method, params, data, headers }) => {
  return await axios.request({ url, method, params, data, headers });
};

// 定义类
class Point {
  get(url, params, headers) {
    return request({ url, params, headers });
  }

  post(url, data, params, headers) {
    return request({ url, method: 'post', data, params, headers });
  }

  delete(url, params, headers) {
    return request({ url, method: 'delete', params, headers });
  }
}
export default new Point();