UNPKG

mk-wxcom-ttl

Version:

微信转盘抽奖组件

77 lines (75 loc) 1.99 kB
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 }) } }, });