更新记录

0.2.9(2025-08-31) 下载此版本

  • chore: 更新文档

0.2.7(2025-04-22) 下载此版本

  • feat: 兼容uniappx 鸿蒙next

0.2.6(2025-02-14) 下载此版本

  • fix: 修复uniappx app端列数样式不对的问题
查看更多

平台兼容性

uni-app(4.74)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- 5.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

uni-app x(4.75)

Chrome Safari Android iOS 鸿蒙 微信小程序
5.0

其他

多语言 暗黑模式 宽屏模式
× ×

lime-dialer 转盘抽奖组件

一个功能丰富的转盘抽奖组件,用于营销活动场景。支持自定义奖品、指针、边框等多种配置,可用于抽奖活动、营销推广、游戏互动等多种场景。组件提供了丰富的自定义选项,可以满足各种复杂的抽奖界面设计需求。

插件依赖:无

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场中搜索并导入lime-dialer
  2. 导入后可能需要重新编译项目
  3. 在页面中使用l-dialer组件

代码演示

基础用法

最简单的转盘抽奖组件用法,设置奖品列表并通过ref调用run方法开始抽奖。

<l-dialer :prizeList="prizeList" @click="onClick" @done="onDone" ref="dialer" />
export default {
    data() {
        return {
            // 奖品列表
            prizeList: [
                {
                    id: 'coupon88',
                    name: '8.8折',
                    img: 'https://img11.360buyimg.com/pop/jfs/t1/175718/35/12595/5477/60b660c6Eb850717b/a1cfe750dcdb5b78.png',
                },
                {
                    id: 'coupon900',
                    Color: 'rgb(251, 219, 216)',
                    name: '900',
                    img: 'https://img11.360buyimg.com/pop/jfs/t1/190845/9/6092/4489/60b65fe8Ebb8f8284/955da889f6d1c13e.png',
                },
                // 更多奖品...
            ]
        };
    },
    methods: {
        onDone(index) {
            const prize = this.prizeList[index]
            uni.showModal({
                title: prize.id == 'thanks' ? '很遗憾': '恭喜您',
                content: (prize.id !== 'thanks' ? `获得`:'') + prize.name
            })
        },
        onClick() {
            // 奖品的索引
            this.$refs.dialer.run(5)
        }
    }
}

自定义转盘边框

可以通过两种方式设置转盘边框:

<!-- 方式1:通过样式设置背景图片 -->
<l-dialer dial-style="color: rgba(60,48,158,0.7); padding: 32rpx;background-image: url(http://example.com/static/dialer/lottery-bg.png)"/>

<!-- 方式2:通过插槽设置 -->
<l-dialer>
    <image slot="border" src="static/dialer/lottery-bg.png"/>
</l-dialer>

自定义指针

可以通过多种方式设置指针:

<!-- 方式1:通过样式设置背景图片 -->
<l-dialer pointer-style="background-image: url(http://example.com/static/dialer/pointer.png)"/>

<!-- 方式2:通过插槽设置 -->
<l-dialer>
    <image slot="pointer" src="static/dialer/pointer.png" />
</l-dialer>

自定义奖品样式

可以通过插槽自定义奖品的展示方式:

<l-dialer>
    <template #prize="{item}">
        <image style="width: 72rpx; height: 72rpx;" :src="item.img" />
    </template>
</l-dialer>

注意:微信小程序最好使用HX3.7.12+并且在manifest.json设置slotMultipleInstance: true

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

<!-- 代码位于 uni_modules/lime-dialer/components/lime-dialer -->
<lime-dialer />

插件标签说明

标签名 说明
l-dialer 组件标签
lime-dialer 演示标签

API文档

Props 属性说明

属性名 说明 类型 默认值
size 转盘直径,默认单位为 rpx number | string 300
prizeList 奖品列表 Array []
turns 旋转圈数 number 10
duration 旋转过程时间,单位为 s number 3
styleOpt 转盘中的样式配置 object 见下方说明
customStyle 外容器的自定义样式 string -
dialStyle 转盘自定义样式 string -
pointerStyle 指针自定义样式 string width: 30%

styleOpt 配置项

属性名 说明 类型 默认值
prizeBgColors 每一块扇形的背景色 Array ['#fff0a3', '#fffce6']
borderColor 每一块扇形的外边框颜色 string #ffd752

Events 事件

事件名 说明 回调参数
click 点击指针时触发 -
done 转盘旋转结束时触发 index: number (中奖奖品的索引)

Methods 方法

通过 ref 可以获取到组件实例并调用实例方法

方法名 说明 参数
run 开始旋转到指定索引位置 index: number (奖品的索引)
done 旋转结束,该事件是通过标签接收的方法
click 点击指针,该事件是通过标签接收的方法

Slots 插槽

名称 说明
border 自定义转盘边框
prize 自定义奖品展示,提供 item 参数表示当前奖品数据
pointer 自定义指针

prizeList 奖品配置

奖品列表的每一项配置:

interface Prize {
  id: string;        // 奖品ID
  name: string;      // 奖品名称
  img?: string;      // 奖品图片
  Color?: string;    // 奖品背景色(可选,优先级高于styleOpt.prizeBgColors)
}

--dialer_prize_image_size | 36px | 奖品图片大小 |

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议