Vant3 Coupon 优惠券选择器

介绍

用于优惠券的兑换和选择。

实例演示

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

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

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

代码演示

基础用法

<!-- 优惠券单元格 -->
<van-coupon-cell
  :coupons="state.coupons"
  :chosen-coupon="state.chosenCoupon"
  @click="state.showList = true"
/>
<!-- 优惠券列表 -->
<van-popup
  v-model="state.showList"
  round
  position="bottom"
  style=""
>
  <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: 无使用门槛
最多优惠12元,
  reason: ,
  value: 150,
  name: 优惠券名称,
  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

参数说明类型默认值
title单元格标题string优惠券
chosen-coupon当前选中优惠券的索引number | string-1
coupons可用优惠券列表Coupon[][]
editable能否切换优惠券booleantrue
border是否显示内边框booleantrue
currency货币符号string¥

CouponList Props

参数说明类型默认值
v-model:code当前输入的兑换码string
chosen-coupon当前选中优惠券的索引number-1
coupons可用优惠券列表Coupon[][]
disabled-coupons不可用优惠券列表Coupon[][]
enabled-title可用优惠券列表标题string可使用优惠券
disabled-title不可用优惠券列表标题string不可使用优惠券
exchange-button-text兑换按钮文字string兑换
exchange-button-loading是否显示兑换按钮加载动画booleanfalse
exchange-button-disabled是否禁用兑换按钮booleanfalse
exchange-min-length兑换码最小长度number1
displayed-coupon-index滚动至特定优惠券位置number
show-close-button是否显示列表底部按钮booleantrue
close-button-text列表底部按钮文字string不使用优惠
input-placeholder输入框文字提示string请输入优惠码
show-exchange-bar是否展示兑换栏booleantrue
currency货币符号string¥
empty-image列表为空时的占位图stringhttps://img.yzcdn.cn/vant/coupon-empty.png
show-count是否展示可用 / 不可用数量booleantrue

CouponList Events

事件名说明回调参数
change优惠券切换回调index, 选中优惠券的索引
exchange兑换优惠券回调code, 兑换码

CouponList Slots

名称说明
list-footer v3.0.18优惠券列表底部
disabled-list-footer v3.0.18不可用优惠券列表底部

Coupon 数据结构

键名说明类型
id优惠券 idstring
name优惠券名称string
condition满减条件string
startAt卡有效开始时间 (时间戳, 单位秒)number
endAt卡失效日期 (时间戳, 单位秒)number
description描述信息,优惠券可用时展示string
reason不可用原因,优惠券不可用时展示string
value折扣券优惠金额,单位分number
valueDesc折扣券优惠金额文案string
unitDesc单位文案string

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
–van-coupon-margin0 var(–van-padding-sm) var(–van-padding-sm)
–van-coupon-content-height84px
–van-coupon-content-padding14px 0
–van-coupon-background-colorvar(–van-white)
–van-coupon-active-background-colorvar(–van-active-color)
–van-coupon-border-radiusvar(–van-border-radius-lg)
–van-coupon-box-shadow0 0 4px rgba(0, 0, 0, 0.1)
–van-coupon-head-width96px
–van-coupon-amount-colorvar(–van-danger-color)
–van-coupon-amount-font-size30px
–van-coupon-currency-font-size40%
–van-coupon-name-font-sizevar(–van-font-size-md)
–van-coupon-disabled-text-colorvar(–van-gray-6)
–van-coupon-description-paddingvar(–van-padding-xs) var(–van-padding-md)
–van-coupon-description-border-colorvar(–van-border-color)
–van-coupon-corner-checkbox-icon-colorvar(–van-danger-color)
–van-coupon-list-background-colorvar(–van-background-color)
–van-coupon-list-field-padding5px 0 5px var(–van-padding-md)
–van-coupon-list-exchange-button-height32px
–van-coupon-list-close-button-height40px
–van-coupon-list-empty-image-size200px
–van-coupon-list-empty-tip-colorvar(–van-gray-6)
–van-coupon-list-empty-tip-font-sizevar(–van-font-size-md)
–van-coupon-list-empty-tip-line-heightvar(–van-line-height-md)
–van-coupon-cell-selected-text-colorvar(–van-text-color)

作者:admin,如若转载,请注明出处:https://www.web176.com/vant3/18675.html

(0)
打赏 支付宝 支付宝 微信 微信
adminadmin
上一篇 2023年4月28日
下一篇 2023年4月28日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注