# 老虎机抽奖组件使用指南
## 组件简介
本组件是一个整合了1列、3列和5列老虎机功能的抽奖组件,可根据传入的参数动态切换不同列数的老虎机模式。
## 使用方法
### 1. 引入组件
```vue
import DetailLucky from "@/components/detail-lucky/detail-lucky.vue";
export default {
components: {
DetailLucky
}
}
```
### 2. 在模板中使用
```vue
```
### 3. 组件属性
| 属性名 | 类型 | 默认值 | 说明 |
|-------|------|-------|------|
| mode | Number/String | 1 | 老虎机模式,可选值:1, 3, 5 |
### 4. 组件方法
#### 初始化老虎机
```js
// 初始化老虎机,传入奖品列表和模式
this.$refs.luckySlot.init(prizeList, mode);
// 例如:初始化3列老虎机
this.$refs.luckySlot.init(myPrizes, 3);
// 也可以仅传入奖品列表,使用组件默认的模式
this.$refs.luckySlot.init(myPrizes);
```
#### 开始抽奖
```js
// 开始抽奖,可选传入回调函数
this.$refs.luckySlot.startDraw(() => {
console.log('老虎机开始旋转');
});
```
#### 停止抽奖并指定中奖结果
```js
// 停止抽奖,传入中奖索引数组
// 对于1列老虎机,传入1个索引
this.$refs.luckySlot.stopDraw([5]);
// 对于3列老虎机,传入3个索引
this.$refs.luckySlot.stopDraw([3, 2, 8]);
// 对于5列老虎机,传入5个索引
this.$refs.luckySlot.stopDraw([1, 2, 3, 4, 5]);
// 也可以不传入索引,组件会随机生成
this.$refs.luckySlot.stopDraw();
```
#### 其他方法
```js
// 强制结束抽奖
this.$refs.luckySlot.forceEndDraw();
// 隐藏老虎机
this.$refs.luckySlot.hide();
// 显示老虎机
this.$refs.luckySlot.show();
// 重置组件状态
this.$refs.luckySlot.reset();
```
### 5. 组件事件
| 事件名 | 说明 | 返回值 |
|-------|------|-------|
| start | 开始抽奖时触发 | - |
| end | 结束抽奖时触发 | 中奖信息对象 |
### 使用示例
```vue
```
## 注意事项
1. 使用前必须先调用`init`方法初始化组件
2. 中奖索引数组的长度应与当前模式的列数匹配,如果不匹配会自动补足或截取
3. 组件高度会根据模式自动调整
4. 如果不传入奖品列表,将使用默认的奖品列表