<template>
	<view class="container">
		<!-- 搜索 -->
		<u-search @search="search" :show-action="false" shape="round" placeholder="搜索您想要的内容"
			v-model="searchWord"></u-search>
		<!-- tabs -->
		<view style="padding-top: 20rpx;display: flex;">
			<u-tabs style="flex: 1;" :list="tabsList" :is-scroll="true" font-size="24" :bold="false"
				inactive-color="#000000" active-color="#000000" :bar-style="{'background-color': '#2979ff'}"
				:gutter="30" height="45" v-model="currentTab" @change="changeTab"></u-tabs>
			<u-icon name="list" style="flex: 0 0 auto;padding-left: 20rpx;"></u-icon>
		</view>
		<!-- 列表 -->
		<view class="course-list">
			<view v-for="(course,index) in filterCourses" :key="course.id" @click="toPage(course)">
				<view class="course-item">
					<view class="course-item-image">
						<image class="course-image" :src="course.keChengTuPian" mode="aspectFill"></image>
					</view>
					<view class="course-item-content">
						<view class="course-title">
							<text>{{ course.keChengMingCheng }}</text>
							<image style="width: 25rpx;height: 25rpx;padding-left: 20rpx;"
								:src="course.isShouCang ? 'https://sylwt.top/api/visitor/resources/image?name=/ydl/menber-center/edu-icon/favi-icon.png' : 'https://sylwt.top/api/visitor/resources/image?name=/ydl/menber-center/edu-icon/no-favi-icon.png'"
								@click.stop="collectCourse(course.id, index)">
							</image>
						</view>
						<view class="course-type">{{ course.keChengLeXing }}</view>
						<view class="course-teacher">
							<u-icon name="account" size="28"></u-icon>
							{{ course.shouKeZhe }}
						</view>
						<view class="course-date">
							<u-icon name="clock" size="28"></u-icon>
							{{ getDateWeek(course.shouKeShiJian) }}
						</view>
						<view class="course-price">¥{{ course.jiaGe }}元</view>
						<button :class="['button', getButtonClass(course)]">{{ getButtonText(course) }}</button>
					</view>
				</view>
				<u-line />
			</view>
		</view>
	</view>
</template>

<script setup>
	import {
		ref,onMounted,watch
	} from 'vue';
	import {
	} from '@dcloudio/uni-app'
	import { useCourseStore } from "@/store/courseStore.js"
	const courseStore = useCourseStore();
	const searchWord = ref("")
	const isMember = ref(false);
	const tabsList = ref([{
		name: '全部'
	}, {
		name: '精英训练营'
	}, {
		name: '领袖锻造营'
	}, {
		name: '合规专训营'
	}]);
	const currentTab = ref(courseStore.currentTab); 
	// 展示的课程
	const filterCourses = ref([]);
	const courses = ref([{
			id: 1,
			keChengMingCheng: "前端开发基础前端开发基础前端开发基础",
			keChengLeXing: "精英训练营",
			shouKeZhe: "张老师",
			shouKeShiJian: "2023-10-01",
			keChengTuPian: "https://tse3-mm.cn.bing.net/th/id/OIP-C.YKoZzgmubNBxQ8j-mmoTKAHaEK?rs=1&pid=ImgDetMain",
			jiaGe: 99.00,
			isGouMai: false,
			isShouCang: true,
			fuFeiLeiXing: "免费" // 新增字段,标识课程的付费类型
		},
		{
			id: 2,
			keChengMingCheng: "Vue.js 从入门到精通",
			keChengLeXing: "领袖锻造营",
			shouKeZhe: "李老师",
			shouKeShiJian: "2023-09-15",
			keChengTuPian: "https://pic3.zhimg.com/v2-e52354ffdbd94a8e0a7649eacd34a788_r.jpg?source=1940ef5c",
			jiaGe: 199.00,
			isGouMai: false,
			isShouCang: false,
			fuFeiLeiXing: "会员免费"
		},
		{
			id: 3,
			keChengMingCheng: "React 开发实战",
			keChengLeXing: "领袖锻造营",
			shouKeZhe: "王老师",
			shouKeShiJian: "2023-11-05",
			keChengTuPian: "https://desk-fd.zol-img.com.cn/t_s960x600c5/g4/M03/00/0C/Cg-4zFS8bC-Ie9zBADCvovJAqiEAATJ8wDX__cAMK-6184.jpg",
			jiaGe: 149.00,
			isGouMai: false,
			isShouCang: false,
			fuFeiLeiXing: "付费"
		},
		{
			id: 4,
			keChengMingCheng: "Node.js 全栈开发",
			keChengLeXing: "合规专训营",
			shouKeZhe: "赵老师",
			shouKeShiJian: "2023-08-20",
			keChengTuPian: "https://pic3.zhimg.com/v2-e52354ffdbd94a8e0a7649eacd34a788_r.jpg?source=1940ef5c",
			jiaGe: 299.00,
			isGouMai: true,
			isShouCang: false,
			fuFeiLeiXing: "付费"
		},
		{
			id: 5,
			keChengMingCheng: "移动端开发技巧",
			keChengLeXing: "精英训练营",
			shouKeZhe: "钱老师",
			shouKeShiJian: "2025-07-18",
			keChengTuPian: "https://desk-fd.zol-img.com.cn/t_s960x600c5/g4/M03/00/0C/Cg-4zFS8bC-Ie9zBADCvovJAqiEAATJ8wDX__cAMK-6184.jpg",
			jiaGe: 89.00,
			isGouMai: true,
			isShouCang: false,
			fuFeiLeiXing: "付费"
		},
		{
			id: 6,
			keChengMingCheng: "11Vue.js 从入门到精通",
			keChengLeXing: "领袖锻造营",
			shouKeZhe: "李老师11",
			shouKeShiJian: "2023-09-15",
			keChengTuPian: "https://pic3.zhimg.com/v2-e52354ffdbd94a8e0a7649eacd34a788_r.jpg?source=1940ef5c",
			jiaGe: 199.00,
			isGouMai: true,
			isShouCang: false,
			fuFeiLeiXing: "会员免费"
		},
		{
			id: 7,
			keChengMingCheng: "113Vue.js 从入门到精通",
			keChengLeXing: "领袖锻造营",
			shouKeZhe: "李老师11",
			shouKeShiJian: "2025-09-15",
			keChengTuPian: "https://pic3.zhimg.com/v2-e52354ffdbd94a8e0a7649eacd34a788_r.jpg?source=1940ef5c",
			jiaGe: 199.00,
			isGouMai: true,
			isShouCang: false,
			fuFeiLeiXing: "会员免费"
		},
	]);

	// 按钮的文字
	function getButtonText(course) {
		const currentDate = new Date();
		const classDate = new Date(course.shouKeShiJian);

		if (course.fuFeiLeiXing === "免费") {
			return "免费";
		}
		if (course.fuFeiLeiXing === "会员免费") {
			if (isMember.value) return "会员免费";
			if (!course.isGouMai && !isMember.value) return "会员免费";
			if (course.isGouMai) {
				return currentDate < classDate ? "点击查看" : "点击查看回放";
			}
		}

		if (course.fuFeiLeiXing === "付费") {
			if (!course.isGouMai) return "点击购买";
			return currentDate < classDate ? "点击查看" : "点击查看回放";
		}

		return "error"; // 默认返回
	}


	// 按钮的样式
	function getButtonClass(course) {
		if (course.fuFeiLeiXing === "免费") return 'free';
		if (course.fuFeiLeiXing === "会员免费") {
			if (isMember.value) return 'member-free';
			return course.isGouMai ? (new Date() < new Date(course.shouKeShiJian) ? 'purchased' : 'replay') :
				'member-free';
		}
		if (course.fuFeiLeiXing === "付费") {
			return course.isGouMai ? (new Date() < new Date(course.shouKeShiJian) ? 'purchased' : 'replay') : 'purchase';
		}
		return 'error';
	}


	// 日期格式:xxxx年xx月xx日(星期x)
	function getDateWeek(val) {
		const date = new Date(val);
		const daysOfWeek = ['日', '一', '二', '三', '四', '五', '六'];
		const year = date.getFullYear();
		const month = date.getMonth() + 1; // 注意:月份从0开始
		const day = date.getDate();
		const dayOfWeek = daysOfWeek[date.getUTCDay()];
		// const result = `${year}年${month}月${day}日(星期${dayOfWeek})`
		return `${year}年${month}月${day}日(星期${dayOfWeek})`
	}

	// 切换搜索框下面的tab
	function changeTab(index) {
		currentTab.value = index;
		courseStore.setCurrentTab(index)
		if (index === 0) {
			filterCourses.value = courses.value
			return
		}
		filterCourses.value = courses.value.filter(item => item.keChengLeXing == tabsList.value[index].name)
	}
	// 搜索
	function search(e) {
		console.log(e, "searchword")
	}
	// 收藏
	function collectCourse(id,index) {
		// 联调后端,
		// 返回成功后
		courses.value[index].isShouCang = !courses.value[index].isShouCang
	}
	// 初始化
	function init() {
		// 初始化页面,获取数据
		filterCourses.value = courses.value
		searchWord.value = ""
	}

	function toPage(course) {
		uni.navigateTo({
			url: `/pages/goOnEdu/course/courseDetail/courseDetail?id=${course.id}&name=${course.keChengMingCheng}`
		});
	}
	onMounted(() => {
		const userInfo = uni.getStorageSync("userinfo");
		isMember.value = userInfo.isMember
	    init();
	    watch(currentTab, (newValue) => {
	        courseStore.setCurrentTab(newValue); // 如果需要在切换时更新 Pinia 状态
	    });
	});
</script>

<style lang="scss" scoped>
	.container {
		// padding: 20px;
	}

	.title {
		font-size: 48rpx;
		margin-bottom: 30rpx;
	}

	.course-item {
		margin: 20rpx 0;
		display: flex;
		overflow: hidden;

		.course-item-image {
			width: 200rpx;
			height: 260rpx;
			flex: 0 0 auto;
			margin-right: 20rpx;

			.course-image {
				width: 100%;
			}

		}

		.course-item-content {
			flex: 1;
			position: relative;

			view {
				margin-bottom: 15rpx;
			}

			.course-title {
				font-weight: bold;
				margin-right: 10px;
				font-size: 28rpx;
				color: #000;
			}

			.course-type,
			.course-teacher,
			.course-date,
			.course-price {
				font-size: 30rpx;
				color: #000;
			}

			.course-price {
				color: #fe0000;
				letter-spacing: 2rpx;
			}

			.button::after {
				content: none;
				/* 移除内容 */
			}

			.button {
				position: absolute;
				right: 0;
				bottom: 0;
				min-width: 80px;
				padding: 0 40rpx;
				white-space: nowrap;
				height: 45rpx;
				line-height: 45rpx;
				font-size: 22rpx;
				/* padding: 0; */
				border-radius: 50rpx;
				color: white;
				border: none;
			}

			.free {
				background-color: #006af4;
			}

			.purchase {
				background-color: #fe0000;
			}

			.member-free {
				background-color: transparent;
				background-image: url('https://sylwt.top/api/visitor/resources/image?name=/ydl/menber-center/bg-label.png');
				background-size: cover;
				background-repeat: no-repeat;
				color: #000;
				height: initial;
				padding: 6rpx 0 3rpx;
				border-radius: 0;
			}

			.replay {
				background-color: #006af4;
			}

			.purchased {
				background-color: #006af4;
			}
		}
	}
</style>