ant-mini-flip-draw

1.0.2 • Public • Published

翻牌抽奖小程序模块

API

属性名 类型 默认值 描述
prizeList Array [] 奖项列表【必填】,须包含 nameicon 字段
prizeName String '' 抽奖结果的奖品 name【必填】,其值必须位于 prizeList
cardNum Number 9 展示多少张卡片,推荐3/6/9
cardHeight Number 210 宽度固定210,高度需要等比换算设置
cardBgImg String - 卡背图片
unawardImg String - 未中奖展示图片
isDrawing Boolean - 是否正在抽奖,用于限制点击
flipAllCards String - 是否翻转剩余卡片
onFlipStart Function () => {} 转动开始的回调【选填】

示例

视图:

<view>
<flipdraw
    prizeList="{{prizeList}}"
    prizeName="{{prizeName}}"
    isDrawing="{{isDrawing}}"
    flipAllCards="{{flipAllCards}}"
    onFlipStart="onFlipStart"
  />
</view>

逻辑:

Page({
  data: {
    prizeList: [{
      'name': '谢谢参与1',
      'icon': 'https://zos.alipayobjects.com/rmsportal/dexmbhnbsLRGIZGBqTcA.png'
    }, ... ],
    prizeName: '',
    flipAllCards: false,
    isDrawing: false,
  },
  onFlipStart() {
    console.log('开始了,这个时候最好页面控制下 loading 状态,组件内不做控制');
    this.setData({
      isDrawing: true, // 修改抽奖状态,防止重复点击多次请求
    });
    // 开始抽奖
    drawRequest().then(res => {
      console.log('拿到结果,设置奖品信息');
      if (res.success) {
        this.setData({
          prizeName: '666元红包',
          isDrawing: false,
        });
      } else {
        this.setData({
          isDrawing: false, // 抽奖结束一定要还原 isDrawing 状态
        });
      }
      this.showResultDialog()
    });
  },
  showResultDialog() {
    // do something
    this.setData({
      flipAllCards: true, // 将剩下未翻过的牌自动翻,展示奖品结果。
    })
  }
});
 

注意

  • 请求前一定要设置 isDrawing = true,请求结束后一定要设置 isDrawing = false。
  • cardHeight 卡片高度是相对750视觉稿设置的,宽高默认210x210rpx。宽度固定,高度可变。比如210x300的图片,cardHeight就设置为300;如果是200x250的图片需要等比转换一下,cardHeight = 210 * (250/200)

Package Sidebar

Install

npm i ant-mini-flip-draw

Weekly Downloads

3

Version

1.0.2

License

ISC

Unpacked Size

7.34 kB

Total Files

6

Last publish

Collaborators

  • misaka
  • 0326
  • crazymousethief