import configdata from './config'
import cache from './cache'
import { encrypt,
		 decrypt,
		 urlSafeBase64Decode,
		 urlSafeBase64Encode } from '@/utils/cryptojs.js';
var ifShangxian=1//1线上，0线下
module.exports = {
	config: function(name) {
		var info = null;
		if (name) {
			var name2 = name.split("."); //字符分割
			if (name2.length > 1) {
				info = configdata[name2[0]][name2[1]] || null;
			} else {
				info = configdata[name] || null;
			}
			if (info == null) {
				let web_config = cache.get("web_config");
				if (web_config) {
					if (name2.length > 1) {
						info = web_config[name2[0]][name2[1]] || null;
					} else {
						info = web_config[name] || null;
					}
				}
			}
		}
		return info;
	},
	post: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		url = this.config("APIHOST") + url;
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postT: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		url = this.config("APIHOST1") + url;
		// let token = uni.getStorageSync("token");
		let token = uni.getStorageSync("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
						"token": token
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401 && token) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		} else {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}
	},

	postJson: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var a=JSON.stringify(data)
				data='"' + urlSafeBase64Encode(encrypt(a)) + '"'
			}else{
			}
		}
		header = header || "application/json";
		url = this.config("APIHOST1") + url;
		// let token = uni.getStorageSync("token");
		let token = uni.getStorageSync("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
						"token": token
					},
					success: function(result) {
						// var jie="RPX3_v1bTP4fLfrEMWHegBp_pJPh8TGDaN-SHZFjyyJOcNlwZJ7dREaKJR5KCYvBzrwWTORQbAiVxUbeM9yR64iuxF9KkcVI8l0OUbwqixblBww6nd-9X48KfSNXwBs3TIT_GvK62Syyawj6uxrW8w=="
						// console.log('结果',decrypt(urlSafeBase64Decode(jie)))
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401 && token) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")

							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		} else {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}
	},
	putT: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		url = this.config("APIHOST1") + url;
		// let token = uni.getStorageSync("token");
		let token = uni.getStorageSync("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "PUT",
					header: {
						"content-type": header,
						"token": token
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401 && token) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		} else {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}
	},
	getT: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		url = this.config("APIHOST1") + url;
		let token = uni.getStorageSync("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "GET",
					header: {
						"content-type": header,
						"token": token
					},
					success: function(result) {
						// var jie="VoOvrGkObjpwTxh9fnFHWLZa4RM1RG34gaxRoGoPmoG2fl8iJmTFqAYeA8_KoWVfwy94Je0aw_uTqgBxRgbs6Q=="
						// console.log('解密结果',decrypt(urlSafeBase64Decode(jie)))
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401 && token) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")

							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		} else {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "GET",
					header: {
						"content-type": header
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if (result.data.code == 401) {
							uni.removeStorageSync("token")
							uni.removeStorageSync("userId")
							uni.removeStorageSync("phone")
							uni.removeStorageSync("openid")
							uni.removeStorageSync("userName")
							uni.removeStorageSync("relation")
							uni.removeStorageSync("relation_id")
							uni.removeStorageSync("isInvitation")
							uni.removeStorageSync("zhiFuBao")
							uni.removeStorageSync("zhiFuBaoName")

							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										uni.redirectTo({
											url: '/pages/login/login'
										})
									}
								}
							});
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}

	},
	posts: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")
						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postF: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var a=JSON.stringify(data)
				data='"' + urlSafeBase64Encode(encrypt(a)) + '"'
			}else{
			}
		}
		header = header || "application/json";
		url = this.config("APIHOST") + url;
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postFs: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var a=JSON.stringify(data)
				data='"' + urlSafeBase64Encode(encrypt(a)) + '"'
			}else{
			}
		}
		header = header || "application/json";
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	get: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		url = this.config("APIHOST") + url;
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	getJd: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var arr =Object.entries(data)//对象转为数组
				var b=[]
				arr.forEach((element, index) => {  
					arr[index][1] = urlSafeBase64Encode(encrypt(element[1].toString()))
				}); 
				b=arr
				data=Object.fromEntries(b)
			}else{
			}
		}
		header = header || "application/x-www-form-urlencoded";
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				header: {
					"content-type": header
				},
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	get1: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var a=JSON.stringify(data)
				data='"' + urlSafeBase64Encode(encrypt(a)) + '"'
			}else{
			}
		}
		header = header || "application/json";
		url = this.config("APIHOST") + url;
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				success: function(result) {
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if (result.data.code == 401) {
						uni.removeStorageSync("token")
						uni.removeStorageSync("userId")
						uni.removeStorageSync("phone")
						uni.removeStorageSync("openid")
						uni.removeStorageSync("userName")
						uni.removeStorageSync("relation")
						uni.removeStorageSync("relation_id")
						uni.removeStorageSync("isInvitation")
						uni.removeStorageSync("zhiFuBao")
						uni.removeStorageSync("zhiFuBaoName")

						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									uni.redirectTo({
										url: '/pages/login/login'
									})
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	}
}
