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.

163 lines
4.7 KiB

1 year ago
<template>
<view class="wanl-coupon">
<view class="edgeInsetTop"></view>
<view class="padding-bj bg-red text-black">
<view :class="coupon.type" class="item radius-bock" @tap="onDetails(coupon)" v-if="coupon">
<image :src="$wanlshop.appstc('/coupon/bg_coupon_3x.png')" class="coupon-bg"></image>
<image :src="$wanlshop.appstc('/coupon/img_couponcentre_received_3x.png')" class="coupon-sign" v-if="coupon_state"></image>
<view class="item-left">
<block v-if="coupon.type == 'reduction' || (coupon.type == 'vip' && coupon.usertype == 'reduction')">
<view class="colour">
<text class="text-price"></text>
<text class="price">{{Number(coupon.price)}}</text>
</view>
<view class="cu-tag wanl-gray-dark radius text-sm">
{{Number(coupon.limit)}}{{Number(coupon.price)}}
</view>
</block>
<block v-if="coupon.type == 'discount' || (coupon.type == 'vip' && coupon.usertype == 'discount')">
<view class="colour">
<text class="price">{{Number(coupon.discount)}}</text>
<text class="discount"></text>
</view>
<view class="cu-tag wanl-gray-dark radius text-sm">
{{Number(coupon.limit)}}{{Number(coupon.discount)}}
</view>
</block>
<block v-if="coupon.type == 'shipping'">
<view class="colour">
<text class="price">包邮</text>
</view>
<view class="cu-tag wanl-gray-dark radius text-sm">
{{Number(coupon.limit)}}元包邮
</view>
</block>
</view>
<view class="item-right padding-bj">
<view class="title">
<view class="cu-tag sm radius margin-right-xs tagstyle">
{{coupon.type_text}}
</view>
<text class="text-cut wanl-gray text-min">{{coupon.name}}</text>
</view>
<view class="content text-min">
<view class="wanl-gray">
<view>
<text class="wlIcon-dot"></text>当前页面所有商品可用
</view>
<block v-if="coupon.pretype == 'fixed'">
<view>
<text class="wlIcon-dot"></text>生效 {{coupon.startdate}}
</view>
<view>
<text class="wlIcon-dot"></text>结束 {{coupon.enddate}}
</view>
</block>
<block v-if="coupon.pretype == 'appoint'">
<view v-if="coupon.validity == 0">
<text class="wlIcon-dot"></text>未使用前 永久 有效
</view>
<view v-else>
<text class="wlIcon-dot"></text>领取后 {{coupon.validity}} 天有效
</view>
</block>
</view>
<view class="cu-btn sm round" @tap.stop="onReceive(coupon.id)" v-if="!coupon_state">
立即领取
</view>
</view>
</view>
</view>
</view>
<view class="">
<wanl-product :dataList="dataList"/>
</view>
</view>
</template>
<script>
export default {
data() {
return {
coupon_id: 0,
coupon_state: false,
coupon: null,
dataList: [],
reload: false, //判断是否上拉
total: 0, //数据量
current_page: 1, //当前页码
last_page: 1, //总页码
status: 'more',
contentText: {
contentdown: ' ',
contentrefresh: '加载中',
contentnomore: ''
}
}
},
onLoad(option) {
this.coupon_id = option.id;
this.coupon_state = option.state ? true : false;
this.loadData();
},
onPullDownRefresh() {
this.current_page = 1;
this.reload = true;
this.loadData();
},
onReachBottom() {
//判断是否最后一页
if (this.current_page >= this.last_page) {
this.status = 'noMore';
} else {
this.reload = false;
this.current_page = this.current_page + 1; //页码+1
this.status = 'loading';
this.loadData();
}
},
methods: {
//获取优惠券和商品列表
async loadData() {
this.$api.get({
url: '/wanlshop/coupon/apply',
data: {
id: this.coupon_id,
page: this.current_page
},
success: res => {
uni.stopPullDownRefresh();
this.coupon = res.coupon;
this.dataList = this.reload ? res.goods.data : this.dataList.concat(res.goods.data); //数据 追加
this.total = res.goods.total; //数据量
this.current_page = res.goods.current_page; //当前页码
this.last_page = res.goods.last_page; //总页码
this.status = res.goods.total == 0 ? 'noMore' : 'more';
}
});
},
// 领取优惠券
async onReceive(coupon_id) {
this.$api.post({
url: '/wanlshop/coupon/receive',
loadingTip: '领取中',
data: {
id: coupon_id
},
success: res => {
this.coupon_state = true;
this.$wanlshop.msg(res);
this.$store.commit('statistics/dynamic', {
coupon: this.$store.state.statistics.dynamic.coupon + 1
});
}
});
}
}
}
</script>
<style>
</style>