<template>
	<view :style="viewColor">
		<view class="application-list" v-if="listData.length">
			<view @click="goDetail(item)" class="card-list" v-for="item in listData" :key="item.activity_id">
				<view class="card-top" :style="'background-image: url('+item.pic+')'"></view>
				<view class="card-bottom">
					<view class="title">{{item.activity_name}}</view>
					<view class="bottom acea-row">
						<view>
							<view class="item">
								<view class="name">已报名人数:</view>
								<view class="count">
									{{item.total}}人
								</view>
							</view>
							<view class="item">
								<view class="name">报名截止时间:</view>
								<view class="count">
									{{formatDate(new Date(item.end_time))}}
								</view>
							</view>
						</view>
						<view v-if="item.total==item.count && item.count!=0" class="go-sign disabled">已报满</view>
						<view v-else class="go-sign" :class="{'disabled' : item.time_status!=1}">{{item.time_status==-1?'已结束' : item.time_status==0?'未开始':'去报名'}}</view>
					</view>
				</view>
			</view>
		</view>
		<view class='no-shop' v-if="!listData.length && !loading">
			<view class='pictrue' style="margin: 0 auto;">
				<image :src="`${domain}/static/images/noCart.png`"></image>
				<text>暂无数据!</text>
			</view>
		</view>
	</view>
</template>

<script>
	 
	import { getRechargeList } from '@/api/user.js'
	import {HTTP_REQUEST_URL} from '@/config/app';
	import { toLogin } from '@/libs/login.js';
	import { mapGetters } from "vuex";
	export default {
		data() {
			return {
				domain:HTTP_REQUEST_URL,
				loading: false,
				listData: [],
				count: 0,
				pageData: {
					page: 1,
					limit: 3,
				}
			}
		},
		computed:{
			...mapGetters(['isLogin','uid','viewColor']),
		},
		onLoad() {
			this.getListData()
		},
		methods: {
			getListData() {
				this.loading = true
				uni.showLoading({
					title: '数据加载中',
				});
				getRechargeList(this.pageData).then(res => {
					this.count = res.data.count
					this.listData = this.listData.concat(res.data.list)
					uni.hideLoading();
					this.loading = false
				})
			},
			formatDate(date){  
				let year = date.getFullYear();
				let month = date.getMonth()+1;  
				let day = date.getDate();  
				month = month < 10 ?'0'+ month : month;  
				day = day < 10 ?'0'+ day : day;  
				return year +'-'+ month +'-'+ day;
			},
			goDetail(item){
				if(this.isLogin){
					uni.navigateTo({
						url: `/pages/activity/registrate_activity/index?id=${item.activity_id}&spid=${this.uid}`
					});
				}else{
					toLogin()
				}
			},
		},
	
		// 滚动到底部
		onReachBottom() {
			if (this.count == this.listData.length) {
				uni.showToast({
					title: '没有更多啦',
					icon: 'none',
					duration: 1000
				});
			} else {
				this.pageData.page += 1
				this.getListData()
			}
		},
	}
</script>

<style lang="scss" scoped>
	.application-list {
		background-color: #F5F5F5;
		padding: 30rpx;
		.card-list {
			width: 100%;
			background-color: #ffffff;
			margin-bottom: 30rpx;
			border-radius: 16rpx;
			.card-top{
				background-size: 100%;
				background-repeat: no-repeat;
				width: 690rpx;
				height: 322rpx;
				border-radius: 16rpx 16rpx 0 0;
			}
			.card-bottom {
				padding: 30rpx;
				.title{
					font-size: 30rpx;
					color: #333333;
					font-weight: bold;
				}
				.bottom{
					margin-top: 30rpx;
					align-items: flex-end;
					justify-content: space-between;
					.item{
						display: flex;
						align-items: center;
						color: #999999;
						&:last-child{
							margin-top: 20rpx;
						}
						&::before{
							content: "";
							width: 6rpx;
							height: 6rpx;
							background: #FFAA00;
							border-radius: 100%;
							margin-right: 10rpx;
						}
						.count{
							color: #666666;
							text{
								color: var(--view-theme);
								display: inline-block;
								margin-left: 6rpx;
							}
						}
					}
					.go-sign{
						font-size: 26rpx;
						color: #ffffff;
						width: 140rpx;
						height: 56rpx;
						display: flex;
						align-items: center;
						justify-content: center;
						border-radius: 30rpx;
						background: var(--view-theme);
						&.disabled{
							background: #BBBBBB;
						}
					}
				}
			}
		}
	}
	.no-shop {
		width: 100%;
		background-color: #fff;
		height: 100vh;
		.pictrue {
			display: flex;
			flex-direction: column;
			align-items: center;
			color: $uni-nothing-text;
			image {
				width: 414rpx;
				height: 380rpx;
			}
		}
	}
</style>