// 请求域名
var domain = 'https://kailin.dfwy.tech/'
//var domain = 'http://kailin.test/'
// #ifdef MP-WEIXIN
// 'http://127.0.0.1:8000/';
domain = uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? 'https://mall.findit.ltd/' : 'https://kailin.dfwy.tech/';
// #endif

// 发送网络请求的函数
const request = (url, data = {}, method = 'GET') => {
	// 获取登录标识
	let userLogin = uni.getStorageSync('userLogin');
	// 合并参数
	if( userLogin && userLogin.authcode ) data = Object.assign({authcode:userLogin.authcode},data);
	// 封装
	return new Promise((resolve, reject) => {
		uni.request({
			url: domain+url,
			method: method,
			data: data,
			success: (res) => {
				// 登录提示
				if(res.data.code == 'no_login'){
					// 清空登录标识
					uni.setStorageSync('userLogin',null);
					// 清空用户信息
					uni.setStorageSync('userInfo',null);
					// 前去登录
					uni.showModal({
						title:"请登录",
						success(res){
							if (res.confirm) {
								// 用户点击确定按钮
								uni.navigateTo({
									url:"/pages/login/index"
								})
							}
						}
					})
				}
				// 返回结果
				resolve(res.data)
			},
			fail: (err) => {
				reject(err)
			}
		})
	})
}

const fileupload = (url, filePath,data = {}) =>{
	// 获取登录标识
	let userLogin = uni.getStorageSync('userLogin');
	// 合并参数
	if( userLogin && userLogin.authcode ) data = Object.assign({authcode:userLogin.authcode},data);
	// 封装
	return new Promise((resolve, reject) => {
		uni.uploadFile({
			url: domain+url, // 你的上传接口地址
			filePath: filePath,
			name: 'file', // 必须填写，为了后端接收文件流的参数名字
			formData: data,// 其他要上传的参数
			success: (res) => {
				// 登录提示
				if(res.data.code == 'no_login'){
					// 前去登录
					uni.showModal({
						title:"请登录",
						success(res){
							if (res.confirm) {
								// 用户点击确定按钮
								uni.navigateTo({
									url:"/pages/login/index"
								})
							}
						}
					})
				}
				// 转json，php返回可能会带bom头需要先替换
				let resdata = JSON.parse(res.data.replace('\uFEFF',''));
				resolve(resdata)
			},
			fail: (err) => {
				reject(err)
			}
		});
	})
}

// 字符串键值对转参数对象
const strToParam = (str, separator = '&')=> {
	// 先转码
	str			= decodeURIComponent(str);
	let pairs 	= str.split(separator);
	let result 	= {};
	pairs.forEach(pair => {
		let [key, value] = pair.split('=');
		result[key] = value;
	});
	// 返回结果
	return result;
}

// 模块导出，{name:object} 为对象式，导出多个使用
// export default {request:request,request1:request1};
// 单个对象，直接导出如下
export default {request:request,fileupload:fileupload,strToParam:strToParam}