mk-wxcom-ttl
Version:
微信转盘抽奖组件
77 lines (75 loc) • 1.99 kB
JavaScript
Component({
/**
* 组件的属性列表
*/
properties: {
lotteryData: Object
},
/**
* 组件的初始数据
*/
data: {
show: false,
rotate: 0
},
lifetimes: {
attached: function () {
this.dataInit();
}
},
/**
* 组件的方法列表
*/
methods: {
dataInit() {
let lotteryData = this.data.lotteryData
if (JSON.stringify(lotteryData) != '{}') {
this.setData({
show: true
})
this.initDone({ success: true, lotteryData: '初始配置检查成功' })
} else {
this.initDone({ success: false, lotteryData: '初始配置检查失败' })
}
},
lotStart(e) {
let config = this.data.lotteryData.config
// 单个需要增加度数
let single = 360 / config.allPrize / 2
// 总共需要转的圈数
let round = config.round * 360
// 总共需要转的度数
let deg = single + (e.prize - 1) * (360 / config.allPrize) + round
// console.log(single * (e.prize + 1))
if (this.data.rotate <= 0) {
this.setData({
rotate: this.data.rotate += deg,
deg: single + (e.prize - 1) * (360 / config.allPrize)
})
} else {
this.setData({
rotate: this.data.rotate += deg - this.data.deg,
deg: single + (e.prize - 1) * (360 / config.allPrize)
})
}
setTimeout(() => {
this.finsh({ id: e.prize })
}, config.time * 1000 + 10);
},
initDone(e) {
this.triggerEvent('initDone', e)
},
finsh(e) {
let lotteryData = this.data.lotteryData
let list = {}
if (lotteryData.prizeList != undefined) {
lotteryData.prizeList.forEach((el, inx) => {
if (inx == e.id) {
list = el
}
})
}
this.triggerEvent('finsh', { type: 'stop', id: e.id, prize: list })
}
},
});