<template>
	<view class="backgroundContainer">
		<!-- 左侧菜单 -->
		<leftcontent :list="tabbrarr" @navurl="navurl"></leftcontent>
		<!-- 主页 -->
		<index :isShow="menuIndexshow" v-if="!menuIndex" />
		<!-- 设备页 -->
		<equipment :isShow="menuIndexshowfifth" v-if="menuIndex==4" />
		<!-- 医嘱页 -->
		<requestform :isShow="menuIndexshowfourth" v-if="menuIndex==3" />
		<!-- 户嘱页 -->
		<nurse :isshow="menuIndexshowsecond"
			v-if="menuIndex==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
		<!-- 医嘱 -->
		<doctorask v-if="menuIndex==2&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
		<!-- 没有数据 -->
		<view class="nomessageclass" :style="messageopit?{opacity: `1`}:{opacity: `0`}"
			v-if="(menuIndex == 1 || menuIndex == 2) && (!uni.getStorageSync('elderId') ||!uni.getStorageSync('nuId'))">
			<defaultr cont="暂无老人入住"></defaultr>
		</view>
	</view>
</template>

<script setup lang="ts">
	import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue';
	import index from "./component/index.vue"
	import equipment from "./component/equipment.vue"
	import requestform from "./component/pleasetake/takehome.vue"
	import doctorask from "./component/doctorask/doctorask.vue"
	import nurse from "./component/nurse/index.vue"
	import { onShow } from '@dcloudio/uni-app';
	import { getServiceTree, getNcPackagelist } from './component/nurse/api.js'
	import leftcontent from "./component/leftcontent/leftcontent.vue"
	import defaultr from '@/pages/procurement/components/default.vue';


	onMounted(() => {
		menuIndex.value = -1;
		nextTick(() => menuIndex.value = 0)

		getServiceTree().then((res : any) => {
			//缓存护嘱菜单
			uni.setStorageSync("saveTree", res)
		})
		getNcPackagelist().then((res : any) => {
			//缓存指令包
			uni.setStorageSync("Packagelist", res.result)
		})
	})

	// 通用的生成函数
	function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
		return Array.from({ length: count }, (_, i) => {
			const idx = pad
				? String(i + startIndex).padStart(2, '0')
				: i + startIndex
			return `${base}/${prefix}${idx}.${ext}`
		})
	}
	const tabbrarr = ref([
		{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png' },
		{ name: '护嘱', url: '/static/shouye/sy/n0.png', urls: '/static/shouye/sy/n1.png' },
		{ name: '医嘱', url: '/static/shouye/sy/y0.png', urls: '/static/shouye/sy/y1.png' },
		{ name: '后勤', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png' },
		{ name: '物联', url: '/static/shouye/sy/g0.png', urls: '/static/shouye/sy/g1.png' },
		{ name: '返回', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png' },
	])
	const navurl = (e) => {
		changeMenu(e)
	}

	// 当前选中的菜单索引
	const menuIndex = ref<number>(-1);
	const menuIndexshow = ref<boolean>(false);
	const menuIndexshowsecond = ref<boolean>(false);
	const menuIndexshowfourth = ref<boolean>(false);
	const menuIndexshowfifth = ref<boolean>(false);
	const messageopit = ref<boolean>(false);

	// 变更菜单
	const changeMenu = (index : number) => {
		if (index === menuIndex.value) {
			return
		}
		menuIndex.value = index;
		menuIndexshow.value = false
		menuIndexshowsecond.value = false
		menuIndexshowfourth.value = false;
		menuIndexshowfifth.value = false
		if (index === 5) {
			uni.navigateBack()
			return
		}
		setTimeout(() => {
			switch (index) {
				case 0:
					menuIndexshow.value = true
					break;
				case 1:
					menuIndexshowsecond.value = true
					nomesssageshow()
					break;
				case 2:

					nomesssageshow()
					break;
				case 3:
					menuIndexshowfourth.value = true
					break;
				case 4:
					menuIndexshowfifth.value = true;
					break;
				default:
			}
		}, 50)
	};
	const clientX = ref(0);
	const clientY = ref(0);
	const savename = ref("")
	const canmove = ref(true)

	// 生命周期钩子
	onMounted(() => {

		//首次加载和跳转回来需要重新做个动画
		setTimeout(() => {
			changeMenu(menuIndex.value)
		}, 50)

		menuIndexshow.value = false
		setTimeout(() => {
			menuIndexshow.value = true
		}, 50)

	});

	const nomesssageshow = () => {
		messageopit.value = false;
		setTimeout(() => {
			messageopit.value = true;
		}, 200)
	}
</script>

<style lang="less" scoped>
	.backgroundContainer {
		display: flex;
		position: relative;
		width: 100%;
		height: 100vh;
		background-color: #eff0f4;
		overflow: hidden;
		z-index: 12;
	}

	.nomessageclass {
		width: 100vw;
		transition: opacity 1s ease;
	}
</style>