254 lines
5.4 KiB
Vue
254 lines
5.4 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="coupon-container":data-theme="theme">
|
|||
|
|
<!-- 优惠券列表 -->
|
|||
|
|
<view v-if="couponsList.length" class="coupon-box">
|
|||
|
|
<!-- 可领取优惠券 -->
|
|||
|
|
<view v-for="(item,index) in couponsList" :key="index" class="coupon-item available">
|
|||
|
|
<!-- 左侧金额区域 -->
|
|||
|
|
<view class="coupon-left">
|
|||
|
|
<view class="coupon-amount font-color semiBold"><span class="f-s-28 semiBold">¥</span>{{item.money}}</view>
|
|||
|
|
<view class="coupon-condition font-color">满{{ item.minPrice }}可用</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 右侧信息区域 -->
|
|||
|
|
<view class="coupon-right flex-between-center">
|
|||
|
|
<view class="">
|
|||
|
|
<view class="coupon-name fw-500 line1">{{ item.name }}</view>
|
|||
|
|
<block v-if="item.isFixedTime">
|
|||
|
|
<view class="coupon-date">
|
|||
|
|
{{ item.useStartTimeStr | dateFormat }}-{{ item.useEndTimeStr | dateFormat }}
|
|||
|
|
</view>
|
|||
|
|
</block>
|
|||
|
|
<block v-else>
|
|||
|
|
<view class="coupon-date">{{'领取后'+ item.day+ '天内可用'}}</view>
|
|||
|
|
</block>
|
|||
|
|
<view class="coupon-range">{{item.category | couponTypeFilter}}</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 立即领取按钮 -->
|
|||
|
|
<view @click="getCoupon(item)" class="coupon-btn text-center" :class="item.isUse?'btn-use':'btn-get'">{{item.isUse ? '去使用' : '立即领取'}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 没有更多提示 -->
|
|||
|
|
<view class="no-more">
|
|||
|
|
<text>没有更多优惠券了~</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='noCommodity' v-if="!couponsList.length && !loadingcoupon">
|
|||
|
|
<emptyPage title='暂无优惠券可使用哦~' :imgSrc="urlDomain+'crmebimage/presets/noCoupon.png'"></emptyPage>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import navBar from '@/components/navBar';
|
|||
|
|
import couponListMixins from "../../../mixins/couponList";
|
|||
|
|
import emptyPage from '@/components/emptyPage.vue'
|
|||
|
|
let app = getApp();
|
|||
|
|
export default {
|
|||
|
|
name: "index",
|
|||
|
|
mixins: [couponListMixins],
|
|||
|
|
components: {
|
|||
|
|
navBar,
|
|||
|
|
emptyPage
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
urlDomain: this.$Cache.get("imgHost"),
|
|||
|
|
merid: 0,
|
|||
|
|
theme: app.globalData.theme,
|
|||
|
|
identityType: 1
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
onLoad(options) {
|
|||
|
|
this.merid = parseInt(options.merId)
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
this.getCouponList()
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
getCoupon(item){
|
|||
|
|
//item.isUse ? '去使用' : '立即领取'
|
|||
|
|
if(item.isUse){
|
|||
|
|
this.goUseCouponPro(item,1, true)
|
|||
|
|
}else{
|
|||
|
|
this.fetchReceiveCoupon(item)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped lang="scss">
|
|||
|
|
.use-style{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
/* 页面容器 */
|
|||
|
|
.coupon-container {
|
|||
|
|
background-color: #fff;
|
|||
|
|
min-height: 100vh;
|
|||
|
|
}
|
|||
|
|
.available{
|
|||
|
|
@include main_rgba_color(theme);
|
|||
|
|
}
|
|||
|
|
/* 优惠券列表 */
|
|||
|
|
.coupon-box {
|
|||
|
|
padding: 36rpx 24rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券项 */
|
|||
|
|
.coupon-item {
|
|||
|
|
display: flex;
|
|||
|
|
border-radius: 16rpx;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
overflow: hidden;
|
|||
|
|
position: relative;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 左侧金额区域 */
|
|||
|
|
.coupon-left {
|
|||
|
|
width: 220rpx;
|
|||
|
|
color: #ffffff;
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: column;
|
|||
|
|
justify-content: center;
|
|||
|
|
align-items: center;
|
|||
|
|
position: relative;
|
|||
|
|
padding: 20rpx 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 装饰性虚线 */
|
|||
|
|
.coupon-left::after {
|
|||
|
|
content: '';
|
|||
|
|
position: absolute;
|
|||
|
|
left: 216rpx;
|
|||
|
|
top: 25rpx;
|
|||
|
|
bottom: 10rpx;
|
|||
|
|
width: 2rpx;
|
|||
|
|
@include dashed_border_left(theme);
|
|||
|
|
//@include dashed_border_left(theme);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 左侧金额区域 - 已失效 */
|
|||
|
|
.expired {
|
|||
|
|
background: #F5F5F5;
|
|||
|
|
color: #999999;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券金额 */
|
|||
|
|
.coupon-amount {
|
|||
|
|
font-size: 52rpx;
|
|||
|
|
line-height: 1;
|
|||
|
|
margin-bottom: 8rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券使用条件 */
|
|||
|
|
.coupon-condition {
|
|||
|
|
font-size: 22rpx;
|
|||
|
|
opacity: 0.9;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 右侧信息区域 */
|
|||
|
|
.coupon-right {
|
|||
|
|
flex: 1;
|
|||
|
|
padding: 26rpx 24rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 右侧信息区域 - 已失效 */
|
|||
|
|
.coupon-right.expired {
|
|||
|
|
color: #999999;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券名称 */
|
|||
|
|
.coupon-name {
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #333333;
|
|||
|
|
margin-bottom: 8rpx;
|
|||
|
|
width: 296rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券有效期 */
|
|||
|
|
.coupon-date {
|
|||
|
|
font-size: 22rpx;
|
|||
|
|
color: #333;
|
|||
|
|
margin-bottom: 10rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 优惠券使用范围 */
|
|||
|
|
.coupon-range {
|
|||
|
|
font-size: 22rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 领取按钮 */
|
|||
|
|
.coupon-btn {
|
|||
|
|
width: 136rpx;
|
|||
|
|
height: 60rpx;
|
|||
|
|
line-height: 56rpx;
|
|||
|
|
border-radius: 127px;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 去使用按钮 */
|
|||
|
|
.btn-use {
|
|||
|
|
color: #ffffff;
|
|||
|
|
@include linear-gradient(theme);
|
|||
|
|
}
|
|||
|
|
.btn-get{
|
|||
|
|
@include border_color(theme);
|
|||
|
|
@include main_color(theme);
|
|||
|
|
@include coupons_light_color(theme);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 已失效按钮 */
|
|||
|
|
.btn-expired {
|
|||
|
|
position: absolute;
|
|||
|
|
right: 20rpx;
|
|||
|
|
top: 50%;
|
|||
|
|
transform: translateY(-50%);
|
|||
|
|
background-color: #E0E0E0;
|
|||
|
|
color: #999999;
|
|||
|
|
padding: 12rpx 24rpx;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 没有更多提示 */
|
|||
|
|
.no-more {
|
|||
|
|
text-align: center;
|
|||
|
|
padding: 40rpx;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #999999;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 分隔线顶部半圆缺口 */
|
|||
|
|
.coupon-item::before {
|
|||
|
|
content: '';
|
|||
|
|
position: absolute;
|
|||
|
|
left: 205rpx;
|
|||
|
|
top: -10rpx;
|
|||
|
|
width: 30rpx;
|
|||
|
|
height: 30rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
z-index: 2;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 分隔线底部半圆缺口 */
|
|||
|
|
.coupon-item::after {
|
|||
|
|
content: '';
|
|||
|
|
position: absolute;
|
|||
|
|
left: 205rpx;
|
|||
|
|
bottom: -10rpx;
|
|||
|
|
width: 30rpx;
|
|||
|
|
height: 30rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
z-index: 2;
|
|||
|
|
/* 重置虚线属性,只保留半圆缺口样式 */
|
|||
|
|
top: auto;
|
|||
|
|
width: 30rpx;
|
|||
|
|
background-image: none;
|
|||
|
|
}
|
|||
|
|
</style>
|