<template>
	<view class="content">
		<view class="bg">
			<view class="rule">
				<text>活动规则</text>
			</view>
			<view class="top">

			</view>
			<view class="lucky-draw">
				<view class="title">
					恭喜你获得 {{wheel}} 次抽奖机会
				</view>
				<LuckyWheel ref="myLucky" width="600rpx" height="600rpx" :blocks="blocks" :prizes="prizes"
					:buttons="buttons" :defaultStyle="defaultStyle" @start="startCallBack" @end="endCallBack" :defaultConfig="defaultConfig" />
			</view>
			<view class="lucky-draw-info">
				<view class="title">
					- 抽奖纪录 -
				</view>
				<view class="list">
					<view class="item" v-for="item in list">
						<view>{{item.create_time}}</view>
						<view>{{item.title}}</view>
					</view>
				</view>
			</view>
			
		</view>
		<view class="coupon_popups" v-if="popShow">
			<view class="bg2"></view>
			<view class="con" >
				<view class="content">
					<image :src="drawInfo.img" mode=""></image>
					<view class="text-black">恭喜您获得</view>
					<view class="text-red">{{drawInfo.text}}</view>
					<view class="btn" @click="popShow = false">开心收下</view>
				</view>
				<view class='iconfont icon-guanbi3' @click="popShow = false"></view>
			</view>
		</view>
	</view>
</template>

<script>
	import {getWhellNumber,getWhellConfig,getWhellAction,getWhellList} from '@/api/user.js'
	import LuckyWheel from 'uni-luck-draw/lucky-wheel'
	export default {
		components: {
			LuckyWheel
		},
		data() {
			return {
				wheel:0,
				blocks: [{
					padding: '4px',
					
					imgs:[{src:'https://plus.hwms.shop/uploads/def/20240402/9bcfea91fd2ebc06cc9eea5de95d624e.png', width: '100%',
        height: '100%'}]
					
				},{
					padding:'14px',
					imgs:[{src:'https://plus.hwms.shop/uploads/def/20240402/db41a1225c12cfb7a0d429fab8397fe5.png', width: '100%',
        height: '100%'}]
				}],
				 
				prizes: [{
						fonts: [{
							text: '0',
							top: '40%'
						}],
						background: '#faf7d5',
						imgs:[{src:'https://plus.hwms.shop/uploads/def/20240402/de991ebf4c190afcc5de692a910949f4.png',width:'25px',height:'25px',top:'10%'}]
					},
					{
						fonts: [{
							text: '1',
							top: '10%'
						}],
						background: '#FC3E8F'
					},
					{
						fonts: [{
							text: '2',
							top: '10%'
						}],
						background: '#faf7d5'
					},
					{
						fonts: [{
							text: '3',
							top: '10%'
						}],
						background: '#FC3E8F'
					},
					{
						fonts: [{
							text: '4',
							top: '10%'
						}],
						background: '#faf7d5'
					},
					{
						fonts: [{
							text: '5',
							top: '10%'
						}],
						background: '#FC3E8F'
					},
				],
				buttons: [{
						radius: '50px',
						// background: '#e81c47',
						imgs:[{src:'https://plus.hwms.shop/uploads/def/20240402/25da054fc2f6c52349bb193ee4919e6c.png',width: '100%',
						top: '-190%'}],
						// pointer: true,
						
					},
					{
						radius: '45px',
						background: '#faf7d5'
					},
					{
						radius: '40px',
						imgs:[{src:'https://plus.hwms.shop/uploads/def/20240402/1e1ce5f047e6282554200f316b975c06.png',width: '100%',
          top: '-100%'}],
						// background: linear-gradient( #F8A059 0%, #E22B70 100%)',
						// background: '#ec4656',
						// pointer: true,
						fonts: [{
							text: '开始\n抽奖',
							top: '-20px',
							fontColor:'#fff',
						}]
					},
				],
				defaultConfig: {
					gutter: '5px',
					speed: 60,
					stopRange:'0.95'
				},
				popShow:false,
				list:[],
				drawInfo:{
					img:'',
					text:'',
					
				}
			}
		},
		onLoad() {
			this.init()
		},
		methods: {
			init(){
				getWhellNumber().then((res)=>{
					if(res){
						this.wheel=res.data.userInfo.wheel;
					}
				})
				getWhellConfig().then((res)=>{
					let ary=res.data;
					this.prizes.map((e,index)=>{
						ary.map((e2,index2)=>{
							if(index==index2){
								e.fonts[0].text=e2.value.title;
								e.fonts[0].top='40%';
								e.fonts[0].fontSize='14px';
								e.imgs=[];
								e.imgs.push({src:e2.value.icon,width:'25px',height:'25px',top:'10%'})
							}
						})
					})
				})
				getWhellList().then((res)=>{
					if(res){
						this.list=res.data.list;
					}
				})
			},
			// 点击抽奖按钮触发回调
			async startCallBack() {
				if(this.wheel>0){
					// 先开始旋转
					this.$refs.myLucky.play()
					await getWhellAction().then((res)=>{
						if(res){
							this.drawInfo.img=res.data.win.value.icon;
							this.drawInfo.text=res.data.win.value.title;
							// 使用定时器来模拟请求接口
							const index = res.data.win.winKey;
							setTimeout(() => {
								// 假设后端返回的中奖索引是0
								// 调用stop停止旋转并传递中奖索引
								this.$refs.myLucky.stop(index)
							},5000)
						}
					})
					
				}
			},
			// 抽奖结束触发回调
			endCallBack(prize) {
				setTimeout(()=>{
					
					this.popShow=true;
				},2000)
				// 奖品详情
				console.log(prize)
			}
		}
	}
</script>

<style lang="less" scoped>
	.content {
		width: 100%;
		height: 100vh;
		.coupon_popups{
			z-index: 999;
			position: fixed;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
			text-align: center;
			.bg2{
				position: absolute;
				left: 0;
				top: 0;
				width: 100%;
				height: 100%;
				background-color: rgba(0,0,0,.5);
			}
			
			.con{
				position: absolute;
				left: 50%;
				top: 50%;
				transform: translate(-50%,-50%);
				width: 680rpx;
				height: 900rpx;
				background-size: 100% 700rpx;
				background-repeat: no-repeat;
				.content{
					width: 500rpx;
					height: 520rpx;
					border-radius: 20rpx;
					margin: 0 auto;
					background-color: white;
					display: flex;
					flex-direction: column;
					justify-content: center;
					align-items: center;
					grid-gap: 40rpx;
					image{
						width: 300rpx;
						height: 200rpx;
						margin-top: 50rpx;
					}
					.text-black{
						font-size: 32rpx;
						font-weight: bold;
					}
					.text-red{
						font-size: 28rpx;
						color: #FC3C70;
					}
					.btn{
						color: white;
						margin-bottom: 40rpx;
						width: 328rpx;
						height: 68rpx;
						line-height: 68rpx;
						padding: 4rpx 0;
						border-radius: 60rpx;
						background: linear-gradient(136deg, #D753FC 0%, #FC276C 53%, #FC3E8F 100%);
					
					}
					
				}
				.text{
					width: 600rpx;
					margin: 30rpx auto 0;
					font-size: 20rpx;
					color: #ffffff;
				}
				.icon-guanbi3{
					color: #ffffff;
					font-size: 70rpx;
					position: absolute;
					bottom: 250rpx;
					left: 310rpx;
				}
			}
		}
		.bg {
			width: 100%;
			// height: 100vh;
			background-image: url('https://plus.hwms.shop/uploads/def/20240402/de991ebf4c190afcc5de692a910949f4.png');
			background-size: 100% 100%;
			position: relative;
			padding-bottom: 40rpx;
			
			.rule {
				width: 80rpx;
				height: 120rpx;
				background-image: url(@/static/images/right-btn.png);
				background-size: 100%;
				background-repeat: no-repeat;
				position: absolute;
				right: 0;
				top: 320rpx;
				// text-align: center;
				display: flex;
				align-items: center;
				justify-content: center;
				text {
					width: 56rpx;
					height: 80rpx;
					font-family: PingFang SC;
					font-weight: 500;
					font-size: 28rpx;
					color: #DC3424;
					line-height: 36rpx;
				}
			}
			.top{
				height: 330rpx;
			}
			.lucky-draw{
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				.title{
					position: relative;
					bottom: 20rpx;
					width:60%;
					height: 50rpx;
					font-family: PingFang SC;
					font-weight: 400;
					font-size: 32rpx;
					color: #FFFFFF;
					margin: 20rpx 0;
					line-height: 54rpx;
					text-align: center;
					background: url('@/static/images/font-bg.png') no-repeat 100%;
					background-position: center;
				}
			}
			.lucky-draw-info{
				margin: 80rpx auto;
				width: 680rpx;
				height: 440rpx;
				background-color: white;
				display: flex;
				flex-direction: column;
				border-radius: 32rpx;
				.title{
					
					text-align: center;
					font-size: 36rpx;
					color: #FC3C70;
					line-height: 72rpx;
				}
				.list{
					flex: 1;
					overflow: scroll;
					display: flex;
					flex-direction: column;
					grid-gap: 20rpx;
					.item{
						font-size: 32rpx;
						font-weight: bold;
						padding: 10rpx 20rpx;
						width: 100%;
						display: flex;
						justify-content: space-between;
						
					}
				}
			}
		}
	}
</style>