// import request from '../utils/request';

// export const fetchData = query => {
//     return request({
//         url: './table.json',
//         method: 'get',
//         params: query
//     });
// };

// 引入axios
import axios from 'axios'
// 引入qs库转换参数格式
import qs from 'qs'



// axios全局配置
axios.defaults.timeout = 10000 // 超时时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // 配置请求头
axios.defaults.baseURL = '/'
// axios.defaults.baseURL = 'http://tougao.com/'
// axios.defaults.baseURL = 'http://journal.com/'
// axios.defaults.baseURL = 'http://testjournal.tmrjournals.com/public/index.php/'


// 添加响应拦截器，统一处理服务器响应和异常
axios.interceptors.response.use(
	(response) => {
		// 请求正常则返回0
		return Promise.resolve(response)
	},
	(error) => {
		// 请求错误进行的处理可以写在这里
		if (err && err.response) {
			switch (err.response.status) {
				case 400:
					err.message = '错误请求'
					break;
				case 401:
					err.message = '未授权，请重新登录';
					break;
				case 403:
					err.message = '拒绝访问';
					break;
				case 404:
					err.message = '请求错误,未找到该资源';
					break;
				case 405:
					err.message = '请求方法未允许';
					break;
				case 408:
					err.message = '请求超时';
					break;
				case 500:
					err.message = '服务器端出错';
					break;
				case 501:
					err.message = '网络未实现';
					break;
				case 502:
					err.message = '网络错误';
					break;
				case 503:
					err.message = '服务不可用';
					break;
				case 504:
					err.message = '网络超时';
					break;
				case 505:
					err.message = 'http版本不支持该请求';
					break;
				default:
					err.message = `连接错误${err.response.status}`
			}
		}
		return Promise.reject(error)
	}
)

export default {
	/**
	 * post方法，对应post请求
	 * @param {String} url [请求的url地址]
	 * @param {Object} params [请求时携带的参数]
	 */
	post(url, params) {
		return new Promise((resolve, reject) => {
			axios.post(url, qs.stringify(params))
				.then(res => {
					resolve(res.data)
				})
				.catch(err => {
					reject(err)
				})
		})
	},
	/**
	 * get方法，对应get请求
	 * @param {String} url [请求的url地址]
	 * @param {Object} params [请求时携带的参数]
	 */
	get(url, params) {
		return new Promise((resolve, reject) => {
			axios.get(url, {
					params: param
				})
				.then(res => {
					resolve(res.data)
				})
				.catch(err => {
					reject(err)
				})
		})
	},
}
