import axios from 'axios';
import qs from 'qs';
import Util from "../tool";


/**
 * 封装axios的通用请求
 * @param  {string}   method     get\post\put\delete
 * @param  {string}   url       请求的接口URL
 * @param  {object}   param     传的参数,没有则传空对象
 */

const envs = process.env.NODE_ENV;
export let NODE_ENVS = "/";
switch (envs) {
  case 'development':
    //开发环境
    NODE_ENVS = 'http://cloud.liexindev.net';
    break;
  case 'test':
    //测试环境
    NODE_ENVS = 'http://cloud.liexindev.net';
    break;
  case 'production':
    //线上环境
    NODE_ENVS = '//cloud.ichunt.com';
    break;
}


export const http = (method, url, param,loading) => {
  //axios.defaults.withCredentials = true; // 携带cookie
  //loading 默认加载loading  传1 不加载
  param = param && typeof param === 'object' ? param : {};
  let token = Util.getCookie('token') || '';
  const config = {
    url: `${NODE_ENVS}${url}`,
    method: method,
    transformRequest: [function (param) {
      return qs.stringify(param);
    }],
    loading:(loading?false:true)
  };
  //param.token=token
  if(url!="/auth/cp"&&url!="/auth/login"){
    config.headers={
      'Authorization': 'Bearer ' + token
    }

  }
  // post请求时需要设定Content-Type
  if (method == 'post'||method == 'POST') {
    config.data = param;
  } else if (method === 'get'||method == 'GET') {
    config.params = param;
  }
  return axios(config);
}