import { commonConfig } from '../common/config'

export default { 
	async post(url, param,yanci=true) {
		// if(yanci){ 
		// 	uni.showLoading({
		// 		title:'加载中'
		// 	})
		// 	setTimeout(()=>{
		// 		uni.hideLoading()
		// 	},3000)			
		// }
		const res = await this.uni_request(url,param,'post')  
		// if(yanci){
		// 	setTimeout(()=>{
		// 		uni.hideLoading()
		// 	},200)	
		// }
		return res;
	},
	async get(url, param,yanci=true) {
		// if(yanci){ 
		// 	uni.showLoading({
		// 		title:'加载中'
		// 	})
		// 	setTimeout(()=>{
		// 		uni.hideLoading()
		// 	},3000)			
		// }
		const res = await this.uni_request(url,param,'get') 
		// if(yanci){
		// 	setTimeout(()=>{
		// 		uni.hideLoading()
		// 	},200)
		// }
		return res;
	}, 
	async put(url, param) {
		const res = await this.uni_request(url,param,'put') 
		return res;
	}, 
	async delete(url, param) {
		const res = await this.uni_request(url,param,'delete') 
		return res;
	}, 
	uni_request(url,param,method,again_quest=true) {
		const that = this
	    return new Promise((cback, reject) => {
	    	uni.request({
	    		url: commonConfig.baseUrl + url,
	    		data: param,
	    		method:method,
	    		header: {
					accessToken:uni.getStorageSync("token")  	    		 	    			
	    		},
	    	}).then(data => { //data为一个数组,数组第一项为错误信息,第二项为返回数据				
				var [error, res] = data;
				cback(res.data); 
	    		var res_code = res.statusCode.toString(); 
				let errCode = res.data?.retHead?.errCode;
	    		if (res_code.charAt(0) == 2) {
	    			if(res_code==200){
	    				// console.log('200',url)
	    				cback(res.data); 
					}else{
						console.log('201',url)
						uni.showToast({
							title:res.data.retHead.errMsg,
							icon:'none'
						})
					}
				};
				if(errCode==401||errCode==405){
					uni.showToast({
						title:res.data.retHead.errMsg,
						icon:'none',
						duration: 12000,
						complete:function(){
							window.location.replace(config.loginUrl)
						}
					})
					
				};
				// else{
				// 	if(res_code==401){
				// 		//登录失效
				// 		console.log('401',url) 
				// 		if(again_quest){
				// 			// token.getTokenFromServer(()=>{
				// 			// 	const again_res=that.uni_request(url,param,method,false)	
				// 			// 	//注意这里需要cback,因为是上一个promis的cback
				// 			// 	cback(again_res); 
				// 			// });				
				// 		}else{
				// 			console.log('再次登陆仍然失败',url)
				// 		} 
				// 	}else{
				// 		console.log('400/500',url,error,res)
				// 		uni.showToast({
				// 			title:res.data.msg?res.data.msg:'请求异常',
				// 			icon:'none'
				// 		})
				// 	}
				// };
				// console.log('uni_requestdata',data[1].data.retHead);
				if(data[1].data.retHead.errCode&&data[1].data.retHead.errCode!='0'&&data[1].data.retHead.errMsg){
					uni.showToast({
						title:data[1].data.retHead.errMsg,
						icon:'none'
					});
				};
			}).catch(err => { 
				console.log('catch:',err);					 
			})
		})	
	}, 

}