<template>
	<scroll-view scroll-y="true" :style="{height: height}" @scrolltolower="moreCoupon()">
		<!-- 优惠券列表 -->
		<view class="list">
			<view class="item" v-for="item in couponList" @click="select(item)" :key="item.id"
				:class="['status-' + item.state]">
				<image src="@/pages_order/static/coupon/coupon-bg.png" mode="widthFix" class="coupon-bg"></image>

				<view class="item-con">
					<view class="price-time">
						<view class="price">
							<view class="num">
								<view class="icon">
									￥
								</view>
								{{ item.money }}
							</view>
						</view>

						<view class="date-tiao">
							<view class="time">
								限{{ formatDate(item.stateTime) }} - {{ formatDate(item.endTime) }}
							</view>
							<view class="tiao">
								满{{ item.useMoney }}可用
							</view>
						</view>
					</view>

					<view class="status">
						<view class="order-status">
							<image src="@/pages_order/static/coupon/status.png" mode="widthFix" class="status-img">
							</image>
							<view class="text">
								{{ status[item.state] }}
							</view>
						</view>

						<!-- <view class="surplus">
							剩余28天过期
						</view> -->
					</view>
				</view>
			</view>
		</view>

		<uv-empty v-if="couponList.length == 0" text="空空如也" textSize="30rpx" iconSize="200rpx" icon="list"></uv-empty>
	</scroll-view>
</template>

<script>
	export default {
		name: 'CouponList',
		data() {
			return {
				status: ['已领取', '已使用', '已过期'],
				queryParams: {
					pageNo: 1,
					pageSize: 10
				},
				couponList: [],
				total: 0
			}
		},
		methods: {
			select(item) {
				this.$emit('select', item)
			},

			//获取优惠券列表
			getCouponList() {
				let requestData = {
					...this.queryParams,
					state: this.state ? this.state : 0
				}
				this.$api('getRiceCouponList', requestData, res => {
					if (res.code == 200) {
						this.couponList = res.result.records
						this.total = res.result.total
					}
				})
			},

			//格式化年月日
			formatDate(date) {
				if(!date){
					return ''
				}
				date = new Date(date.replace(/-/g,'/'));
				// const year = date.getFullYear();
				const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始，需要加1，并且确保是两位数
				const day = String(date.getDate()).padStart(2, '0'); // 确保日期是两位数

				return `${month}-${day}`;
			},

			// 加载更多
			moreCoupon() {
				if (this.queryParams.pageSize > this.total) return
				this.queryParams.pageSize += 10
				this.getCouponList()
			},
		},
		props: {
			state: {
				type: Number,
				default: 0
			},
			height: {
				default: 'calc(90vh - 180rpx)'
			}
		},
		watch: {
			state: function(newValue) {
				this.getCouponList()
			}
		}
	}
</script>

<style lang="scss" scoped>
	.list {

		.item {
			color: #FDDFCD;
			position: relative;
			width: calc(100% - 40rpx);
			height: 220rpx;
			background-size: 100% 100%;
			margin: 20rpx;
			box-sizing: border-box;
			padding: 30rpx;

			.coupon-bg {
				width: 100%;
				position: absolute;
				left: 0rpx;
				top: 0rpx;
			}

			.item-con {
				display: flex;
				align-items: center;
				flex-wrap: wrap;
				position: absolute;
				top: 50%;
				left: 0rpx;
				transform: translateY(-50%);
				z-index: 99;
				width: 100%;

				.price-time {
					display: flex;
					width: 65%;

					.price {
						display: flex;
						align-items: center;

						.num {
							color: #FFF8E9;
							font-weight: 900;
							font-size: 70rpx;
							display: flex;
							align-items: flex-end;

							.icon {
								color: #FFF8E9;
								width: 30rpx;
								height: 30rpx;
								display: flex;
								justify-content: center;
								align-items: center;
								font-size: 20rpx;
								border-radius: 14rpx;
								margin-bottom: 14rpx;
								margin-right: 10rpx;
							}
						}
					}

					.date-tiao {
						display: flex;
						flex-direction: column;
						align-items: center;
						font-size: 24rpx;
						box-sizing: border-box;
						padding-left: 20rpx;

						.time {}

						.tiao {
							display: flex;
							justify-content: center;
							background: #FDE5BA;
							border-radius: 40rpx;
							color: #FF2E34;
							padding: 5rpx 20rpx;
							margin-top: 15rpx;
						}
					}
				}

				.status {
					display: flex;
					flex-direction: column;
					align-items: center;
					justify-content: center;
					width: 35%;
					color: #FD4231;
					padding-top: 30rpx;

					.order-status {
						position: relative;
						width: 180rpx;

						.status-img {
							position: absolute;
							left: 0;
							width: 100%;
						}

						.text {
							height: 90rpx;
							display: flex;
							justify-content: center;
							align-items: center;
							position: relative;
							z-index: 100;
							font-size: 34rpx;
							font-weight: bold;
						}
					}

					.surplus {
						font-size: 22rpx;
						text-align: center;
						margin-top: 10rpx;
					}
				}
			}
		}

		.status-0 {
			opacity: 1;
		}

		.status-1 {
			opacity: .9;
		}

		.status-2 {
			opacity: .6;
		}

		.del {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background-color: #ffffff99;
			z-index: 99;
		}
	}
</style>