init
This commit is contained in:
		
							
								
								
									
										194
									
								
								components/gb-choujiang/gb-choujiang.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								components/gb-choujiang/gb-choujiang.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,194 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<view style="background-color:#1015F2; height: 1400rpx;">
 | 
			
		||||
		<!-- 背景图 -->
 | 
			
		||||
		<view class="wh-w750" style=" position: relative;">
 | 
			
		||||
			<image :src="nImg" mode="aspectFill"
 | 
			
		||||
				style="height: 1338rpx; width: 750rpx;"></image>
 | 
			
		||||
		</view>
 | 
			
		||||
		<!-- 转盘 -->
 | 
			
		||||
		<view class="luck-list"
 | 
			
		||||
			style="position: absolute;top: 415rpx;right: 0;left: 72rpx; width: 600rpx;">
 | 
			
		||||
			<view v-for="(item,index) in AwardList" :key="index">
 | 
			
		||||
				<view class="cell-item" :class="index==4||index===sel?'y-b':'w-b'"
 | 
			
		||||
					@tap="begin(index)">
 | 
			
		||||
					<view class="cell-content"
 | 
			
		||||
						:class="index==4||index===sel?'y':'w'">
 | 
			
		||||
						<image :src="item.image" mode="widthFix" style="width: 60rpx; height: 60rpx;" v-if="item.image"></image>
 | 
			
		||||
						<view style="margin-top: 5rpx;">
 | 
			
		||||
							<text style="font-size: 21rpx; font-weight: bold;">{{item.name}}</text>
 | 
			
		||||
						</view>
 | 
			
		||||
					</view>
 | 
			
		||||
				</view>
 | 
			
		||||
			</view>
 | 
			
		||||
		</view>
 | 
			
		||||
	</view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
	export default {
 | 
			
		||||
		props: {
 | 
			
		||||
			// 背景图
 | 
			
		||||
			nImg: String,
 | 
			
		||||
			// 列表
 | 
			
		||||
			AwardList:{
 | 
			
		||||
				type:Array,
 | 
			
		||||
				default:[]
 | 
			
		||||
			},
 | 
			
		||||
			// 中奖索引
 | 
			
		||||
			sjNum:{
 | 
			
		||||
				type:Number,
 | 
			
		||||
				default:0
 | 
			
		||||
			},
 | 
			
		||||
			// 判断免费抽奖,广告抽奖
 | 
			
		||||
			lotteryType:{
 | 
			
		||||
				type:Number,
 | 
			
		||||
				default:0
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		data() {
 | 
			
		||||
			return {
 | 
			
		||||
				sel: '',
 | 
			
		||||
				FastNums: 0,
 | 
			
		||||
				SlowNums: 0,
 | 
			
		||||
				time: 1000,
 | 
			
		||||
				LoopStatus: true,
 | 
			
		||||
				noClick: true
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		onLoad() {
 | 
			
		||||
			
 | 
			
		||||
		},
 | 
			
		||||
		methods: {
 | 
			
		||||
			// 中奖后的逻辑
 | 
			
		||||
			updateMoney(sjNum){
 | 
			
		||||
				this.$emit('updateMoney',sjNum)
 | 
			
		||||
			},
 | 
			
		||||
			// 开始抽奖
 | 
			
		||||
			begin(index) {
 | 
			
		||||
				if(this.lotteryType == 0){
 | 
			
		||||
					this.nowBegin(index)
 | 
			
		||||
				}else if(this.lotteryType == 1){
 | 
			
		||||
					this.$emit('lookAd',index)
 | 
			
		||||
				}else if(this.lotteryType == 2){
 | 
			
		||||
					this.$emit('noChance')
 | 
			
		||||
				}else{
 | 
			
		||||
					uni.showToast({
 | 
			
		||||
						title: '出错啦 !',
 | 
			
		||||
						icon: "none",
 | 
			
		||||
						position: 'bottom'
 | 
			
		||||
					});
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
			},
 | 
			
		||||
			nowBegin(index){
 | 
			
		||||
				if (index == 4) {
 | 
			
		||||
					if (!this.noClick) {
 | 
			
		||||
						uni.showToast({
 | 
			
		||||
							title: '请勿频繁点击',
 | 
			
		||||
							icon: "none",
 | 
			
		||||
							position: 'bottom'
 | 
			
		||||
						});
 | 
			
		||||
						return
 | 
			
		||||
					};
 | 
			
		||||
					this.noClick = false;
 | 
			
		||||
					this.FastNums = 0
 | 
			
		||||
					this.SlowNums = 0
 | 
			
		||||
					this.time = 200
 | 
			
		||||
					this.LoopStatus = true
 | 
			
		||||
					this.loop()
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			// 抽奖过程 控制
 | 
			
		||||
			loop() {
 | 
			
		||||
				let sjNum = this.sjNum
 | 
			
		||||
				//console.log(sjNum)
 | 
			
		||||
				if (!this.sel || this.sel < 9) {
 | 
			
		||||
					if (this.sel == 3) {
 | 
			
		||||
						this.sel = 0
 | 
			
		||||
					} else if (this.sel === '') {
 | 
			
		||||
						this.sel = 0
 | 
			
		||||
					} else if (this.sel == 2) {
 | 
			
		||||
						this.sel = 5
 | 
			
		||||
					} else if (this.sel == 5) {
 | 
			
		||||
						this.sel = 8
 | 
			
		||||
					} else if (this.sel == 8) {
 | 
			
		||||
						this.sel = 7
 | 
			
		||||
					} else if (this.sel == 7) {
 | 
			
		||||
						this.sel = 6
 | 
			
		||||
					} else if (this.sel == 6) {
 | 
			
		||||
						this.sel = 3
 | 
			
		||||
					} else {
 | 
			
		||||
						this.sel++
 | 
			
		||||
					}
 | 
			
		||||
					this.FastNums++
 | 
			
		||||
					if (this.FastNums == 4) {
 | 
			
		||||
						this.FastNums = 0
 | 
			
		||||
						this.time = 50
 | 
			
		||||
						this.SlowNums++
 | 
			
		||||
					}
 | 
			
		||||
					if (this.SlowNums == 8) {
 | 
			
		||||
						this.SlowNums = 0
 | 
			
		||||
						this.time = 500
 | 
			
		||||
						this.FastNums = 5
 | 
			
		||||
					}
 | 
			
		||||
					if (this.FastNums > 5) {
 | 
			
		||||
						if (this.sel == sjNum) {
 | 
			
		||||
							this.noClick = true;
 | 
			
		||||
							this.LoopStatus = false
 | 
			
		||||
							// 成功的逻辑
 | 
			
		||||
							this.updateMoney(sjNum)
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					if (this.LoopStatus) {
 | 
			
		||||
						setTimeout(() => {
 | 
			
		||||
							this.loop()
 | 
			
		||||
						}, this.time);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
    /* 抽奖 */
 | 
			
		||||
	.luck-list{
 | 
			
		||||
		display: flex;
 | 
			
		||||
		align-items: center;
 | 
			
		||||
		justify-content: center;
 | 
			
		||||
		flex-wrap: wrap;
 | 
			
		||||
	}
 | 
			
		||||
    .cell-item {
 | 
			
		||||
    	width: 150rpx;
 | 
			
		||||
    	height: 158rpx;
 | 
			
		||||
    	border-radius: 30rpx;
 | 
			
		||||
    	margin: 5rpx;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    .cell-content {
 | 
			
		||||
    	width: 150rpx;
 | 
			
		||||
    	height: 138rpx;
 | 
			
		||||
    	border-radius: 30rpx;
 | 
			
		||||
		display: flex;
 | 
			
		||||
		flex-direction: column;
 | 
			
		||||
		align-items: center;
 | 
			
		||||
		justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    .w {
 | 
			
		||||
    	background-color: #fdf2ee;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    .w-b {
 | 
			
		||||
    	background-color: #f8d0c3;
 | 
			
		||||
    }
 | 
			
		||||
    .y {
 | 
			
		||||
    	background-color: #fee610;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .y-b {
 | 
			
		||||
    	background-color: #EFCD22;
 | 
			
		||||
    }
 | 
			
		||||
</style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user