| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							- <template>
 
- 	<view class="custom-swiper-wrapper">
 
- 		<swiper class="custom-swiper" :current="activeIndex" @change="onSwiperChange" circular :duration="300"
 
- 			indicator-dots="false" autoplay="false" display-multiple-items="1" :previous-margin="outerMargin"
 
- 			:next-margin="outerMargin" indicator-color="rgba(255, 255, 255, 0.5)" indicator-active-color="#FFEB66">
 
- 			<swiper-item v-for="(item, index) in (products||[])" :key="index">
 
- 				<view class="item-container">
 
- 					<view class="swiper-item" :class="{ 'swiper-item-active': index === currentCenterIndex }">
 
- 						<image class="item-image" :src="item.imgUrl" mode="aspectFit"></image>
 
- 						<view class="item-text" v-if="index === currentCenterIndex">
 
- 							<view class="text-title">{{ item.prizeLevel }}等奖</view>
 
- 							<view class="text-desc">{{ item.productName }}</view>
 
- 						</view>
 
- 					</view>
 
- 				</view>
 
- 			</swiper-item>
 
- 		</swiper>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		props: {
 
- 			products: {
 
- 				type: Array,
 
- 				default:() => [],
 
- 			}
 
- 		},
 
- 		data() {
 
- 			return {
 
- 				activeIndex: 0, // 初始激活项索引(建议从1开始,避免循环时偏移)
 
- 				outerMargin: '120rpx', // 轮播左右外部间距
 
- 				
 
- 			};
 
- 		},
 
- 		computed: {
 
- 			currentCenterIndex() {
 
- 				if (this.products.length === 0) return 0;
 
- 				return this.activeIndex % this.products.length;
 
- 			}
 
- 		},
 
- 		methods: {
 
- 			onSwiperChange(e) {
 
- 				this.activeIndex = e.detail.current;
 
- 			},
 
- 		},
 
- 	};
 
- </script>
 
- <style scoped>
 
- 	.custom-swiper-wrapper {
 
- 		width: 100%;
 
- 		overflow: hidden;
 
- 	}
 
- 	.custom-swiper {
 
- 		width: 100%;
 
- 		height: 500rpx;
 
- 	}
 
- 	.item-container {
 
- 		padding: 0 20rpx;
 
- 	}
 
- 	.swiper-item {
 
- 		width: 100% !important;
 
- 		height: 348rpx;
 
- 		background: #FFFFFF;
 
- 		box-shadow: 0rpx 12rpx 19rpx 2rpx rgba(219, 73, 22, 0.6);
 
- 		border-radius: 24rpx;
 
- 		border: 4rpx solid #FFCA96;
 
- 		display: flex;
 
- 		flex-direction: column;
 
- 		align-items: center;
 
- 		box-sizing: border-box;
 
- 		padding: 20rpx 0;
 
- 		transition: all 0.3s ease;
 
- 	}
 
- 	.swiper-item-active {
 
- 		transition: all 0.5s ease;
 
- 		height: 420rpx;
 
- 		z-index: 10;
 
- 	}
 
- 	.item-image {
 
- 		width: 280rpx;
 
- 		height: 280rpx;
 
- 	}
 
- 	.item-text {
 
- 		text-align: center;
 
- 	}
 
- 	.text-title {
 
- 		font-weight: 500;
 
- 		font-size: 32rpx;
 
- 		color: #222222;
 
- 		margin: 20rpx 0 10rpx;
 
- 	}
 
- 	.text-desc {
 
- 		font-size: 24rpx;
 
- 		color: #757575;
 
- 	}
 
- </style>
 
 
  |