<script setup>
	import DraggableButton from "@/pages/components/goHome.vue";
	/**
	 * name：
	 * user：yytjsj
	 * date：2024年9月25日 10:25:00
	 */
	import {
		ref,
		nextTick,
		onBeforeUnmount
	} from "vue";
	import {
		$api,
		$response,
		$image
	} from "@/api";
	import {
		onShow
	} from "@dcloudio/uni-app";
	import {
		useStore
	} from "@/store";
	const $store = useStore();

	let currentDate = ref(0);
	let buyInfo = ref({}); // 购买信息
	let yytjInfo = ref({}); // 购买信息
	let nmrIndex = ref(-1); // 当前选中项目索引
	let status = ref(0); // 1：点了确定 2：未点确定
	let calendarShow = ref(false); // 日历显示
	const rl_list = ref(false); //日历插槽
	const setDefaultInfo = () => {
		yytjInfo.value = $store.getYytjInfo();
		buyInfo.value = $store.getBuyInfo();
		$store.setCheckupTypeId({
			id: 1
		})
		yytjInfo.value = {
			nmr_list: [],
			doctor_date: "",
			doctor_name: "",
			nmrIndex: -1,
			...yytjInfo.value,
		}
		buyInfo.value = {
			combo_id: "",
			duo_xuan_yi: [],
			group_id: "",
			hospital: 1,
			item_ids: [],
			person_id: $store.user.person_id,
			wj: "",
			...buyInfo.value,
		}
		getnmrList()
	}
	const getUserInfo = async () => {
		const response = await $api('UserInfo')
		$response(response, () => {
			$store.setUser(response.data.info);
			setDefaultInfo()
		})
	}
	const mountedAction = async () => {
		uni.showLoading({
			title: "加载中",
		});
		await getUserInfo()
	};

	onBeforeUnmount(() => {
		if (!status.value) {
			$store.setYytjInfo(uni.getStorageSync("yytjInfoS"));
		}
	});

	const getnmrList = async () => {
		const response = await $api("BuyInfo", buyInfo.value);
		$response(response, () => {
			uni.hideLoading();
			let date = null
			if (!!yytjInfo.value.doctor_date) {
				date = yytjInfo.value.doctor_date
				currentDate.value = yytjInfo.value.doctor_date
			} else {
				currentDate.value = getToday();
				yytjInfo.value.doctor_date = currentDate.value;
			}
			moreTime(date, 1);
		});
	};

	const moreTime = async (m, status) => {
		uni.showLoading({
			title: "加载中"
		});
		const [year, month, day] = currentDate.value.split("-");
		let dqmonth = m || `${year}-${month}`; //年 月份
		let obj = {};
		let methods = "";
		obj = {
			hospital: buyInfo.value.hospital,
			person_id: buyInfo.value.person_id,
			month: dqmonth, //月份
			use_type: 1,
			checkup_type_id: 1,
			amount: 0,
		};
		const response = await $api("GetMonthPlanCount", obj);
		$response(response, () => {
			rl_list.value = [];
			calendarShow.value = true;
			uni.hideLoading();
		});
	};

	const monthSwitch = (givenDate) => {
		const currentYear = new Date().getFullYear();
		const currentMonth = new Date().getMonth() + 1;
		// 获取当前日期
		if (
			givenDate.year < currentYear ||
			(givenDate.year === currentYear && givenDate.month < currentMonth)
		) {
			// uni.$lu.toast("不能选择过去时间");
			return false;
		} else {
			let str = `${givenDate.year}-${givenDate.month}`;
			moreTime(str, 0);
		}
	};
	const getToday = () => {
		var today = new Date();
		var year = today.getFullYear();
		var month = (today.getMonth() + 1).toString().padStart(2, "0");
		var day = today.getDate().toString().padStart(2, "0");
		return year + "-" + month + "-" + day;
	};
	const changeDate = (e) => {
		currentDate.value = e.fulldate;
		yytjInfo.value.doctor_date = e.fulldate;
		yytjInfo.value.doctor_name = '';
		$store.setYytjInfo(yytjInfo.value);
		clickDoctor()
	}
	const changerl = (e) => {
		let deep_date = JSON.parse(JSON.stringify(currentDate.value))
		if (!!yytjInfo.value.doctor_name) {
			uni.showModal({
				title: "提示",
				content: "已选择医生，切换日期将重新选择医生，是否继续",
				showCancel: true,
				success: ({
					confirm
				}) => {
					if (confirm) {
						changeDate(e)
					} else {
						calendarShow.value = false
						currentDate.value = deep_date;
						yytjInfo.value.doctor_date = e.fulldate;
						nextTick(() => {
							calendarShow.value = true
						})
					}
				},
			});
		} else {
			changeDate(e)
		}
	};

	const clickDoctor = (s) => {
		status.value = 0;
		let date = currentDate.value
		uni.navigateTo({
			url: `/pages/main/selectDoctor/selectDoctor?date=${date}`,
		});
	};

	const comfrimyy = () => {
		uni.navigateTo({
			url: '/pages/main/combo/combo'
		})
	};

	const config_ref = ref(null);
	const configRef = (e) => {
		if (!config_ref.value) {
			config_ref.value = e;
			mountedAction();
		}
	};

	onShow(() => {
		if (!!config_ref.value) {
			mountedAction();
		}
	});
</script>
<template>
	<DraggableButton />
	<view>
		<view v-if="!!$store.config">
			<view :ref="configRef"></view>
		</view>
		<view class="h-38rpx bg-#239EA3 pl-20rpx pr-20rpx box-border">
			<view style="box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.04)"
				class="p-16rpx pb-20rpx pt-30rpx rounded-15rpx bg-#fff ylrl" v-if="calendarShow">
				<uni-calendar :selected="rl_list" :startDate="getToday()" :showMonth="false" :insert="true" :date="currentDate"
					@change="changerl" @monthSwitch="monthSwitch" />
			</view>
			<view style="box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.04)"
				class="p-30rpx pl-10rpx pr-10rpx rounded-15rpx bg-#fff mt-15rpx text-#101010 text-28rpx">
				<view class="bg-#F7F7F7 pl-20rpx pr-20rpx pt-23rpx pb-25rpx">
					<text>{{ $store.getUser()?.name }}</text>
					<view class="bg-#EFEFEF rounded-15rpx p-10rpx pb-15rpx pt-15rpx mt-20rpx">
						<view class="p-20rpx pl-10rpx pr-10rpx rounded-15rpx between" @click="clickDoctor()">
							<text>体检医生</text>
							<text class="ml-10rpx text-#0E0E0E center">
								{{ yytjInfo?.doctor_name || "请选择" }}
								<uni-icons type="right" size="14"></uni-icons>
							</text>
						</view>
					</view>
				</view>
			</view>
			<view class="pb-100rpx">
				<view @click="comfrimyy"
					class="text-#fff text-32rpx rounded-45rpx bg-#239EA3 mt-40rpx ma w-520rpx h-90rpx flex flex-items-center flex-justify-center">
					确定
				</view>
			</view>
		</view>
	</view>
</template>
<style scoped lang="scss">
	.activeTime {
		background-color: #239ea3;
		color: #fff;
	}

	.acitvetc {
		background-color: #e0f1f2;
	}

	::v-deep .ylrl {

		.uni-calendar__header,
		.uni-calendar__weeks-day {
			border: none;
		}

		.uni-calendar-item--checked {
			background-color: transparent;

			.uni-calendar-item__weeks-box-item {
				background-color: #239ea3 !important;
				border-radius: 12rpx;

				.uni-calendar-item--extra {
					color: #fff !important;
				}
			}
		}

		.uni-calendar-item--isDay {
			background-color: #239ea3 !important;
			border-radius: 12rpx;
			color: #fff !important;
		}

		.uni-calendar-item--extra {
			color: #239ea3;
		}

		.uni-calendar-item__weeks-box {
			// padding: 10rpx;
			box-sizing: border-box;
		}

		.uni-calendar-item__weeks-box-circle {
			background-color: rgba(0, 0, 0, 0);
		}

		.uni-calendar-item--isDay-text {
			color: #333;
		}

		.uni-calendar-item__weeks-box-text {
			font-size: 26rpx;
		}

		.uni-calendar-item__weeks-lunar-text {
			font-size: 16rpx;
		}

		.uni-calendar-item__weeks-box-item {
			width: 100%;
		}

		.uni-calendar__backtoday {
			display: none;
		}

		.uni-calendar-item--disable {
			.uni-calendar-item__weeks-lunar-text {
				display: none;
			}
		}
	}
</style>