# 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),在原有的抽奖组件上进行了一些改进。 ## 预览 ## 使用示例 ``` ``` ## 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,并重新渲染组件