1.0.2 • Published 5 years ago

ant-mini-flip-draw v1.0.2

Weekly downloads
1
License
ISC
Repository
-
Last release
5 years ago

翻牌抽奖小程序模块

npm.io

API

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

示例

视图:

<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)