| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- <!-- 老虎机 -->
 
- <template>
 
-   <view class="mb-n5" v-if="prizes?.length">
 
-     <SlotMachine
 
-       ref="myLucky"
 
-       width="300px"
 
-       height="300px"
 
-       :prizes="prizes"
 
-       :blocks="blocks"
 
-       :slots="slots"
 
-       accelerationTime="1000"
 
-       decelerationTime="10000"
 
-       :default-config="defaultConfig"
 
-       :disabled="true"
 
-       class="prizeDraw"
 
-       @start="startCallback"
 
-       @end="endCallback"
 
-     />
 
-     <image
 
-       src="https://img1.baidu.com/it/u=3949019928,2138080900&fm=253&fmt=auto&app=138&f=PNG?w=300&h=300"
 
-       :width="100"
 
-       style="margin: 0 auto;"
 
-       @click="startCallback"
 
-     />
 
-   </view>
 
- </template>
 
- <script setup>
 
- import PrizeApi from '@/sheep/api/prizeDraw'
 
- import SlotMachine from '@lucky-canvas/uni/slot-machine'
 
- import { ref } from 'vue'
 
- const emit = defineEmits(['start', 'end'])
 
- const props = defineProps({ lotteryId: [Number, String], disabled: [Number, Boolean] })
 
- const myLucky = ref()
 
- // 背景样式
 
- const blocks = [
 
-   { padding: '10px', background: '#00897B', borderRadius: 6 },
 
- ]
 
- // 转速与方向
 
- const slots = [
 
-     { speed: 15, direction: -1 },
 
-     { speed: 15, direction: 1 },
 
-     { speed: 15, direction: -1 },
 
-   ]
 
- const prizes = ref([])
 
- const defaultConfig = {
 
-   rowSpacing: '10px',
 
-   colSpacing: '10px',
 
-   accelerationTime: 1000, // 开始旋转时间
 
-   decelerationTime: 5000, // 缓慢停止时间
 
- }
 
- debugger
 
- // 根据活动id获取奖品列表
 
- const getPrizeData = async (lotteryId) => {
 
-   let id = lotteryId || props.lotteryId
 
-   const data = await PrizeApi.getPrizeByLotteryId(id)
 
-   prizes.value = []
 
-   debugger
 
-   data.forEach(item => {
 
-     prizes.value.push({
 
-       prize: item,
 
-       background: '#fe920200',
 
-       borderRadius: '10px',
 
-       imgs: [{
 
-         width: '100%',
 
-         top: '0%',
 
-         src: item.image
 
-       }]
 
-     })
 
-   })
 
- }
 
- if (props.lotteryId) getPrizeData()
 
- const startCallback = () => {
 
-   if (props.disabled) return sheep.$helper.toast('抽奖次数已用完')
 
-   emit('start')
 
-   // 调用抽奖组件的play方法开始游戏
 
-   myLucky.value.play()
 
-   // 模拟调用接口异步抽奖
 
-   setTimeout(() => {
 
-     // 假设后端返回的中奖索引是0
 
-     const index = 3
 
-     // 调用stop停止旋转并传递中奖索引
 
-     myLucky.value.stop(index)
 
-   }, 1500)
 
- }
 
- const endCallback  = (value) => {
 
-   emit('end', value)
 
- }
 
- </script>
 
- <style lang="scss" scoped>
 
- </style>
 
 
  |