<template>
	<view class="page-container">
		<view class="task-center">
            <navbar title="回复评论" leftClick @leftClick="$utils.navigateBack" />

			<view class="navbar-placeholder"></view>
			<!-- 账户剩余 -->
			<view class="account-balance">
				<view class="balance-label">账户剩余</view>
				<view class="balance-value"><text class="num">9</text> <text class="unit">张 推荐票</text></view>
			</view>
			<!-- 打卡得奖励 -->
			<view class="checkin-section">
				<view class="section-header">
					<text>打卡得奖励</text>
					<view class="record-btn">打卡记录</view>
				</view>
				<view class="checkin-grid">
					<view v-for="day in 8" :key="day" class="checkin-day" :class="{ active: day <= checkedDays }">
						<view class="day-label" :class="{ bold: day <= checkedDays }">第{{ day }}天</view>
						<image class="ticket-img"
							src="https://tse1-mm.cn.bing.net/th/id/OIP-C.pca_tFb6ZjyDNdQYgFvi0wHaE7?w=219&h=180&c=7&r=0&o=5&dpr=1.1&pid=1.7"
							mode="aspectFit" />
						<view class="ticket-num">+1</view>
					</view>
				</view>
				<button class="checkin-btn" :class="{ 'checked-btn': isChecked }" :disabled="isChecked"
					@click="handleCheckin">
					{{ isChecked ? '已签到' : '签到得奖励' }}
				</button>
			</view>
			<!-- 更多任务 -->
			<view class="more-tasks">
				<view class="more-header">更多任务</view>
				<view class="task-list">
					<view class="task-item" v-for="(task, idx) in tasks" :key="idx"
						:class="{ 'no-border': idx === tasks.length - 1 }">
						<view class="task-info">
							<view class="task-title">{{ task.title }}</view>
							<view class="task-desc">推荐票 +1</view>
						</view>
						<button class="get-btn" :class="{ 'received-btn': task.received }" :disabled="task.received"
							@click="handleReceive(idx)">
							{{ task.received ? '已领取' : '去领取' }}
						</button>
					</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	import uvNavbar from '@/uni_modules/uv-navbar/components/uv-navbar/uv-navbar.vue'
	import uvIcon from '@/uni_modules/uv-icon/components/uv-icon/uv-icon.vue'
	import BackArrow from './components/BackArrow.vue'
	export default {
		components: {
			uvNavbar,
			uvIcon,
			BackArrow
		},
		data() {
			return {
				checkedDays: 3, // 已签到天数
				tasks: [{
						title: '观看视频广告',
						received: false
					},
					{
						title: '每日首阅三个章节',
						received: false
					},
					{
						title: '每日首条评论',
						received: false
					},
				],
				isChecked: false, // 新增：签到按钮状态
			}
		},
		methods: {
			goBack() {
				uni.navigateBack();
			},
			handleCheckin() {
				if (this.checkedDays < 8) {
					this.checkedDays++;
					this.isChecked = true;
					uni.showToast({
						title: '签到成功',
						icon: 'success'
					});
				} else {
					this.isChecked = true;
					uni.showToast({
						title: '已全部签到',
						icon: 'none'
					});
				}
			},
			handleReceive(idx) {
				this.tasks[idx].received = true;
				uni.showToast({
					title: '领取成功',
					icon: 'success'
				});
			},
		},
	}
</script>

<style scoped lang="scss">
	.page-container {
		height: 100vh;
		overflow: hidden;
	}

	.task-center {
		background: #f8f8f8;
		height: 100vh;
		padding-bottom: 40rpx;
		overflow: hidden;
		box-sizing: border-box;
	}

	.navbar-placeholder {
		height: 100rpx;
	}

	.account-balance {
		background: linear-gradient(90deg, #ffe16b, #ffd700);
		border-radius: 20rpx;
		margin: 24rpx 24rpx 0 24rpx;
		padding: 24rpx 32rpx;
		display: flex;
		align-items: center;
		justify-content: space-between;
		font-size: 30rpx;
		color: #333;

		.balance-label {
			font-weight: 500;
		}

		.balance-value {
			font-weight: bold;
			color: #bfa100;

			.num {
				font-size: 24rpx;
			}

			.unit {
				font-size: 22rpx;
			}
		}
	}

	.checkin-section {
		background: #fff;
		border-radius: 20rpx;
		margin: 24rpx;
		padding: 32rpx 24rpx 24rpx 24rpx;
		box-shadow: 0 2rpx 8rpx rgba(255, 215, 0, 0.08);
		border: 4rpx solid #ffe16b;

		.section-header {
			display: flex;
			justify-content: space-between;
			align-items: center;
			font-size: 28rpx;
			font-weight: 600;
			margin-bottom: 24rpx;

			.record-btn {
				background: #d6ff4b;
				color: #383938;
				border-radius: 24rpx;
				padding: 6rpx 28rpx;
				font-size: 24rpx;
			}
		}

		.checkin-grid {
			display: flex;
			flex-wrap: wrap;
			gap: 18rpx;
			margin-bottom: 32rpx;

			.checkin-day {
				width: 22%;
				background: #f7f7f7;
				border-radius: 12rpx;
				display: flex;
				flex-direction: column;
				align-items: center;
				padding: 18rpx 0 10rpx 0;
				border: 2rpx solid #f0f0f0;

				&.active {
					background: #d6ff4b !important;
					border-color: #b6e900 !important;

					.day-label,
					.ticket-num {
						color: #222 !important;
						font-weight: bold;
					}
				}

				.day-label {
					font-size: 24rpx;
					font-weight: 600;
					height: 90rpx;
					margin-bottom: 8rpx;
					color: #333;

					&.bold {
						font-weight: bold;
					}
				}

				.ticket-img {
					width: 48rpx;
					height: 36rpx;
					margin-bottom: 6rpx;
					display: flex;
				}

				.ticket-num {
					font-size: 22rpx;
					color: #bfa100;
				}
			}
		}

		.checkin-btn {
			width: 600rpx;
			background: linear-gradient(90deg, #ffe16b, #ffd700);
			color: #333;
			font-size: 30rpx;
			border-radius: 46rpx;
			padding: 18rpx 0;
			font-weight: bold;
			margin-top: 8rpx;
			transition: background 0.2s;
		}
	}

	.checked-btn {
		background: linear-gradient(90deg, #e0e0e0, #bdbdbd) !important;
		color: #444 !important;
		cursor: not-allowed;
	}

	.more-tasks {
		background: #faffea;
		border-radius: 20rpx;
		margin: 0 24rpx;
		padding: 24rpx 24rpx 8rpx 24rpx;
		margin-top: 100rpx;

		.more-header {
			font-size: 28rpx;
			color: #bfa100;
			font-weight: 600;
			margin-bottom: 18rpx;
		}

		.task-list {
			.task-item {
				display: flex;
				align-items: center;
				justify-content: space-between;
				background: #fff;
				border-radius: 0;
				margin: 0;
				padding: 18rpx 20rpx 10rpx 20rpx;
				border-bottom: 1rpx solid #f2f2f2;

				.task-info {
					display: flex;
					flex-direction: column;
					align-items: flex-start;
					flex: 1;
					min-width: 0;
					margin-top: 30rpx;

					.task-title {
						font-size: 26rpx;
						color: #222;
						font-weight: bold;
					}

					.task-desc {
						font-size: 20rpx;
						color: #bbb;
						margin-top: 4rpx;
					}
				}

				.get-btn {
					background: #ffd700;
					color: #fff;
					font-size: 24rpx;
					border-radius: 24rpx;
					padding: 0 28rpx;
					font-weight: bold;
					border: none;
					height: 48rpx;
					display: flex;
					align-items: center;
					justify-content: center;
					box-shadow: none;
					white-space: nowrap;
					margin-left: 18rpx;
					transition: background 0.2s;
				}

				.received-btn {
					background: linear-gradient(90deg, #e0e0e0, #bdbdbd) !important;
					color: #444 !important;
					cursor: not-allowed;
				}

				&.no-border {
					border-bottom: none;
				}
			}
		}
	}
</style>