//引入相关配置信息
import env from "./config.js"
/**
 * create zzq
 * uni请求框架的二次封装
 * 参数说明options:{url:...,method:...,data...}
 */
export const request = (options) => {
	return new Promise((resolve, reject) => {
		// if(!options?.hideload){
		// 	if(options?.data?.token&&options.data.token){
		// 		uni.showLoading({
		// 			title: '',
		// 		})
		// 	}
		// }

		let token = uni.getStorageSync('AppAuthorization'); //判断是否存在请求token
		let header={}
		header=options.headers || {'Content-Type': 'application/json'}
		if(!token){
			header=options.headers || {'Content-Type': 'application/json'}
		}else{
			if(options.headers){
			   options.headers["AppAuthorization"]=token
			}
			header=options.headers || {'Content-Type': 'application/json','AppAuthorization': token}
		}
		// // 添加 timestamp 解决接口缓存问题，保证每次请求都是最新的
		// options.data = {
		// 	...options.data,
		// 	timestamp:new Date().getTime()
		// }
		uni.request({
			header:header, //默认是json的请求方式
			url: env.BASEURL + options.url, //是否是走本部门接口还是走外部接口
			method: options.method || 'GET',  //默认是GET请求
			data: options.data || {},　//如果data不为空,则请求data数据信息
			dataType:options.dataType||"json",
			timeout:options.timeout||40000,
			success: (res) => {
				//判断请求响应不为200
				if (res.data.code == 200||(res.data.meta&&res.data.meta.success==true)) { 
					// if(res.header.authorization &&(options.url=="platformNormalLogin" || options.url=="/newPlatformLogin" || options.url=="/platformThirdSelectLogin")){
					// 	uni.setStorageSync("authorization",res.header.authorization);
					// }
					resolve(res)
				}else{
					//提示用户相关的后端返回信息
					if(res.data.msg){
						uni.showToast({
							icon: "none",
							title: res.data.msg  //后端返回的校验信息
						})
					}

					let noLogin = [10003,10004]
					if (noLogin.includes(res.data.code)) {
						setTimeout(() => {
							uni.navigateTo({
								url: '/pages/myinfo/login'
							});
						}, 1000);
					}
					resolve(res)
					
				}
			},
			fail: (err) => {
				console.log('request-fail>>>',options.url,err)
				//请求接口报错或服务端异常则提示用户以下信息
				// uni.showToast({
				// 	title: "服务端接口异常～",
				// 	icon: "none"
				// })
				reject(err)
			},
			complete() {
				if (!options.hideload) {
					uni.hideLoading()
				}
			}
		})
	})
}
