import _Message from "@alifd/next/es/message";
import axios from 'axios';
import { getCookieData, $_GET } from "../utils/utils";
axios.defaults.baseURL = '/api';
// 跨域请求，允许保存cookie
axios.defaults.withCredentials = true;
axios.interceptors.request.use(function (config) {
  var _config$data, _config$headers;
  if (config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.ContentType) {
    var _config$data2;
    config.headers['Content-Type'] = config === null || config === void 0 ? void 0 : (_config$data2 = config.data) === null || _config$data2 === void 0 ? void 0 : _config$data2.ContentType;
    delete config.data.ContentType;
  } else {
    config.headers['Content-Type'] = 'multipart/form-data';
  }
  config.headers['Access-Control-Allow-Origin'] = '*';
  config.headers.Authorization = (config === null || config === void 0 ? void 0 : (_config$headers = config.headers) === null || _config$headers === void 0 ? void 0 : _config$headers.Authorization) || ($_GET === null || $_GET === void 0 ? void 0 : $_GET.token) || getCookieData().token || '';
  return config;
});
// 响应拦截器
axios.interceptors.response.use(function (res) {
  var status = res.status,
    data = res.data,
    baseURL = res.config.baseURL;
  var header = res.headers.header;
  if (status !== 200) {
    _Message.error('服务错误，请联系管理员');
    return;
  }
  // if (data.code && data.code === 401) {
  //     Message.notice('登录失效,请重新登录');
  // } else if (data.code && data.code === 200) {
  //     return res.data;
  // } else if (data.code && data.code === 10200) {
  //     // baseURL === "/comp-api"
  //     return {
  //         a: res.data,
  //         b: header
  //     }
  // } else {
  //     const message = data.msg || '';
  //     Message.warning(message);
  // }

  switch (data.code) {
    case 401:
      _Message.notice('登录失效,请重新登录');
      break;
    case 200:
      return res.data;
    case 10200:
      switch (baseURL) {
        case '/comp-api':
          return res.data;
        default:
          return {
            a: res.data,
            b: header
          };
      }
      break;
    default:
      return _Message.warning(data.msg || '');
  }
},
// 拦截到响应对象，将响应对象的 data 属性返回给调用的地方
function (error) {
  Promise.reject(error);
});
export default axios;