import * as config from '@/config'
let baseUrl = config.def().baseUrlNew
// 定义基础请求路径(后端服务器地址)
const baseRequest = (_gp, _mt, data = {}, failCallback) => {

	//异步请求数据
	return new Promise(resolve => {
		// if (!userInfo || !userInfo.accessToken) {
		// 	userInfo = uni.getStorageSync('userInfo')
		// }
		// let accessToken = userInfo ? userInfo.accessToken : ''
		let baseUrl = config.def().baseUrlNew
		uni.request({
			url: baseUrl + '/m.api',
			data: {
				...data,
				_gp,
				_mt
			},
			method: 'POST',
			header: {
				'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
				// 'ACCESSTOKEN': accessToken
			},
			success: (res) => {
				if (res.statusCode === 200) {
					if (res.data.errno === 200) {
						resolve(res.data);
					} else {
						if (failCallback) {
							failCallback(res.data)
						} else {
							uni.showToast({
								title: res.data.errmsg,
								icon: 'none'
							})
						}
					}
				}
			}
		})
	})
}

//带Token请求
const TokenRequest = (method, url, data, header) => {
	var contentheader = 'application/json'
	if (header) {
		contentheader = header
	}
	let ac_token = "";
	uni.getStorage({
		key: 'userInfo',
		success: function(res) {
			ac_token = res.data.accessToken
		}
	});
	//此token是登录成功后后台返回保存在storage中的
	let DefaultOpts = {
		url: baseUrl + url,
		data: data,
		method: method,
		header: {
			'content-type': contentheader,
			'Token': ac_token,
		}
	}
	let promise = new Promise(function(resolve, reject) {
		uni.request(DefaultOpts).then(
			(res) => {
				console.log(JSON.stringify(res[1].data))
				if (res[1].data.code == '200' || res[1].data.code == 200) {
					// 后端返回的状态码100为成功状态,成功则返回请求结果,在app调试时可以通过console.log(JSON.stringify(res[1].data))来查看返回值（以项目实际情况为准）
					resolve(res[1].data)
				}
				if (res[1].data.code == '105' || res[1].data.code == 105) {
					// 后端返回状态码为105则为未登录状态（以项目实际情况为准）
					uni.showToast({
						icon: 'none',
						title: '尚未登录',
						duration: 2000
					});
					// 尚未登录的逻辑处理
					return false
				}
			}
		).catch(
			(response) => {
				reject(response)
			}
		)
	})
	return promise
}
export default {
	baseUrl,
	baseRequest,
	TokenRequest
}
