# uniapp-egg-frenzy
**Repository Path**: isixe/uniapp-egg-frenzy
## Basic Information
- **Project Name**: uniapp-egg-frenzy
- **Description**: uniapp砸金蛋项目demo
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-03
- **Last Updated**: 2025-12-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
这是一个基于 Vue 3 + TypeScript 的砸金蛋抽奖组件,重构自 [egg-frenzy](https://ext.dcloud.net.cn/plugin?id=17099#detail),在原有的抽奖组件上进行了一些改进。
## 预览
## 使用示例
```
✕
✨
获得奖励
{{ selectedPrize?.prizeName }}
```
## Props 属性说明
| 属性名 | 类型 | 默认值 | 必填 | 说明 |
| ------------ | ------------------ | ------ | ---- | ------------------------------------------------- |
| `drawList` | `Array` | - | 是 | 奖品数据列表,最多 6 个 |
| `singleMode` | `boolean` | `true` | 否 | 是否单抽模式(`true` 只砸一次,`false` 可砸多次) |
## 数据格式
```
interface PrizeItem {
sort: number; // 金蛋排序号(1-6)
prizeName: string; // 奖品名称
prizeImage: string; // 奖品图片 URL
isOpen?: boolean; // 是否已打开
}
```
示例数据:
```
const drawList = [
{
sort: 1,
prizeName: "一等奖",
prizeImage: "https://example.com/prize1.png",
isOpen: false
},
// ...最多 6 个
]
```
## Events 事件
| 事件名 | 回调参数 | 触发时机 | 说明 |
| ----------- | ---------------------------------- | ---------- | ------------------------------------------ |
| `showPrize` | `(item: PrizeItem, index: number)` | 金蛋打开后 | 返回打开的奖品数据和索引,用于展示奖品弹窗 |
## 附加说明
- 图片预加载:组件会自动预加载金蛋、锤子图片,确保网络畅通
- 单抽模式限制:singleMode=true 时,砸开一个金蛋后其他金蛋会变暗且不可点击
## 常见问题
Q1: 锤子不循环高亮?
A: 检查 drawList 中 isOpen 是否全为 true,或 remainingCount 为 0
Q2: 如何控制抽奖次数?
A: 当前逻辑内置 remainingCount=6,可在源码中调整
Q3: 单抽模式下如何重置?
A: 修改 drawList 中所有项的 isOpen 为 false,并重新渲染组件