<template>
	<shuxueZhangjie v-if="currentProduct ==1" @clickGradeTerm="clickGradeTerm" @onLeft="onLeft" @onRight="onRight"
		@handleCheckCatalogue="handleCheckCatalogue" @listClick="listClick" :options="infoData">
	</shuxueZhangjie>
	<yingyuZhangjie v-if="currentProduct ==2" @clickGradeTerm="clickGradeTerm" @onLeft="onLeft" @onRight="onRight"
		@handleCheckCatalogue="handleCheckCatalogue" @listClick="listClick" :options="infoData">
	</yingyuZhangjie>
	<!-- 蛋 -->
	<egg-dialog ref="eggDialogRef" @eggBtn="eggBtn"></egg-dialog>
	<catalogue ref="catalogueRef" @change-zhang="handleChangeZhang"></catalogue>
	<CustomTabBar :cardId="cardId" :nianji="nianji" :zhangId="zhangId"></CustomTabBar>
	<tip-small-dialog ref="goPayDialogRef" @confirm-btn="goPayPage" :content="tipContent"></tip-small-dialog>
	<tip-middle-dialog ref="youkeDialogRef" @confirm-btn="ykConfirm" :content="YouKeContent"></tip-middle-dialog>
</template>
<script setup>
	import {
		userZhangInfo,
		userLocate,
		userZhangForntInfo,
		userZhangNextInfo,
		getCommonZhangInfo
	} from "@/api/learnPlan.js"
	import {
		reactive,
		ref,
		nextTick,
		getCurrentInstance,
		onMounted
	} from "vue";
	import {
		onLoad
	} from '@dcloudio/uni-app';
	import catalogue from "@/components/catalogue/catalogue.vue";
	import CustomTabBar from '@/components/custom-tabbar/custom-tabbar.vue';
	import tipSmallDialog from '@/components/dialog/tipSmallDialog.vue'
	import tipMiddleDialog from '@/components/dialog/tipMiddleDialog.vue';

	import shuxueZhangjie from './product/shuxue.vue';
	import yingyuZhangjie from './product/yingyu.vue';

	import {
		useTabBarHistory
	} from '@/utils/emitEvents.js';
	import eggDialog from './eggDialog.vue'
	import {
		toast,
		getUserIdentity
	} from "@/utils/common";
	import cacheManager from "@/utils/cacheManager.js";
	const tipContent = '付费章节,是否前往开通付费？'; //当前产品
	const goPayDialogRef = ref(null);
	const youkeDialogRef = ref(null);
	const eggDialogRef = ref(null);
	const YouKeContent = '您当前是游客身份，登录后才能浏览内容，现在去登录？';
	const zhangId = ref(null); //游客使用
	const nianji = ref(null); //游客使用
	const cardId = ref(null); //游客使用
	const catalogueRef = ref(null);
	const currentProduct = ref(null);
	const selectZhang = ref(null);
	let infoData = reactive({
		jieList: [],
		haveFlag: '',
		nianji: '',
		number: '',
		cardId: '',
		zhangId: '',
		zhangName: '',
		numberStr: '',
	});
	onLoad((options) => {
		init(options)
	})

	function init(options) {
		if (cacheManager.get('auth')) {
			currentProduct.value = cacheManager.get('auth').cardId;
			//会员 取auth
			selectZhang.value = cacheManager.get('auth');
			console.log(selectZhang.value);
			// 已登录
			// 选择年级进入调用此接口
			//options.flag == 'selectGrades'
			if (!selectZhang.value.eggFlag) {
				nextTick(() => {
					eggDialogRef.value.eggShow();
				})
			}
			getZhangInfo()
			// 蛋
			// eggDialogRef.value.eggShow();
		} else {
			zhangId.value = options.zhangId
			nianji.value = options.nianji
			cardId.value = options.cardId
			currentProduct.value = options.cardId
			// 未登录 游客 
			getCommonZhang(options)
		}
	}

	function getZhangInfo(data) {
		let req = {
			nianji: selectZhang.value.nianji,
			cardId: selectZhang.value.cardId,
			zhangId: selectZhang.value.zhangId,
		}
		userZhangInfo(req).then(res => {
			cacheManager.set('zhangInfo', res.data)
			infoData.jieList = res.data.jieList
			infoData.haveFlag = res.data.haveFlag
			infoData.nianji = res.data.nianji
			infoData.number = res.data.number
			infoData.numberStr = res.data.numberStr
			infoData.cardId = res.data.cardId
			infoData.zhangId = res.data.zhangId
			infoData.zhangName = res.data.zhangName
			recordZhangJie()
			getNewData()
			// if (cacheManager.get('zhangInfo')) {
			//     cacheManager.remove('zhangInfo')
			//     cacheManager.set('zhangInfo', res.data)
			// } else {
			//     cacheManager.set('zhangInfo', res.data)
			// }
		})
	}

	function getCommonZhang(data) {

		let req = {
			nianji: data.nianji,
			cardId: data.cardId,
			zhangId: data.zhangId,
		}
		getCommonZhangInfo(req).then(res => {
			infoData.jieList = res.data.jieList
			infoData.haveFlag = res.data.haveFlag
			infoData.nianji = res.data.nianji
			infoData.number = res.data.number
			infoData.numberStr = res.data.numberStr
			infoData.cardId = res.data.cardId
			infoData.zhangId = res.data.zhangId
			infoData.zhangName = res.data.zhangName
			//getNewData()
		})
	}



	function onLeft(event) {
		const authCode = getUserIdentity();
		if (authCode !== 'VIP') {
			return false
		}
		console.log('用户左滑了');
		let req = {
			nianji: selectZhang.value.nianji,
			zhangId: selectZhang.value.zhangId,
			cardId: selectZhang.value.cardId,
		}
		userZhangForntInfo(req).then(res => {
			cacheManager.set('zhangInfo', res.data)
			infoData.jieList = res.data.jieList
			infoData.haveFlag = res.data.haveFlag
			infoData.nianji = res.data.nianji
			infoData.number = res.data.number
			infoData.numberStr = res.data.numberStr
			infoData.cardId = res.data.cardId
			infoData.zhangId = res.data.zhangId
			infoData.zhangName = res.data.zhangName
			recordZhangJie()
			getNewData()
		})
	}

	function onRight(event) {
		const authCode = getUserIdentity();
		if (authCode !== 'VIP') {
			return false
		}
		console.log('用户又滑了');
		let req = {
			nianji: selectZhang.value.nianji,
			zhangId: selectZhang.value.zhangId,
			cardId: selectZhang.value.cardId,
		}
		userZhangNextInfo(req).then(res => {
			cacheManager.set('zhangInfo', res.data)
			infoData.jieList = res.data.jieList
			infoData.haveFlag = res.data.haveFlag
			infoData.nianji = res.data.nianji
			infoData.number = res.data.number
			infoData.numberStr = res.data.numberStr
			infoData.cardId = res.data.cardId
			infoData.zhangId = res.data.zhangId
			infoData.zhangName = res.data.zhangName
			recordZhangJie()
			getNewData()
		})
	}

	function getNewData() {
		selectZhang.value.zhangId = cacheManager.get('zhangInfo').zhangId;
		selectZhang.value.cardId = cacheManager.get('zhangInfo').cardId;
		selectZhang.value.nianji = cacheManager.get('zhangInfo').nianji;
		cacheManager.updateObject('auth', {
			zhangId: selectZhang.value.zhangId,
			cardId: selectZhang.value.cardId,
			nianji: selectZhang.value.nianji,
		})

	}

	function recordZhangJie() {
		let req = {
			nianji: selectZhang.value.nianji,
			userId: cacheManager.get('auth').userId,
			zhangId: infoData.zhangId,
			cardId: selectZhang.value.cardId,

		}
		userLocate(req).then(res => {

		})
	}

	function goPayPage() {

	}

	function handleChangeZhang(data) {
		selectZhang.value = data;
		const authCode = getUserIdentity();
		if (authCode !== 'Visitor') {
			cacheManager.updateObject('auth', {
				zhangId: data.zhangId
			})
		}
		init()
	}

	function goKaoshi(data) {
		uni.redirectTo({
			// url: `/pages/unitTest/index?jieNumber=` + data.number
			url: `/pages/unitTest/index?jieId=` + data.jieId
		})
	}

	function goLookShipin(data) {
		if (!cacheManager.get('auth')) {
			infoData.cardId = cardId.value
			infoData.nianji = nianji.value
			infoData.zhangId = zhangId.value
			uni.redirectTo({
				url: '/pages/study/lookShipin?youkePageData=' + JSON.stringify(infoData)

			})
			return;
		} else {
			uni.redirectTo({
				url: '/pages/study/lookShipin?jieId=' + data.jieId
			})
		}


	}

	function listClick(data, index) {
		if (!cacheManager.get('auth') && data.firstFlag != 1) {
			youkeDialogRef.value.handleShow();
			return;
		}
		const authCode = getUserIdentity();
		if (!(authCode == 'VIP' || data.firstFlag == 1)) {
			goPayDialogRef.value.handleShow();
			return false
		}
		if (data.type == 2) {
			// 最后一项
			goKaoshi(data)
		} else {
			goLookShipin(data)
		}
	}

	function handleCheckCatalogue() {
		catalogueRef.value.showPopup();
	}

	function clickGradeTerm() {
		uni.navigateTo({
			url: `/pages/selectGradesTerms/index`,
		})
	}
	// 游客弹窗---确定
	function ykConfirm() {
		uni.redirectTo({
			url: '/pages/login/index'
		});
	}

	function eggBtn() {
		console.log('点击：开启提分之旅');
		cacheManager.updateObject('auth', {
			eggFlag: true
		})
	}
</script>
<style>
</style>