import Config from './config.js'
import Util from './util.js'
import store from '@/store/index.js'

// #ifdef H5
const app_type = 'h5';
const app_type_name = 'H5';
// #endif

// #ifdef MP-WEIXIN
const app_type = 'weapp';
const app_type_name = '微信小程序';
// #endif

// #ifdef MP-ALIPAY
const app_type = 'aliapp';
const app_type_name = '支付宝小程序';
// #endif

// #ifdef MP-BAIDU
const app_type = 'baiduapp';
const app_type_name = '百度小程序';
// #endif

// #ifdef MP-TOUTIAO
const app_type = 'MP-TOUTIAO';
const app_type_name = '头条小程序';
// #endif

// #ifdef MP-QQ
const app_type = 'MP-QQ';
const app_type_name = 'QQ小程序';
// #endif

// #ifdef APP-PLUS
const app_type = 'app';
const app_type_name = 'APP';
// #endif

export default {
	sendRequest(params) {
		if (!Config.baseUrl) {
			uni.showToast({
				title: '未配置请求域名',
				'icon': 'none',
				duration: 10000
			});
			return;
		}

		var method = '' // 请求方式


		
		
		// localStorage.setItem("env","ywxk")
		if(process.env.NODE_ENV === 'production'){
			Config.baseUrl='https://xty-api.wucits.com'
		}else{
			//开发环境读配置
			if(Config.isLocal==2){
				Config.baseUrl='http://125.124.170.221:8000'
			}else{
				Config.baseUrl='http://zhxy.com'
			}
		}
		
		var url = Config.baseUrl + params.url // 请求路径
		

		var data = {};

		if (params.method) {

			method = params.method
		} else if (params.data != undefined) {

			method = 'POST'
		} else {

			method = 'GET'
		}

		// token
		if (uni.getStorageSync('token')) data.token = uni.getStorageSync('token');

		// 门店id
		if (uni.getStorageSync('store_info')) data.store_id = uni.getStorageSync('store_info').store_id;

		// 参数
		if (params.data != undefined) Object.assign(data, params.data);

		if (params.async === false) {
			console.log("zheli lema");
			//同步
			return new Promise((resolve, reject) => {
				uni.request({
					url: url,
					method: method,
					data: data,
					header: params.header || {
						// 'Accept': 'application/json',
						'content-type': 'application/json',
						Authorization: uni.getStorageSync('token') ? uni.getStorageSync('token') :
							'zhxy'
					},
					dataType: params.dataType || 'json',
					responseType: params.responseType || 'text',
					success: (res) => {
						console.log(res, "success res");
						// try {
						// 	res.data = JSON.parse(res.data);
						// } catch (e) {
						// 	//TODO handle the exception
						// 	console.log('api error:', e);
						// }
						if (res.data.code == -3 && store.state.siteState > 0) {
							store.commit('setSiteState', -3)
							Util.redirectTo('/pages_tool/storeclose/storeclose', {}, 'reLaunch');
							return;
						}
						if (res.data.refreshtoken) {
							uni.setStorage({
								key: 'token',
								data: res.data.refreshtoken
							});
						}
						
						if (res.data.code == -10009 || res.data.code == -10010) {
							uni.removeStorage({
								key: 'token'
							})
						}
						// resolve(res.data)
						console.log(res.data,"res.data");
						if(res.data.code==200 || res.data.code==403){
							//typeof params.success == 'function' && params.success(res.data);
							resolve(res.data)
						} else {
							uni.showToast({
								title: res.data.msg+url,
								'icon': 'none',
								duration: 3000
							})
						}
					},
					fail: (res) => {
						if (res.errMsg && res.errMsg == 'request:fail url not in domain list') {
							uni.showToast({
								title: Config.baseUrl + '不在request 合法域名列表中',
								'icon': 'none',
								duration: 10000
							});
							return;
						}

						reject(res);
					},
					complete: (res) => {
						console.log(res, "complete complete");
						if ((res.errMsg && res.errMsg != "request:ok") || (res.statusCode && [200,
								500
							].indexOf(res.statusCode) == -1)) {
							uni.showToast({
								title: Config.baseUrl + '请求失败',
								'icon': 'none',
								duration: 10000
							})
							return;
						}
					}
				});
			});
		} else {
			//异步
			uni.showLoading({
				title: '加载中'
			});
			console.log("token是什么",uni.getStorageSync('token'));
			
			uni.request({
				url: url,
				method: method,
				data: data,
				header: params.header || {
					// 'Accept': 'application/json',
					'content-type': 'application/json',
					Authorization: uni.getStorageSync('token') ? uni.getStorageSync('token') : 'zhxy'
				},
				dataType: params.dataType || 'json',
				responseType: params.responseType || 'text',
				success: (res) => {
					// try {
					// 	res.data = JSON.parse(res.data);
					// } catch (e) {
					// 	//TODO handle the exception
					// 	console.log('api error:', e);
					// }
					if (res.data.code == -3 && store.state.siteState > 0) {
						store.commit('setSiteState', -3)
						Util.redirectTo('/pages_tool/storeclose/storeclose', {}, 'reLaunch');
						return;
					}
					if (res.data.refreshtoken) {
						uni.setStorage({
							key: 'token',
							data: res.data.refreshtoken
						});
					}
					if (res.data.code == -10009 || res.data.code == -10010) {
						uni.removeStorage({
							key: 'token'
						})
					}
					if (res.data.code == 200 || res.data.code == 403) {
						typeof params.success == 'function' && params.success(res.data);

					} else {
						uni.showToast({
							title: res.data.msg ,
							'icon': 'none',
							duration: 3000
						})
					}
					uni.hideLoading();
				},
				fail: (res) => {
					if (res.errMsg && res.errMsg == 'request:fail url not in domain list') {
						uni.showToast({
							title: Config.baseUrl + '不在request 合法域名列表中',
							'icon': 'none',
							duration: 10000
						});
						return;
					}
					typeof params.fail == 'function' && params.fail(res);

					uni.hideLoading();
				},
				complete: (res) => {
					if ((res.errMsg && res.errMsg != "request:ok") || (res.statusCode && [200, 500].indexOf(
							res.statusCode) == -1)) {
						uni.showToast({
							title: Config.baseUrl + '请求失败',
							'icon': 'none',
							duration: 10000
						})
						return;
					}
					typeof params.complete == 'function' && params.complete(res);
				}
			});
		}
	}
}