mk-mycom-ttl
Version:
a sequenceFrame component
74 lines (72 loc) • 2.31 kB
JavaScript
Component({
mixins: [],
data: {
show: false,
rotate: 0
},
props: {},
didMount() {
this.props.onRef && this.props.onRef(this)
this.dataInit();
},
didUpdate() { },
didUnmount() { },
methods: {
dataInit() {
let lotteryData = {}
let initTime = setInterval(() => {
lotteryData = this.props.lotteryData
if (Object.keys(lotteryData) <= 0 && lotteryData == undefined) {
this.props.onInitDone && this.props.onInitDone({ success: false, lotteryData: '未找到初始配置' })
setTimeout(() => {
clearInterval(initTime)
this.props.onInitDone && this.props.onInitDone({ success: false, lotteryData: '请检查初始配置' })
}, 3000);
} else {
clearInterval(initTime)
this.setData({
lotteryData: lotteryData,
show: true
})
this.props.onInitDone && this.props.onInitDone({ success: true, lotteryData: '初始配置检查成功' })
}
}, 1);
},
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.onFinsh({ id: e.prize })
}, config.time * 1000 + 10);
},
onFinsh(e) {
let lotteryData = this.data.lotteryData
let list = {}
if (lotteryData.prizeList != undefined) {
lotteryData.prizeList.forEach((el, inx) => {
if (inx == e.id) {
list = el
}
})
}
this.props.onFinsh && this.props.onFinsh({ type: 'stop', id: e.id, prize: list });
}
},
});