import store from '@/store/index.js'
// uni-app请求封装
export default class Request {
	http(router, data = {}, method, contentType, url) {
		let that = this;
		// let path = 'https://api.fhhx.runtzh.com';
		// let path ='http://n9373a29.natappfree.cc'//刘欣
		// let path = 'http://e6a9b738.natappfree.cc'//张秦
		let path ='http://129.28.77.198:7014'//张秦

		
		let token = "";
		let type = 0
		if (url != null) {
			type = 1
			let projectCode = uni.getStorageSync('projectCode')
			path = uni.getStorageSync('addressUrl_' + projectCode)
			token = uni.getStorageSync('AppTokenmini_MYCourse')

		} else {
			type = 0
			uni.setStorageSync('requestPath', path)
			token = uni.getStorageSync('AppToken');
		}
		if (router.indexOf("/course_uniapp") != -1) {
			type = 2;
			router = router.replace('/course_uniapp', '')
			let projectCode = uni.getStorageSync('projectCode')
			path = uni.getStorageSync('addressUrl_' + projectCode)
			token = uni.getStorageSync('TOKEN_WEXIN')
		}
		if (router.indexOf("/live/liveData/like") != -1) {
			path = 'https://im.fhhx.runtzh.com';
		}


		// uni.showLoading({
		// 	title: '加载中'
		// });
		return new Promise((resolve, reject) => {
			var httpContentType = 'application/x-www-form-urlencoded';
			if (!path) {
				uni.showToast({
					title: '链接有误',
					icon: 'none'
				});
				return
				reject('链接有误')
			}
			if (contentType != undefined) {
				//application/json;charset=UTF-8
				httpContentType = contentType;
			}
			var routers = router;
			// 请求
			uni.request({
				header: {
					'Content-Type': method === 'POST' ? 'application/json' : 'application/x-www-form-urlencoded',
					'AppToken': token
				},
				url: `${path}${router}`,
				data: data,
				method: method,
				success: (res) => {
					//收到开发者服务器成功返回的回调函数
					if (type !== 0 && (res.data.code == 401 || res.data.code == 4001 || res.data.code == 4004)) {
						store.commit('setCoureLogin', 2);
						uni.removeStorageSync("userinfos")
						uni.removeStorageSync('userInfo');
						uni.removeStorageSync('TOKEN_WEXIN');
						if (type == 1) {
							uni.removeStorageSync('AppTokenmini_MYCourse')
						}
						resolve({ code: 401, data: null });
						return
					}
					if (res.data.code == 401) { //没有权限直接退出到登录界面
						let pages = getCurrentPages();
						pages.forEach(function (element) {
							if (element != undefined && element.route ==
								"pages/auth/login") {
								resolve(res.data)
								return;
							}
						});
						let url = pages[pages.length - 1]; //当前页页面实例
						//如果登录界面已打开,自动关闭
						if (url != undefined && url.route == "pages/auth/login") {
							resolve(res.data)
							return;
						}
						uni.navigateTo({
							url: '/pages/auth/login',
							success: () => {
								uni.hideLoading();

							},
							fail: () => {
								uni.hideLoading();
							}
						})
						return;
					}
					if (res.data.token && type == 0) {
						uni.setStorageSync('AppToken', res.data.token)
					}
					resolve(res.data)
				},
				fail: (res) => {
					//接口调用失败的回调函数
					reject(res);
				},
				complete: (res) => {
					//接口调用结束的回调函数（调用成功、失败都会执行）
					if (res.data.code == 401) {
						return false
					}
					uni.hideLoading();
				}

			})
		})

	}

}