import configdata from './config'
import cache from './cache'
import {
	cacheClearAll,cacheClear
} from '@/store/cashe.js'
function successCallBack(url){
	if(url.includes('app/courseCollect/insertCourseCollect')){
		cacheClear('chasingDrama')
		return 
	}
	if(url.includes('app/user/updateUser') ){
		cacheClear('renwu')
	}
}
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;
	},
	logout: function() {
		let that = this;
		// 获取当前页面实例
		const pages = getCurrentPages();
		// 获取当前页面的实例
		const currentPage = pages[pages.length - 1];
		// 获取页面路径
		const pagePath = currentPage.route
		const systemInfo = uni.getSystemInfoSync();
		const isIOS = /iOS/.test(systemInfo.platform);
		// if ( pagePath == "pages/task/index") {
		// 	return;
		// }
		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")
		cacheClearAll()
		uni.showToast({
			title: '用户信息失效，请重新登录！',
			icon: 'none'
		})

		uni.navigateTo({
			url: "/pages/login/login"
		})
	},
	post: function(url, data, header) {
		let that = this;
		header = header || "application/x-www-form-urlencoded";
		url = that.config("APIHOST") + url.replace(/^\//, "");
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if (result.data.code == 401) {
						that.logout();
					}else{
						successCallBack(url)
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postT: function(url, data, header) {
		let that = this;
		header = header || "application/x-www-form-urlencoded";
		url = that.config("APIHOST1") + url.replace(/^\//, "");
		// 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 (result.data.code == 401) {
							that.logout();
						}

						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) {

						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}
	},

	postJson: function(url, data, header) {
		let that = this;
		header = header || "application/json";
		url = that.config("APIHOST1") + url.replace(/^\//, "");
		// 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 (result.data.code == 401) {
							that.logout();
						}else{
							successCallBack(url)
							// cacheClear('chasingDrama')
						}
						
						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 (result.data.code == 401) {
							that.logout();
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}
	},
	getT: function(url, data, header) {
		let that = this;
		header = header || "application/x-www-form-urlencoded";
		url = that.config("APIHOST1") + url.replace(/^\//, "");
		// let token = uni.getStorageSync("token");
		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) {
						if (result.data.code == 401) {
							that.logout();
						}
						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 (result.data.code == 401) {
							that.logout();
						}
						succ.call(self, result.data)
					},
					fail: function(e) {
						error.call(self, e)
					}
				})
			})
		}

	},
	posts: function(url, data, header) {
		let that = this;
		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 (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postF: function(url, data, header) {
		let that = this;
		header = header || "application/json";
		url = that.config("APIHOST") + url;
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "POST",
				header: {
					"content-type": header
				},
				success: function(result) {
					if (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	postFs: function(url, data, header) {
		let that = this;
		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 (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	get: function(url, data, header) {
		let that = this;
		header = header || "application/x-www-form-urlencoded";
		url = that.config("APIHOST") + url.replace(/^\//, "");
		console.log(url);
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				header: {
					"content-type": header
				},
				success: function(result) {
					if (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	getJd: function(url, data, header) {
		let that = this;
		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 (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	},
	get1: function(url, data, header) {
		let that = this;
		header = header || "application/json";
		url = that.config("APIHOST") + url.replace(/^\//, "");
		return new Promise((succ, error) => {
			uni.request({
				url: url,
				data: data,
				method: "GET",
				success: function(result) {
					if (result.data.code == 401) {
						that.logout();
					}
					succ.call(self, result.data)
				},
				fail: function(e) {
					error.call(self, e)
				}
			})
		})
	}
}