diff --git a/components/detail-lucky/README.md b/components/detail-lucky/README.md
new file mode 100644
index 0000000..6d63036
--- /dev/null
+++ b/components/detail-lucky/README.md
@@ -0,0 +1,164 @@
+# 老虎机抽奖组件使用指南
+
+## 组件简介
+
+本组件是一个整合了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. 如果不传入奖品列表,将使用默认的奖品列表
\ No newline at end of file
diff --git a/components/detail-lucky/detail-lucky.vue b/components/detail-lucky/detail-lucky.vue
index a61fc56..ce6df87 100644
--- a/components/detail-lucky/detail-lucky.vue
+++ b/components/detail-lucky/detail-lucky.vue
@@ -1,7 +1,570 @@
-
-
-
-
-
\ No newline at end of file
+
+
diff --git a/components/detail-lucky/detail-lucky_1.vue b/components/detail-lucky/detail-lucky_1.vue
new file mode 100644
index 0000000..a11dd56
--- /dev/null
+++ b/components/detail-lucky/detail-lucky_1.vue
@@ -0,0 +1,489 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/detail-lucky/detail-lucky_3.vue b/components/detail-lucky/detail-lucky_3.vue
new file mode 100644
index 0000000..a5b6d26
--- /dev/null
+++ b/components/detail-lucky/detail-lucky_3.vue
@@ -0,0 +1,493 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/detail-lucky/detail-lucky_5.vue b/components/detail-lucky/detail-lucky_5.vue
new file mode 100644
index 0000000..627ae8c
--- /dev/null
+++ b/components/detail-lucky/detail-lucky_5.vue
@@ -0,0 +1,485 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/shouye/detail_wuxian.vue b/pages/shouye/detail_wuxian.vue
index 8373f34..d3455ed 100644
--- a/pages/shouye/detail_wuxian.vue
+++ b/pages/shouye/detail_wuxian.vue
@@ -264,7 +264,8 @@
-
+
+
@@ -278,7 +279,8 @@ import DetailPreviewPopup from '@/components/detail-preview-popup/detail-preview
import preview from '@/components/detail-preview-popup/index.js'
import DetailWuxianLingzhu from '@/components/detail-wuxian-lingzhu/detail-wuxian-lingzhu.vue'
import DetailWuxianRage from '@/components/detail-wuxian-rage/detail-wuxian-rage.vue'
-
+// 导入抽取的老虎机组件
+import DetailLucky from "@/components/detail-lucky/detail-lucky.vue";
export default {
components: {
PageContainer,
@@ -287,7 +289,8 @@ export default {
DetailButton,
DetailPreviewPopup,
DetailWuxianLingzhu,
- DetailWuxianRage // 注册新组件
+ DetailWuxianRage, // 注册新组件
+ DetailLucky
},
data() {
return {
@@ -415,6 +418,14 @@ export default {
},
methods: {
+ // 老虎机结束抽奖回调
+ onLuckyEnd(data) {
+ console.log("抽奖结束", data);
+
+ // 获取所有中奖奖品
+ console.log("所有中奖奖品:", data.allPrizes);
+ this.$refs.detailLucky.hide();
+ },
previewDetail(item, a) {
const obj = {
@@ -545,7 +556,7 @@ export default {
return
}
// console.log(' res.data.prize_num', res.data.prize_num);
-
+
if (that.buyNum == 0 || that.buyNum == null) {
if (res.data.prize_num != null) {
that.buyNum = res.data.prize_num;
@@ -657,8 +668,9 @@ export default {
})
if (status == 'success') {
- this.getPrize(res.data.order_num)
+ this.getPrize(res.data.order_num);
this.doRefresh()
+ // this.$refs.detailLucky.init([], this.buyNum);
}
} else {
this.$c.toast({
diff --git a/pages/shouye/slots.vue b/pages/shouye/slots.vue
index 1ea95ab..5a40b5f 100644
--- a/pages/shouye/slots.vue
+++ b/pages/shouye/slots.vue
@@ -1,312 +1,154 @@
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
\ No newline at end of file