<template>
	<swiper :circular="false" style="height: 100vh;" @change="onChangeTab" :duration="currentDuration"
		:current="current">
		<swiper-item v-for="(item,index) in zhangList" :key="index">
			<view class="item flex-col flex-center">
				<shuxueZhangjie v-if="currentProduct ==1" @clickGradeTerm="clickGradeTerm"
					@handleCheckCatalogue="handleCheckCatalogue" @listClick="listClick" :gradeTerm='gradeTerm'
					:options="item">
				</shuxueZhangjie>
				<yingyuZhangjie v-if="currentProduct ==2" @clickGradeTerm="clickGradeTerm"
					@handleCheckCatalogue="handleCheckCatalogue" @listClick="listClick" :options="item">
				</yingyuZhangjie>
			</view>
		</swiper-item>
	</swiper>
	<!-- 蛋 -->
	<egg-dialog ref="eggDialogRef" @eggBtn="eggBtn"></egg-dialog>
	<catalogue ref="catalogueRef" :list=zhangList @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 dSwiper from '@/components/wSwiper/DSwiper.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 dSwiperRef = ref(null);
	const eggDialogRef = ref(null);
	const current = ref(0);
	const currentDuration = ref(500)
	const YouKeContent = '您当前是游客身份，登录后才能浏览内容，现在去登录？';
	const zhangId = ref(null); //游客使用
	const nianji = ref(null); //游客使用
	const cardId = ref(null); //游客使用
	const catalogueRef = ref(null);
	const youkeZhangInfoData = ref(null);
	const currentProduct = ref(null);
	const selectZhang = ref(null);
	const zhangList = ref(null);
	const gradeTerm = ref(null);
	let infoData = reactive({
		jieList: [],
		haveFlag: '',
		nianji: '',
		number: '',
		cardId: '',
		zhangId: '',
		zhangName: '',
		numberStr: '',
	});
	const gradeMapping = {
		1: '一年级',
		2: '二年级',
		3: '三年级',
		4: '四年级',
		5: '五年级',
		6: '六年级'
	};

	const termMapping = {
		1: ' 数学',
		2: ' 英语'
	};
	onLoad((options) => {
		init(options)
	})

	function onChangeTab(e) {
		console.log(e.detail.current);
		infoData.zhangId = cacheManager.get('zhangInfo').zhangList[e.detail.current].zhangId
		cacheManager.updateObject('auth', {
			currentZhang: e.detail.current,
			zhangId: infoData.zhangId
		})

		//current.value = e.detail.current;
	}

	function init(options) {
		if (cacheManager.get('auth')) {
			//会员 取auth
			selectZhang.value = cacheManager.get('auth');
			currentProduct.value = cacheManager.get('auth').cardId;
			//let currentObject = this.cacheZhangInfo.jieList.find(item => item.jieId == this.jieId);
			console.log(selectZhang.value);
			// 已登录
			if (selectZhang.value.firstLogin) {
				nextTick(() => {
					eggDialogRef.value.eggShow();
				})
			}
			getZhangInfo()
		} 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)
			let zhang = cacheManager.get('zhangInfo').zhangList.findIndex(zhang => zhang.zhangId == selectZhang
				.value.zhangId);
			if (zhang != -1) {
				cacheManager.updateObject('auth', {
					currentZhang: zhang
				})
			} else {
				cacheManager.updateObject('auth', {
					currentZhang: 0
				})
			}
			nextTick(() => {
				translateData(res.data)
				zhangList.value = res.data.zhangList
				current.value = cacheManager.get('auth').currentZhang
				infoData.zhangId = res.data.zhangList[current.value].zhangId
				recordZhangJie()
			})

		})
	}

	function getCommonZhang(data) {

		let req = {
			nianji: data.nianji,
			cardId: data.cardId,
			zhangId: data.zhangId,
		}
		getCommonZhangInfo(req).then(res => {
			translateData(res.data)
			youkeZhangInfoData.value =  res.data
			zhangList.value = res.data.zhangList
			current.value = 0
			// 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 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() {
		uni.redirectTo({
			url: '/pages/pay/svip'
		})
	}

	function handleChangeZhang(data) {
		console.log(data);
		selectZhang.value = data;
		const authCode = getUserIdentity();
		if (authCode !== 'Visitor') {
			cacheManager.updateObject('auth', {
				zhangId: data.zhangId
			})
		}
		currentDuration.value = 0
		setTimeout(() => {
			current.value = data.number - 1
			nextTick(() => {
				currentDuration.value = 500
			})
		}, 100)
		//	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')) {
			console.log('zhangList.value[0].jieList[0]',zhangList.value[0].jieList);
			let youkeData = {
				cardId:cardId.value,
				nianji:nianji.value,
				zhangId:zhangId.value,
				jieList:zhangList.value[0].jieList,
				jieName:zhangList.value[0].jieList[0].jieName
			}
			uni.redirectTo({
				url: '/pages/study/lookShipin?youkePageData=' + JSON.stringify(youkeData)
			})
		} else {
			uni.redirectTo({
				url: '/pages/study/lookShipin?jieId=' + data.jieId
			})
		}


	}

	function translateData(data) {
		gradeTerm.value = gradeMapping[data.nianji] + termMapping[data.cardId]
	}

	function listClick(data) {
		console.log('data', data);
		if (!cacheManager.get('auth') && data.firstFlag != 1) {
			youkeDialogRef.value.handleShow();
			return;
		}
		const authCode = getUserIdentity();
		console.log('authCode', authCode);
		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() {
		if(cacheManager.get('auth')){
			cacheManager.updateObject('auth', {
				currentZhang: 0
			})
		}
		uni.navigateTo({
			url: `/pages/selectGradesTerms/index`,
		})
	}
	// 游客弹窗---确定
	function ykConfirm() {
		uni.redirectTo({
			url: '/pages/login/index'
		});
	}

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