<template>
	<view></view>
</template>
<script>
import { getUserInfo } from '@/api/user.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=', '');
			let spread = uni.getStorageSync('spread') || '';
			wechatAuth({
				code: code,
				spread: spread
			})
				.then(({ data }) => {
					obj.wchatAuth(data);
				})
				.catch(e => {
					obj.wchatAuth(data);
					// uni.showModal({
					// 	title: '提示',
					// 	content: '您未绑定手机号，请您先去绑定手机号',
					// 	showCancel: false,
					// 	success: function(res) {
					// 		if (res.confirm) {
					// 			uni.navigateTo({
					// 				url: '/pages/set/phone'
					// 			});
					// 		}
					// 	}
					// });
				});
		},
		// #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);
			// 获取用户基础信息
			console.log('获取用户信息');
			getUserInfo({})
				.then(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';
					}
					console.log('跳转');
					uni.switchTab({
						url: '/pages/index/index'
					});
					// console.log(e.data, '用户信息');
					// if (e.data.phone || e.data.email) {
					// 	console.log('有手机号');
					// 	uni.switchTab({
					// 		url: ur,
					// 		fail(e) {
					// 			uni.navigateTo({
					// 				url: ur,
					// 				fail(e) {
					// 					uni.navigateTo({
					// 						url: '/pages/index/index'
					// 					});
					// 				}
					// 			});
					// 		}
					// 	});
					// } else {
					// 	console.log('没有手机号');
					// 	uni.showModal({
					// 		title: '提示',
					// 		content: '请先绑定手机号',
					// 		showCancel: false,
					// 		success: res => {
					// 			uni.navigateTo({
					// 				url: '/pages/set/phone'
					// 			});
					// 		},
					// 		fail(e) {
					// 			console.log(e);
					// 		}
					// 	});
					// }
				})
				.catch(e => {
					uni.showModal({
						title: '错误',
						content: JSON.stringify(e),
						showCancel: false
					});
				});
		}
	}
};
</script>
<style></style>
