import configdata from './config'
import cache from './cache'
// import { encrypt,
// 		 decrypt,
// 		 urlSafeBase64Decode,
// 		 urlSafeBase64Encode } from '@/utils/cryptojs.js';
var ifShangxian=0//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;
	},

	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;
		// console.log(sessionStorage.getItem("token"),'l')
		// let token = sessionStorage.getItem("token");
		let token = sessionStorage.getItem("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
						"tokenW": token,
						// "tokenP": token
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if(result.data.message=="登录凭证已过去，请重新登录"){
							// 从 sessionStorage 删除所有保存的数据
							// sessionStorage.clear();
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						if (result.data.code == 401 && token) {
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						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,
						"tokenW": token
						// "tokenP": token
					},
					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)
					}
				})
			})
		}
	},
	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 = sessionStorage.getItem("token");
		let token = sessionStorage.getItem("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						"content-type": header,
						"tokenW": token
						// "tokenP": token
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if(result.data.message=="登录凭证已过去，请重新登录"){
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						if (result.data.code == 401 && token) {
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						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.message=="登录凭证已过去，请重新登录"){
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						if (result.data.code == 401) {
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						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("APIHOST1") + url;
		let token = sessionStorage.getItem("token");
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				header: {
					"content-type": header,
					"tokenW": token
					// "tokenP": token
				},
				success: function(result) {
					console.log(result)
					if(ifShangxian==1){
						const decryptData =decrypt(urlSafeBase64Decode(result.data))
						result.data=JSON.parse(decryptData)
					}
					if(result.data.message=="登录凭证已过去，请重新登录"){
						sessionStorage.removeItem("token")
						sessionStorage.removeItem("roleId")
						sessionStorage.removeItem("crerenwu")
						sessionStorage.removeItem("uprenwu")
						sessionStorage.removeItem("delerenwu")
						sessionStorage.removeItem("cuirenwu")
						sessionStorage.removeItem("gengrenwu")
						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									// uni.redirectTo({
									// 	url: '/pages/login/loginphone'
									// })
								}
							}
						});
					}
					if(result.data.message=="token为空"){
						sessionStorage.removeItem("token")
						sessionStorage.removeItem("roleId")
						sessionStorage.removeItem("crerenwu")
						sessionStorage.removeItem("uprenwu")
						sessionStorage.removeItem("delerenwu")
						sessionStorage.removeItem("cuirenwu")
						sessionStorage.removeItem("gengrenwu")
						uni.showModal({
							title: '提示',
							content: '请登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									// uni.redirectTo({
									// 	url: '/pages/login/loginphone'
									// })
								}
							}
						});
					}
					if (result.data.code == 401) {
						sessionStorage.removeItem("token")
						sessionStorage.removeItem("roleId")
						sessionStorage.removeItem("crerenwu")
						sessionStorage.removeItem("uprenwu")
						sessionStorage.removeItem("delerenwu")
						sessionStorage.removeItem("cuirenwu")
						sessionStorage.removeItem("gengrenwu")
	
						uni.showModal({
							title: '提示',
							content: '用户信息失效，请重新登录！',
							showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
							success: function(res) {
								if (res.confirm) {
									// uni.redirectTo({
									// 	url: '/pages/login/loginphone'
									// })
								}
							}
						});
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	
	postToken: function(url, data, header) {
		if(ifShangxian==1){
			if(data){
				var a=JSON.stringify(data)
				data='"' + urlSafeBase64Encode(encrypt(a)) + '"'
			}else{
			}
		}
		header = header || "application/json";
		// url = '/'+url;//this.config("APIHOST1") + url;
		// let token = sessionStorage.getItem("token");
		let token = sessionStorage.getItem("token");
		if (token) {
			return new Promise((succ, error) => {
				uni.request({
					url: url,
					data: data,
					method: "POST",
					header: {
						tokenW: sessionStorage.getItem("token"),
						// "tokenP": sessionStorage.getItem("token")
						"Content-Type": "multipart/form-data"
					},
					success: function(result) {
						if(ifShangxian==1){
							const decryptData =decrypt(urlSafeBase64Decode(result.data))
							result.data=JSON.parse(decryptData)
						}
						if(result.data.message=="登录凭证已过去，请重新登录"){
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
							uni.showModal({
								title: '提示',
								content: '用户信息失效，请重新登录！',
								showCancel: false, // 是否显示取消按钮，默认为 true // 是否显示取消按钮，默认为 true
								success: function(res) {
									if (res.confirm) {
										// uni.redirectTo({
										// 	url: '/pages/login/loginphone'
										// })
									}
								}
							});
						}
						if (result.data.code == 401 && token) {
							sessionStorage.removeItem("token")
							sessionStorage.removeItem("roleId")
							sessionStorage.removeItem("crerenwu")
							sessionStorage.removeItem("uprenwu")
							sessionStorage.removeItem("delerenwu")
							sessionStorage.removeItem("cuirenwu")
							sessionStorage.removeItem("gengrenwu")
	
							// 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: {
						tokenW: sessionStorage.getItem("token"),
						// "tokenP": sessionStorage.getItem("token"),
						"Content-Type": "multipart/form-data"
					},
					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)
					}
				})
			})
		}
	},
}
