<template>
	<swiper class="image-container" previous-margin="45rpx" next-margin="45rpx" :indicator-dots="false" :current="currentIndex" indicator-active-color='#4C50E7'  @change="swiperChange">
		<swiper-item  :class="currentIndex == index ? 'swiper-item' : 'swiper-item-side'" v-for="(item, index) in imgList" :key="item[urlKey]">
			<!-- <image @click="clickImg(item)" :class="currentIndex == index ? 'item-img' : 'item-img-side'" :src="item[urlKey]" lazy-load :style="dontFirstAnimation ? 'animation: none;' : ''" mode="aspectFill"></image> -->
			<view class="box" :class="currentIndex == index ? 'item-img' : 'item-img-side'" :style="{background:item.B2BBackground ? getOpacityColor(item.B2BBackground,0.3):'#FFF',}">
				<view class="box-state">
					<span v-if="item.ClassStatus==1">未开班</span>
					<span v-if="item.ClassStatus==2">学习中</span>
					<span v-if="item.ClassStatus==3">已结课</span>
				</view>
				<view class="box-center">
					<view class="box-center-l" :style="{background:item.B2BBackground ? getOpacityColor(item.B2BBackground,0.7):'#d5f3e9',}">
						<view style="width: 115rpx;
								height: 13rpx;
								background-color: #9CD4C1;
								border-radius: 6rpx;
								margin-bottom: 20rpx;
								">
							</view>
							<view style="width: 90rpx;
								height: 13rpx;
								background-color: #9CD4C1;
								border-radius: 6rpx;
								margin-bottom: 20rpx;
								">
							</view>
							<view style="width: 60rpx;
								height: 13rpx;
								background-color: #9CD4C1;
								border-radius: 6rpx;
								">
							</view>
						<image mode='widthFix' :src="item.B2BIcon"></image>
					</view>
					<view class="box-center-r">
						<view>
							<view style="font-size: 15px;font-weight: bold;">{{item.CourseName}}</view>
							<view style="font-size: 12px;font-weight: 500;margin-top: 5px;">{{item.ClassName}}</view>
							<view class="row" style="font-size: 12px;margin-top: 5px;">
								<view class="row">总计<span style="color: #4C50E7;margin:0 3px;font-weight: bold;">{{item.TotalHours}}</span>次</view>
								<view style="width: 1px;height: 15px;background-color:#999999;margin: 0 10px;"></view>
								<view class="row">剩余<span style="color: #4C50E7;margin:0 3px;font-weight: bold;">{{item.SurplusHours?item.SurplusHours:0}}</span>次</view>
							</view>
						</view>
						<view style="display: none;">
							<view class="row" style="justify-content: space-between;font-size: 11px;margin-bottom:10rpx;">
								<span>已学课程</span>
								<span>{{item.CompleteHours}}/{{item.TotalHours}}</span>
							</view>
							<van-progress :percentage="(item.CompleteHours/item.TotalHours)*100" :showPivot='false'/>
						</view>
						
					</view>
				</view>
				
			</view>
		</swiper-item>
	</swiper>
</template>
<script>
	export default {
		props: {
			imgList: {
				type: Array,
				default() {
					return []
				}
			},
			urlKey: {
				type: String,
				default() {
					return ''
				}
			},
		},
		data() {
			return {
				currentIndex: 0,
				dontFirstAnimation: true
			}
		},
		methods: {
			swiperChange(e) {
				this.dontFirstAnimation = false
				this.currentIndex = e.detail.current;
				this.$emit('selected',  this.currentIndex)
			},
			clickImg(item) {
				this.$emit('selected', item, this.currentIndex)
			},
			getOpacityColor(thisColor, thisOpacity){
				var theColor = thisColor.toLowerCase();
				//十六进制颜色值的正则表达式
				var r = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
				// 如果是16进制颜色
				if (theColor && r.test(theColor)) {
					if (theColor.length === 4) {
						var sColorNew = "#";
						for (var i = 1; i < 4; i += 1) {
							sColorNew += theColor.slice(i, i + 1).concat(theColor.slice(i, i + 1));
						}
						theColor = sColorNew;
					}
					//处理六位的颜色值
					var sColorChange = [];
					for (var i = 1; i < 7; i += 2) {
						sColorChange.push(parseInt("0x" + theColor.slice(i, i + 2)));
					}
					return "rgba(" + sColorChange.join(",") + "," + thisOpacity + ")";
					// return "rgba(" + sColorChange.join(",") + ", 0.7)";
				}
				return theColor;
			}
		},
		mounted() {
			let i= this.imgList.findIndex(e=>e.ClassStatus==2)
			if(i>=0){
				this.currentIndex=i
			}else{
				let i1= this.imgList.findIndex(e=>e.ClassStatus==1)
				if(i1>=0){
					this.currentIndex=i1
				}else{
					let i2= this.imgList.findIndex(e=>e.ClassStatus==3)
					if(i2>=0){
						this.currentIndex=i2
					}
				}
			}	
			
		}
	}
</script>
<style scoped>
	.image-container {
		width: 750rpx;
		height: 350rpx;
	}

	.item-img {
		width: 630rpx;
		height: 300rpx;
		border-radius: 14rpx;
		animation: to-big .3s;
	}

	.swiper-item {
		width: 630rpx;
		height: 300rpx;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.item-img-side {
		width: 630rpx;
		height: 260rpx;
		border-radius: 14rpx;
		animation: to-mini .3s;
	}

	.swiper-item-side {
		width: 630rpx;
		height: 260rpx;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.box{
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		/* padding: 0 20rpx; */
	}
	.box-center{
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: calc(100% - 36rpx);
	}
	.box-center-l{
		width: 162rpx;
		height: 208rpx;
		border-radius: 6px;
		position: relative;

		margin-right: 40rpx;
		box-sizing: border-box;
		padding-top: 40rpx;
		padding-left: 30rpx;
	}
	.box-center-l image{
		position: absolute;
		bottom: 10rpx;
		right: 10rpx;
		max-width: 100rpx;
		height: auto;
	}
	.box-center-r{
		flex:1;
		margin-left: 12px;
		min-height: 208rpx;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		
	}
	.row{
		display: flex;align-items: center;
	}
	.box-state{
		width: 38rpx;
		height: 88rpx;
		position: absolute;
		right:17px ;
		top: 0;
		background: #5DE3A6;
		font-size: 20rpx;
		color: #333333;
		text-align: center;
		box-sizing: border-box;
		padding: 5rpx 8rpx;
	}

	@keyframes to-mini
	{
		from {
			height: 300rpx;
		}
		to {
			height: 260rpx;
		}
	}
	@keyframes to-big
	{
		from {
			height: 260rpx;
		}
		to {
			height: 300rpx;
		}
	}
</style>