Vant3 Coupon 優(yōu)惠券選擇器

2021-09-14 11:01 更新

介紹

用于優(yōu)惠券的兌換和選擇。

實(shí)例演示

引入

通過(guò)以下方式來(lái)全局注冊(cè)組件,更多注冊(cè)方式請(qǐng)參考組件注冊(cè)。

import { createApp } from 'vue';
import { CouponCell, CouponList } from 'vant';

const app = createApp();
app.use(CouponCell);
app.use(CouponList);

代碼演示

基礎(chǔ)用法

<!-- 優(yōu)惠券單元格 -->
<van-coupon-cell
  :coupons="state.coupons"
  :chosen-coupon="state.chosenCoupon"
  @click="state.showList = true"
/>
<!-- 優(yōu)惠券列表 -->
<van-popup
  v-model="state.showList"
  round
  position="bottom"
  style="height: 90%; padding-top: 4px;"
>
  <van-coupon-list
    :coupons="state.coupons"
    :chosen-coupon="state.chosenCoupon"
    :disabled-coupons="disabledCoupons"
    @change="onChange"
    @exchange="onExchange"
  />
</van-popup>
import { reactive } from 'vue';

const coupon = {
  available: 1,
  condition: '無(wú)使用門(mén)檻\n最多優(yōu)惠12元',
  reason: '',
  value: 150,
  name: '優(yōu)惠券名稱',
  startAt: 1489104000,
  endAt: 1514592000,
  valueDesc: '1.5',
  unitDesc: '元',
};

export default {
  setup() {
    const state = reactive({
      coupons: [coupon],
      showList: false,
      chosenCoupon: -1,
    });

    const onChange = (index) => {
      state.showList = false;
      state.chosenCoupon = index;
    };
    const onExchange = (code) => {
      state.coupons.push(coupon);
    };

    return {
      state,
      onChange,
      onExchange,
      disabledCoupons: [coupon],
    };
  },
};

API

CouponCell Props

參數(shù) 說(shuō)明 類(lèi)型 默認(rèn)值
title 單元格標(biāo)題 string 優(yōu)惠券
chosen-coupon 當(dāng)前選中優(yōu)惠券的索引 number | string -1
coupons 可用優(yōu)惠券列表 Coupon[] []
editable 能否切換優(yōu)惠券 boolean true
border 是否顯示內(nèi)邊框 boolean true
currency 貨幣符號(hào) string

CouponList Props

參數(shù) 說(shuō)明 類(lèi)型 默認(rèn)值
v-model:code 當(dāng)前輸入的兌換碼 string -
chosen-coupon 當(dāng)前選中優(yōu)惠券的索引 number -1
coupons 可用優(yōu)惠券列表 Coupon[] []
disabled-coupons 不可用優(yōu)惠券列表 Coupon[] []
enabled-title 可用優(yōu)惠券列表標(biāo)題 string 可使用優(yōu)惠券
disabled-title 不可用優(yōu)惠券列表標(biāo)題 string 不可使用優(yōu)惠券
exchange-button-text 兌換按鈕文字 string 兌換
exchange-button-loading 是否顯示兌換按鈕加載動(dòng)畫(huà) boolean false
exchange-button-disabled 是否禁用兌換按鈕 boolean false
exchange-min-length 兌換碼最小長(zhǎng)度 number 1
displayed-coupon-index 滾動(dòng)至特定優(yōu)惠券位置 number -
show-close-button 是否顯示列表底部按鈕 boolean true
close-button-text 列表底部按鈕文字 string 不使用優(yōu)惠
input-placeholder 輸入框文字提示 string 請(qǐng)輸入優(yōu)惠碼
show-exchange-bar 是否展示兌換欄 boolean true
currency 貨幣符號(hào) string
empty-image 列表為空時(shí)的占位圖 string https://img.yzcdn.cn/vant/coupon-empty.png
show-count 是否展示可用 / 不可用數(shù)量 boolean true

CouponList Events

事件名 說(shuō)明 回調(diào)參數(shù)
change 優(yōu)惠券切換回調(diào) index, 選中優(yōu)惠券的索引
exchange 兌換優(yōu)惠券回調(diào) code, 兌換碼

CouponList Slots

名稱 說(shuō)明
list-footer v3.0.18 優(yōu)惠券列表底部
disabled-list-footer v3.0.18 不可用優(yōu)惠券列表底部

Coupon 數(shù)據(jù)結(jié)構(gòu)

鍵名 說(shuō)明 類(lèi)型
id 優(yōu)惠券 id string
name 優(yōu)惠券名稱 string
condition 滿減條件 string
startAt 卡有效開(kāi)始時(shí)間 (時(shí)間戳, 單位秒) number
endAt 卡失效日期 (時(shí)間戳, 單位秒) number
description 描述信息,優(yōu)惠券可用時(shí)展示 string
reason 不可用原因,優(yōu)惠券不可用時(shí)展示 string
value 折扣券優(yōu)惠金額,單位分 number
valueDesc 折扣券優(yōu)惠金額文案 string
unitDesc 單位文案 string

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請(qǐng)參考 ConfigProvider 組件。

名稱 默認(rèn)值 描述
--van-coupon-margin 0 var(--van-padding-sm) var(--van-padding-sm) -
--van-coupon-content-height 84px -
--van-coupon-content-padding 14px 0 -
--van-coupon-background-color var(--van-white) -
--van-coupon-active-background-color var(--van-active-color) -
--van-coupon-border-radius var(--van-border-radius-lg) -
--van-coupon-box-shadow 0 0 4px rgba(0, 0, 0, 0.1) -
--van-coupon-head-width 96px -
--van-coupon-amount-color var(--van-danger-color) -
--van-coupon-amount-font-size 30px -
--van-coupon-currency-font-size 40% -
--van-coupon-name-font-size var(--van-font-size-md) -
--van-coupon-disabled-text-color var(--van-gray-6) -
--van-coupon-description-padding var(--van-padding-xs) var(--van-padding-md) -
--van-coupon-description-border-color var(--van-border-color) -
--van-coupon-corner-checkbox-icon-color var(--van-danger-color) -
--van-coupon-list-background-color var(--van-background-color) -
--van-coupon-list-field-padding 5px 0 5px var(--van-padding-md) -
--van-coupon-list-exchange-button-height 32px -
--van-coupon-list-close-button-height 40px -
--van-coupon-list-empty-image-size 200px -
--van-coupon-list-empty-tip-color var(--van-gray-6) -
--van-coupon-list-empty-tip-font-size var(--van-font-size-md) -
--van-coupon-list-empty-tip-line-height var(--van-line-height-md) -
--van-coupon-cell-selected-text-color var(--van-text-color) -


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)