You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.2 KiB
113 lines
3.2 KiB
<template>
|
|
<div class="coupon">
|
|
<div class="coupon-list">
|
|
<div class="coupon-item" v-for="(item,index) in couponsData" :key="index" :class="item.state && item.state !== 3 && 'isReceive'">
|
|
<!-- #ifdef MP-WEIXIN -->
|
|
<img class="coupon-item-bg" src="../../../static/images/coupon/bg-coupon.png" v-if="item.state && item.state === 3" mode="widthFix">
|
|
<img class="coupon-item-bg" src="../../../static/images/coupon/bg-coupon2.png" v-else mode="widthFix">
|
|
<!-- #endif -->
|
|
<!-- #ifdef H5 || APP-PLUS -->
|
|
<image class="coupon-item-bg" src="../../../static/images/coupon/bg-coupon.png" v-if="item.state && item.state === 3" mode="widthFix">
|
|
<image class="coupon-item-bg" src="../../../static/images/coupon/bg-coupon2.png" v-else mode="widthFix">
|
|
<!-- #endif -->
|
|
<div class="coupon-item-cont">
|
|
<div class="coupon-item-content">
|
|
<div class="coupon-item-price">
|
|
<div class="span" v-if="item.couponType !== 2">¥</div>
|
|
<div class="b" v-if="typeId !== 1">{{item.couponContent}}</div>
|
|
<div class="b" v-else>{{item.reduceMoney}}</div>
|
|
<div class="b" v-if="item.couponType == 2">折券</div>
|
|
</div>
|
|
<div class="coupon-item-date">{{item.startTime.split(' ')[0].replace(/-/g, '.')}}-{{item.endTime.split(' ')[0].replace(/-/g, '.')}}</div>
|
|
<div class="coupon-item-text">{{item.content}}</div>
|
|
</div>
|
|
<button v-if="item.state === 0" class="coupon-item-btn">已领取</button>
|
|
<button v-else-if="item.state === 1" class="coupon-item-btn">已使用</button>
|
|
<button v-else-if="item.state === 2" class="coupon-item-btn">已过期</button>
|
|
<button v-else @click="receiveCoupon(item)" class="coupon-item-btn">立即领取</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {commonMixin} from '../mixin'
|
|
export default {
|
|
mixins: [commonMixin]
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.coupon {
|
|
padding: 25upx;
|
|
&-list{
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
&-item{
|
|
width: 335upx;
|
|
height: 292upx;
|
|
margin-left: 28upx;
|
|
text-align: center;
|
|
position: relative;
|
|
margin-bottom: 10upx;
|
|
&-bg{
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
&-cont{
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
left: 0;
|
|
top: 0;
|
|
}
|
|
&:nth-child(2n+1){
|
|
margin-left: 0;
|
|
}
|
|
&-content{
|
|
text-align: center;
|
|
}
|
|
&-price{
|
|
color: #C5AA7B;
|
|
margin: 26upx 0 10upx;
|
|
.span{
|
|
display: inline;
|
|
font-size: 36upx;
|
|
line-height: 68upx;
|
|
}
|
|
.b{
|
|
display: inline;
|
|
font-size: 50upx;
|
|
line-height: 68upx;
|
|
}
|
|
}
|
|
&-date,&-text{
|
|
font-size: 20upx;
|
|
line-height: 28upx;
|
|
color: #999999;
|
|
}
|
|
&-date{
|
|
margin-bottom: 8upx;
|
|
}
|
|
&-btn{
|
|
display: inline-block;
|
|
margin: 60upx auto 0;
|
|
height: 48upx;
|
|
line-height: 48upx;
|
|
background-color: #C5AA7B;
|
|
color: #fff;
|
|
font-size: 14upx
|
|
}
|
|
&.isReceive{
|
|
&-price{
|
|
color: #999;
|
|
}
|
|
&-btn{
|
|
background-color: #ccc;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|