<template>
	<view>
	</view>
</template>
<script>
	import {
		getUserInfo
	} from '@/api/login.js';
	import {
		mapMutations,
		mapState
	} from 'vuex';
	// #ifdef H5
	import {
		wechatAuth
	} from '@/api/wx';
	// #endif
	// #ifdef MP-WEIXIN
	import {
		wechatMpAuth
	} from '@/api/wx';
	// #endif
	export default {
		computed: {
			...mapState(['urlFile'])
		},
		onLoad(option) {
			let obj = this;
			// 判断是否需要保存定向地址
			// #ifdef H5
			this.loadH5()
			// #endif
			// #ifdef MP-WEIXIN
			this.loadMp(option)
			// #endif
		},
		methods: {
			...mapMutations('user', ['login', 'setUserInfo']),
			// #ifdef H5
			loadH5() {
				let obj = this;
				let url = window.location.href;
				let code = url.match(/code=([0-9]|[a-z]|[A-Z])*/g)[0].replace('code=', '');
				history.replaceState({
					name: '首页'
				}, '首页', obj.urlFile + '/#/pages/index/index');
				let spread = uni.getStorageSync('spread') || '';
				wechatAuth({
					code: code,
					spread: spread,
				}).then(({
					data
				}) => {
					obj.wchatAuth(data);
				}).catch((e) => {
					uni.showModal({
						title: '错误',
						content: JSON.stringify(e),
						showCancel: false,
					});
				});;
			},
			// #endif
			// #ifdef MP-WEIXIN
			loadMp(option) {
				let obj = this;
				// 获取登录授权页数据
				let user = obj.$api.prePage().userInfo;
				// #ifndef MP
				// 获取推广人id
				let spread_spid = uni.getStorageSync('spread') || '';
				// #endif
				// #ifdef MP
				// 小程序推广人
				let spread_code = uni.getStorageSync('spread_code') || '';
				// #endif
				wechatMpAuth({
					code: option.code,
					iv: user.target.iv,
					encryptedData: user.target.encryptedData,
					// #ifndef MP
					spread_spid: spread_spid,
					// #endif
					// #ifdef MP
					spread_code: spread_code
					// #endif
				}).then(({
					data
				}) => {
					obj.wchatAuth(data);


				}).catch((e) => {
					uni.showModal({
						title: '错误',
						content: JSON.stringify(e),
						showCancel: false,
					});
				});
			},
			// #endif
			wchatAuth(data) {
				let obj = this;
				// 保存token
				uni.setStorageSync('token', data.token);
				// 获取用户基础信息
				getUserInfo({}).then(e => {
					// uni.showModal({
					// 	title: '登录',
					// 	content: JSON.stringify(e),
					// });
					obj.login();
					// 保存返回用户数据
					obj.setUserInfo(e.data);
					let ur = uni.getStorageSync('present') || '/pages/index/index';
					// 用于处理缓存bug
					if (ur == 'pages/product/product') {
						ur = '/pages/index/index'
					}
					if (ur.indexOf('public/wxLogin') > -1) {
						uni.switchTab({
							url: '/pages/index/index',
							fail() {
								uni.navigateTo({
									url:'/pages/index/index'
								})
							}
						})
						return false;
					}

					uni.switchTab({
						url: ur,
						fail(e) {
							console.log(e);
							uni.navigateTo({
								url: ur,
								fail(e) {
									console.log(e);
									uni.navigateTo({
										url: '/pages/index/index'
									});
								}
							});
						}
					});



					// uni.showModal({
					// 	title: '跳转地址',
					// 	content: JSON.stringify(ur),
					// 	success: res => {
					// 		if (res.confirm) {
					// 			uni.switchTab({
					// 				url: ur,
					// 				fail(e) {
					// 					console.log(e);
					// 					uni.navigateTo({
					// 						url: ur,
					// 						fail(e) {
					// 							console.log(e);
					// 							uni.navigateTo({
					// 								url: '/pages/index/index',
					// 							});
					// 						}
					// 					});
					// 				}
					// 			});
					// 		}
					// 	},
					// 	fail: () => {},
					// 	complete: () => {}
					// });

				}).catch((e) => {
					// uni.showModal({
					// 	title: '错误',
					// 	content: JSON.stringify(e),
					// 	showCancel: false,
					// });
					uni.navigateTo({
						url:'/pages/index/index',
						fail() {
							uni.switchTab({
								url:'/pages/index/index'
							})
						}
					})
				});;
			}
		}
	};
</script>
<style></style>