<script>
	import {
		mapMutations,
		mapActions
	} from "vuex";
	import {
		inputInviteCode
	} from "@/api/user";
	import {
		userShare,
		getConfig
	} from "@/api/app";
	import Cache from "@/utils/cache";
	import {
		strToParams,
		showModal,
		setTabbar
	} from "@/utils/tools";
	import {
		wxMnpLogin
	} from "@/utils/login";
	export default {
		globalData: {
			navHeight: "",
		},
		onLaunch: async function(options) {
			uni.hideTabBar({
				animation: false,
			});
			// 获取配置
			this.getConfigFun();

			this.getUser();
			// 获取分享
			this.getShareInfo();
			//获取系统信息
			this.getSystemInfo();
		},
		onShow: function(options) {
			//绑定邀请码
			this.bindCode(options);
		},
		onHide: function() {
			console.log("App Hide");
		},
		methods: {
			...mapMutations(["SETCONFIG"]),
			...mapActions(["getUser", "initLocationFunc"]),
			getSystemInfo() {
				uni.getSystemInfo({
					success: (res) => {
						let {
							statusBarHeight,
							platform
						} = res;
						let navHeight;

						if (platform == "ios" || platform == "devtools") {
							navHeight = statusBarHeight + 44;
						} else {
							navHeight = statusBarHeight + 48;
						}
						this.globalData.navHeight = navHeight;
					},
					fail(err) {
						console.log(err);
					},
				});
			},
			async getShareInfo() {
				const {
					code,
					data
				} = await userShare();
				if (code == 1) {
					Cache.set("shareInfo", data);
				}
			},
			async getConfigFun() {
				try {
					const {
						code,
						data
					} = await getConfig();
					if (code == 1) {
						this.initLocationFunc()
						this.SETCONFIG(data);
						setTabbar();
					}
				} catch (e) {
					uni.showTabBar();
				}
			},
			bindCode(options) {
				if (!options.query) return;
				let invite_code =
					options.query.invite_code ||
					strToParams(decodeURIComponent(options.query.scene)).invite_code;
				if (invite_code) {
					inputInviteCode({
						code: invite_code,
					}).then((res) => {
						if (res.code == -1) {
							Cache.set("INVITE_CODE", invite_code);
						}
					});
				}
			},
		},
	};
</script>

<style lang="scss">
	@import "styles/base.scss";
	/*每个页面公共css */
	@import "components/uview-ui/index.scss";
</style>