<template>
	<view class="ezy-custom-tabbar">
		<view class="tabbar-item-box" v-for="(item, index) in tabList" :key="index" @click="switchTab(item.path,index)">
			<view class="tabbar-item"
				:style="{ backgroundImage: 'url(' + (currentTab == index ? item.activePath : item.iconPath) + ')' }">
			</view>
		</view>
	</view>
	<tip-big-dialog ref="youkeDialogRef" @confirm-btn="ykConfirm" :imgShow="true"></tip-big-dialog>
	<tishiDlVue ref="popupRef"></tishiDlVue>
</template>

<script>
	import {
		MESSAGE_VISITER_TO_LOGIN
	} from "@/utils/constant.js"
	import tipMiddleDialog from '@/components/dialog/tipMiddleDialog.vue';
	import tipBigDialog from '@/components/dialog/tipBigDialog.vue';
	import {
		useTabBarHistory
	} from '@/utils/emitEvents.js';
	import cacheManager from "@/utils/cacheManager.js";
	import {
		toast,
		getUserIdentity
	} from "@/utils/common";
	import {
		nextTick,
	} from "vue";
	import tishiDlVue from './tishiDl.vue';
	export default {
		components: {
			tipMiddleDialog,
			tipBigDialog,
			tishiDlVue
		},
		data() {
			return {
				tabList: [{
						iconPath: 'static/images/tabbar/unselect/xuanke-sj.png',
						activePath: 'static/images/tabbar/select/xuanke-sj.png',
						path: `/pages/chanpinXuanze/index`
					},
					{
						iconPath: 'static/images/tabbar/unselect/xuexi-sj.png',
						activePath: 'static/images/tabbar/select/xuexi-sj.png',
						path: `/pages/chanpinneirong/index`
					},
					{
						iconPath: 'static/images/tabbar/unselect/faxian-sj.png',
						activePath: 'static/images/tabbar/select/faxian-sj.png',
						path: '/pages/game/index'
					},
					{
						iconPath: 'static/images/tabbar/unselect/wode-sj.png',
						activePath: 'static/images/tabbar/select/wode-sj.png',
						path: `/pages/chanpinMy/my`
					},
				],
				currentTab: 0,
				isNavigating: false,
				MESSAGE_VISITER_TO_LOGIN
			};
		},
		props: {
			levelId: {
				type: String,
			},
			typeId: {
				type: String,
			},
			subjectId: {
				type: String,
			},
			currentTabNumber: {
				type: Number,
			},
			tipFlag: {
				type: String,
			},

		},
		methods: {
			// 游客弹窗---确定
			ykConfirm() {
				uni.redirectTo({
					url: '/pages/login/index'
				});
			},
			// 新增：判断是否是目标页面的方法
			isTargetPage(route, tabIndex) {
				const routeMap = {
					0: 'pages/chanpinXuanze/index',
					1: 'pages/chanpinneirong/index',
					2: 'pages/game/index',
					3: 'pages/chanpinMy/my'
				};
				return route === routeMap[tabIndex];
			},
			switchTab(path, index) {

				if (index == this.currentTab) {
					// 同页面不刷新
					return;
				}

				if (path == '/pages/chanpinneirong/index' && !cacheManager.get('auth').chanpinId) {
					this.$refs.popupRef.open();
					return false
				}
				// 新增：检查目标页面是否已经在页面栈中
				const pages = getCurrentPages();
				console.log('pages1', pages);
				let targetPage = null;

				for (let i = pages.length - 1; i >= 0; i--) {
					const page = pages[i];
					console.log('pages2', page);
					// 判断是否是目标页面（这里需要根据你的页面路径判断）
					if (page.route && this.isTargetPage(page.route, index)) {
						targetPage = page;
						break;
					}
				}
				this.currentTab = index
				console.log('targetPage', targetPage);
				if (targetPage) {
					// 如果页面已经在栈中，使用 navigateBack 返回
					const delta = pages.length - pages.indexOf(targetPage) - 1;
					console.log('delta', delta);
					uni.navigateBack({
						delta: delta
					});
				} else {
					console.log('11111');

					this.navigateToEditPage(path);
				}

			},
			navigateToEditPage(path) {
				if (this.isNavigating) {
					uni.showToast({
						title: '正在跳转中...',
						icon: 'none'
					});
					return;
				}
				this.isNavigating = true;
				uni.showLoading({
					title: '加载中'
				}); // 显示Loading

				uni.navigateTo({
					url: path,
					complete: () => {
						uni.hideLoading();
						this.isNavigating = false;
					}
				});
			}
		},
		created() {

			this.currentTab = this.currentTabNumber
		}
	}
</script>