import _config from './config'; // 导入私有配置



export default function $http(options) {
	options.url = _config.url + options.url;	
	return new Promise((resolve, reject) => {					
		let token = uni.getStorageSync('token');		
		uni.showLoading({
			title: "加载中",
			mask: true,
		});
		_config.header = {	
			 'Content-Type': 'application/json',
			 'Authorization':'Bearer '+token	
			
		}
		
		_config.complete = (response) => {			
			if (response.statusCode === 200){			
				resolve(response);
			} else {				
				if (options.handle) {
					reject(response)
				} else {
					try {
						Promise.reject(response).catch(err => {							
							_page_error(response.statusCode || response.errMsg);
						});
					} catch (e) {
						console.log(e)
					}
				}
			}
			// 完成之后关闭加载效果			

		}
		// 开始请求
		uni.request(Object.assign({}, _config, options));
		
		uni.hideLoading();
	})
}

// 接口錯誤
function _error(err, msg = '') {
	switch (err) {
		case 400:
			console.error(msg)
			// 错误码400的处理方式
			break;
	}
}
// request 錯誤
function _page_error(err) {
	switch (err) {
	     	case 401:		
			// 错误码404的处理方式
			uni.reLaunch({
				url: "/pages/logon/index.vue",					
			})
			console.error("请求背拒绝")
			break;
	     	case 404:
			// 错误码404的处理方式
			console.error("没有找到页面")
			break;
		    case 405:
			console.error("错误的请求")
			break;
	}
}
