yfs/components/detail-lucky/detail-lucky.vue
2025-06-08 20:23:01 +08:00

114 lines
2.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content-container detail-lucky">
<detailLucky ref="_detailLucky" @end="onLuckyEnd" @luckyPlay="startCallBack" @luckyStop="endCallBack">
</detailLucky>
<detailGrandPrize ref="_detailGrandPrize" @end="onLuckyEnd1" />
</view>
</template>
<script>
//超神特效
//#ifdef H5 || MP
import detailLucky from "./detail-lucky-canvas.vue";
//#endif
//#ifdef APP
import detailLucky from "./detail-lucky-web.vue";
//#endif
import detailGrandPrize from "@/components/detail-lucky/detail-grand-prize.vue";
import { sleep } from '@/common/util'
export default {
components: {
detailGrandPrize,
detailLucky
},
data() {
return {
chaoShenIndex: -1,
prizeList: null,
mode: mode,
};
},
computed: {
},
methods: {
onLuckyEnd(isSkip) {
// 发送中奖信息到父组件
this.hide();
if (!isSkip && this.chaoShenIndex > -1) {
this.$refs._detailGrandPrize.init();
this.$refs._detailGrandPrize.show();
return;
}
this.audioManager.stop();
this.$emit("end", isSkip);
},
onLuckyEnd1() {
this.audioManager.stop();
this.$emit("end", false);
},
// 初始化抽奖特效组件
init(prizeList, mode) {
this.prizeList = prizeList;
this.mode = mode;
//#ifdef H5 || MP
this.$refs._detailLucky.init(prizeList, mode);
//#endif
},
// 显示抽奖特效组件
show() {
//#ifdef H5 || MP
this.$refs._detailLucky.show();
//#endif
},
// 隐藏抽奖特效组件
hide() {
//#ifdef H5 || MP
this.$refs._detailLucky.hide();
//#endif
},
// 抽奖特效开始回调
startCallBack() {
console.log('开始回调');
this.audioManager.playSlotBgm();
},
// 抽奖结束回调
endCallBack(prize) {
this.audioManager.stop();
},
/**
* 开始抽奖并传入抽奖结果2秒后自动停止
* @param {Array} resultIndices 抽奖结果索引数组
* @return {Object} this 返回组件实例,支持链式调用
*/
async startDrawWithResult(page, resultIndices, chaoShenIndex = -1) {
this.chaoShenIndex = chaoShenIndex;
console.log('开始抽奖开始抽奖开始抽奖开始抽奖开始抽奖开始抽奖', this.prizeList, resultIndices,);
//#ifdef H5 || MP
await this.$refs._detailLucky.startDrawWithResult(resultIndices, chaoShenIndex);
//#endif
//#ifdef APP
this.$refs._detailLucky.init(this.prizeList, page, resultIndices);
//#endif
}
},
mounted() {
// 不再自动初始化
}
};
</script>
<style lang="scss" scoped></style>