<template>
	<HeaderNav :title="title"></HeaderNav>
	<view :class="{show:(footCheck === 'home')}">
		<HomePage v-if="(footCheck === 'home')"></HomePage>
	</view>
	<view :class="{show:(footCheck === 'order')}" v-if="$store.state.userInfo.store_id > 0">
		<OrderPage ref="orderList" v-if="(footCheck === 'order')"></OrderPage>
	</view>
	<view :class="{show:(footCheck === 'chat')}">
		<ChatPage v-if="(footCheck === 'chat')"></ChatPage>
	</view>
	<view :class="{show:(footCheck === 'user')}">
		<UserPage v-if="(footCheck === 'user')" @tabNavTo="footSelect"></UserPage>
	</view>
	<RightNav v-if="rightShow"></RightNav>
	<FooterNav :foot-group="footGroup" @change="footSelect" :footCheck="current"></FooterNav>
	<u-modal :show="show" title="登录" content="当前未登录是否前往登录" @confirm="userLogin" @cancel="this.show = false;"
		:closeOnClickOverlay="true" showCancelButton></u-modal>
</template>

<script>
	import FooterNav from '@/components/FooterNav/Index.vue';
	import RightNav from '@/components/RightNav/Index.vue';
	import HeaderNav from '@/components/HeaderNav/Index.vue';
	import HomePage from '@/pages/Index/components/HomePage/Index.vue';
	import OrderPage from '@/pages/Index/components/OrderPage/Index.vue';
	import ChatPage from '@/pages/Index/components/ChatPage/Index.vue';
	import UserPage from '@/pages/Index/components/UserPage/Index.vue';
  import {imghost} from "@/config/host";
  import {UserCache} from "@/config/config.js";
  import log from "@/utils/log";
	export default {
		components: {
			FooterNav,
			RightNav,
			HeaderNav,
			HomePage,
			OrderPage,
			ChatPage,
			UserPage,
		},
		data() {
			return {
        current:0,
				footCheck: 'home',
				show: false,
				title: '标题',
				content: 'uview-plus的目标是成为uni-app生态最优秀的UI框架',
        footGroup: [{
          image: imghost + "/static/image/foot-nav-button-one",
          name: 'home',
          title:'汪汪行天下',
					is_show:true
        },
          {
            image: imghost + "/static/image/foot-nav-button-two",
            name: 'order',
            title:'订单',
						is_show: UserCache.get('store_id', 0) > 0
          },
          {
            image: imghost + "/static/image/foot-nav-button-three",
            name: 'chat',
            title:'在线沟通',
						is_show:true
          },
          {
            image: imghost + "/static/image/foot-nav-button-four",
            name: 'user',
            title:'',
						is_show:true
          },
        ],
        rightShow:false,
			}
		},
		onLoad(option) {
      this.footSelect(option?.foot_check ?? 0);
		},
		methods: {
      footSelect(index){
        this.current = index;
        this.footCheck = this.footGroup[index].name;
        this.title = this.footGroup[index].title;
        this.rightShow = this.footCheck === 'home' || this.footCheck === 'user';
      },
			userLogin() {
				uni.navigateTo({
					url:'/pages/Login/index'
				})
				this.show = false;
			},
			// store.
		},
		onReachBottom() {
			log(this.footCheck);
			if(this.footCheck === 'order'){
				this.$refs.orderList.getOrderList();
			}

		},
		onPageScroll(res) {
			if (res.scrollTop <= 20) {
				uni.$emit('isTop', true);
			} else {
				uni.$emit('isTop', false);
			}

		},
		created() {
			// this.pagePadding = (api.navHeight().navPaddingTop+
			// api.navHeight().navHeight + (api.navHeight().headerPadding *2))
      this.footGroup = this.footGroup.filter(v => v.is_show );
		},
		mounted() {
			this.title = this.$store.state.title;
			let token = uni.getStorageSync('token');
			if (!token) {
				this.show = true;
			}else{
				let user = UserCache.get();
				this.$store.commit('userInfo', user);
        let userExtends = UserCache.extGet();
				this.$store.commit('userExtends', userExtends);
			}
		},
		watch: {
			"$store.state.footCheck": {
				handler(newVal, oldVal) {
					this.footCheck = newVal;
				}
			},
			"$store.state.title": {
				handler(newVal, oldVal) {
					this.title = newVal;
				}
			}
		}
	}
</script>

<style lang="scss">
	@keyframes show {
		0% {
			display: block;
			opacity: 0;
		}

		100% {
			opacity: 1;
		}
	}

	.show {
		animation: show .5s;
	}
</style>