|
|
<!-- 优惠劵详情 -->
|
|
|
<template>
|
|
|
<view class="page_box">
|
|
|
<!-- 标题栏 -->
|
|
|
<shopro-navbar back-icon-color="#fff" :background="{}" :backTextStyle="{ color: '#fff', fontSize: '36rpx', fontWeight: '500' }" backText="优惠券详情"></shopro-navbar>
|
|
|
<view class="content_box">
|
|
|
<scroll-view class="scroll-box" scroll-y="true" scroll-with-animation enable-back-to-top :scroll-into-view="scrollId" @scroll="onScroll">
|
|
|
<!-- 详情卡片 -->
|
|
|
<view class="coupon-box">
|
|
|
<view class="top u-flex-col u-col-center">
|
|
|
<view class="img-box u-flex u-row-center u-col-center"><image class="coupon-img" :src="$IMG_URL + '/imgs/coupon.png'" mode=""></image></view>
|
|
|
<view class="title">{{ couponDetail.amount || '0.00' }}元优惠券</view>
|
|
|
<view class="tip">满{{ couponDetail.enough || '0.00' }}元可用</view>
|
|
|
<button class="u-reset-button" :class="['can_use', 'can_get'].includes(btnStataus) || !btnStataus ? 'use-btn' : 'fail-btn'" @tap="goScroll">
|
|
|
{{ btnStatusText[btnStataus] || '立即领取' }}
|
|
|
</button>
|
|
|
<view class="time" v-if="couponDetail.usetime && couponDetail.usetime.start">
|
|
|
有效期:{{ $u.timeFormat(couponDetail.usetime.start, 'yyyy-mm-dd') }} 至 {{ $u.timeFormat(couponDetail.usetime.end, 'yyyy-mm-dd') }}
|
|
|
</view>
|
|
|
<view class="coupon-line"></view>
|
|
|
</view>
|
|
|
<view class="bottom">
|
|
|
<view class="notice-item">
|
|
|
<view class="notice-title">优惠券说明</view>
|
|
|
<view class="notice-detail">{{ couponDetail.description || '暂无说明~' }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<!-- 适用商品 -->
|
|
|
<view class="coupon-goods u-p-30" v-if="couponGoods.length">
|
|
|
<view class="coupon-goods-title" id="couponGoods">适用商品</view>
|
|
|
<view class="goods-list u-m-b-20 u-p-20" v-for="goods in couponGoods" :key="goods.id">
|
|
|
<shopro-mini-card
|
|
|
:image="goods.image"
|
|
|
:title="goods.title"
|
|
|
:subtitle="goods.subtitle"
|
|
|
:price="goods.price"
|
|
|
:originPrice="goods.original_price"
|
|
|
@click="$Router.push({ path: '/pages/goods/detail', query: { id: goods.id } })"
|
|
|
></shopro-mini-card>
|
|
|
</view>
|
|
|
</view>
|
|
|
</scroll-view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
export default {
|
|
|
components: {},
|
|
|
data() {
|
|
|
return {
|
|
|
couponDetail: {},
|
|
|
couponGoods: [],
|
|
|
scrollId: '',
|
|
|
nowTime: new Date().getTime(),
|
|
|
options: {},
|
|
|
btnStatusText: {
|
|
|
can_use: '立即使用',
|
|
|
used: '已使用',
|
|
|
expired: '已失效',
|
|
|
cannot_use: '暂不可用',
|
|
|
can_get: '立即领取',
|
|
|
cannot_get: '不可领取'
|
|
|
},
|
|
|
btnStataus: ''
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
|
onLoad() {
|
|
|
this.options = this.$Route.query;
|
|
|
this.getCouponDetail();
|
|
|
this.getCouponGoods();
|
|
|
},
|
|
|
methods: {
|
|
|
// 领取优惠劵
|
|
|
getCoupon() {
|
|
|
let that = this;
|
|
|
that.$http(
|
|
|
'coupons.get',
|
|
|
{
|
|
|
id: that.$Route.query.id
|
|
|
},
|
|
|
'领取中...'
|
|
|
).then(res => {
|
|
|
if (res.code === 1) {
|
|
|
this.options.userCouponId = res.data.id;
|
|
|
that.getCouponDetail();
|
|
|
that.$u.toast('领取成功')
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
// 优惠券详情
|
|
|
getCouponDetail() {
|
|
|
let that = this;
|
|
|
that.$http('coupons.detail', {
|
|
|
id: that.$Route.query.id,
|
|
|
user_coupons_id: that.options.userCouponId
|
|
|
}).then(res => {
|
|
|
if (res.code === 1) {
|
|
|
that.couponDetail = res.data;
|
|
|
if (res.data.status_code) {
|
|
|
this.btnStataus = res.data.status_code;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
// 适用商品
|
|
|
getCouponGoods() {
|
|
|
let that = this;
|
|
|
that.$http('coupons.goods', {
|
|
|
id: that.$Route.query.id
|
|
|
}).then(res => {
|
|
|
if (res.code === 1) {
|
|
|
that.couponGoods = res.data.data;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
onScroll() {
|
|
|
this.scrollId = '';
|
|
|
},
|
|
|
goScroll() {
|
|
|
if (!this.options.userCouponId) {
|
|
|
this.getCoupon();
|
|
|
} else {
|
|
|
if (this.couponDetail.goods_ids === '0' && this.btnStataus == 'can_use') {
|
|
|
this.$Router.push({
|
|
|
path: '/pages/goods/list'
|
|
|
});
|
|
|
}
|
|
|
this.scrollId = 'couponGoods';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
.page_box {
|
|
|
background: linear-gradient(180deg, rgba(240, 199, 133, 1), rgba(246, 214, 157, 1));
|
|
|
}
|
|
|
.coupon-box {
|
|
|
margin: 100rpx 30rpx 0;
|
|
|
border-radius: 20rpx;
|
|
|
background-color: #fff;
|
|
|
.top {
|
|
|
border-radius: 20rpx 20rpx 0 0;
|
|
|
background-image: radial-gradient(circle at bottom left, #f6d69d, #f6d69d 16rpx, transparent 17rpx),
|
|
|
radial-gradient(circle at bottom right, #f6d69d, #f6d69d 16rpx, transparent 17rpx);
|
|
|
padding: 110rpx 0 40rpx 0;
|
|
|
position: relative;
|
|
|
z-index: 5;
|
|
|
.coupon-line {
|
|
|
width: 95%;
|
|
|
border-bottom: 2rpx dashed #f3ce90;
|
|
|
position: absolute;
|
|
|
bottom: 0;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%);
|
|
|
z-index: 6;
|
|
|
}
|
|
|
.img-box {
|
|
|
width: 140rpx;
|
|
|
height: 140rpx;
|
|
|
border-radius: 50%;
|
|
|
background: #fff;
|
|
|
position: absolute;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%);
|
|
|
top: -70rpx;
|
|
|
.coupon-img {
|
|
|
width: 100rpx;
|
|
|
height: 100rpx;
|
|
|
}
|
|
|
}
|
|
|
.title {
|
|
|
font-size: 40rpx;
|
|
|
font-weight: bold;
|
|
|
line-height: 40rpx;
|
|
|
margin-bottom: 30rpx;
|
|
|
}
|
|
|
.tip {
|
|
|
font-size: 28rpx;
|
|
|
font-weight: 500;
|
|
|
margin-bottom: 50rpx;
|
|
|
}
|
|
|
.use-btn {
|
|
|
width: 386rpx;
|
|
|
line-height: 80rpx;
|
|
|
background: linear-gradient(90deg, rgba(240, 199, 133, 1), rgba(246, 214, 157, 1));
|
|
|
border-radius: 40rpx;
|
|
|
color: rgba(#fff, 0.9);
|
|
|
margin-bottom: 30rpx;
|
|
|
}
|
|
|
.fail-btn {
|
|
|
width: 386rpx;
|
|
|
line-height: 80rpx;
|
|
|
background: rgba(245, 245, 245, 1);
|
|
|
border-radius: 40rpx;
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
font-weight: 500;
|
|
|
color: rgba(188, 188, 188, 1);
|
|
|
margin-bottom: 30rpx;
|
|
|
}
|
|
|
.time {
|
|
|
color: #999;
|
|
|
font-size: 26rpx;
|
|
|
}
|
|
|
}
|
|
|
.bottom {
|
|
|
border-radius: 0 0 20rpx 20rpx;
|
|
|
background-image: radial-gradient(circle at top left, #f6d69d, #f6d69d 16rpx, transparent 17rpx),
|
|
|
radial-gradient(circle at top right, #f6d69d, #f6d69d 16rpx, transparent 17rpx);
|
|
|
padding: 40rpx 30rpx;
|
|
|
.notice-item {
|
|
|
border-bottom: 1rpx solid #eeeeee;
|
|
|
min-height: 90rpx;
|
|
|
width: 100%;
|
|
|
.notice-title {
|
|
|
font-weight: 500;
|
|
|
font-size: 26rpx;
|
|
|
}
|
|
|
.notice-detail {
|
|
|
font-size: 24rpx;
|
|
|
color: #666;
|
|
|
margin-top: 10rpx;
|
|
|
padding-bottom: 10rpx;
|
|
|
text-indent: 30rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
// 优惠券商品
|
|
|
.coupon-goods {
|
|
|
.coupon-goods-title {
|
|
|
font-size: 30rpx;
|
|
|
font-weight: bold;
|
|
|
height: 80rpx;
|
|
|
}
|
|
|
.goods-list {
|
|
|
background: #fff;
|
|
|
border-radius: 20rpx;
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
|