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.
high-mini/pages/user/mineCoupons/mineCoupons.vue

209 lines
10 KiB

<template>
<view>
<view class="topTabBar">
<view class="grid" v-for="(grid,tbIndex) in businType" :key="tbIndex" @click="showType(tbIndex)">
<view class="text" :class="[tbIndex==tabbarIndex?'on':'']">{{grid}}</view>
</view>
</view>
<view v-if="productList == '' " class="mart60 fotct font14 fcor666">
<image style="width: 100px;height: 100px;"
src="data:image/png;base64,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
</image>
<view class="mart10">暂无数据</view>
</view>
<view class="product-list mart20">
<view class="product" v-for="product in productList" :key="product.id"
@click="jumpMineCou(product.highCouponModel.id)">
<image mode="widthFix" :src="imageUrl+product.highCouponModel.couponImg"></image>
<view class="name">{{ product.highCouponModel.couponName }}</view>
<view class="info">
<view class="price">{{ product.highCouponModel.discountPrice}}</view>
<view class="slogan"
v-if="product.highCouponModel.discountPrice !== product.highCouponModel.salesPrice">
{{ product.highCouponModel.salesPrice}}</view>
</view>
</view>
</view>
<view class="loading-text" v-if="productList != '' ">{{ loadingText }}</view>
</view>
</template>
<script>
import {
getUserCouponList
} from "../../../Utils/Api.js"; //您的api路径
let app = getApp();
export default {
data() {
return {
businType: ['未使用', '已使用'],
tabbarIndex: 0,
imageUrl: app.globalData.imgUrl,
productList: [],
pageNum: 1,
pageSize: 10,
isNoMoreData: false,
loadingText: ''
}
},
onPageScroll(e) {
return;
//兼容iOS端下拉时顶部漂移
this.headerPosition = e.scrollTop >= 0 ? "fixed" : "absolute";
},
onLoad() {
this.getUserCouponList(1);
},
onReachBottom() {
this.getUserCouponList();
},
methods: {
showType(tbIndex) {
this.tabbarIndex = tbIndex;
if (this.tabbarIndex === 0) {
this.pageNum = 1;
this.productList = []
this.isNoMoreData = false;
this.getUserCouponList(1);
} else if (this.tabbarIndex === 1) {
this.pageNum = 1;
this.productList = []
this.isNoMoreData = false;
this.getUserCouponList(2);
}
},
jumpMineCou(item) {
uni.navigateTo({
url: '../../goods/coupon-details/coupon-details?id=' + item
})
},
//赠券卡券列表
getUserCouponList(item) {
uni.showLoading({
title: '加载中...'
})
if (this.isNoMoreData) {
uni.hideLoading()
this.loadingText = '到底了';
return false;
}
let pagenum = this.pageNum;
let params = {
pageNum: pagenum,
status: item,
pageSize: this.pageSize
}
getUserCouponList(params).then(res => {
if (res.return_code == '000000' && res.return_data.list != '') {
uni.hideLoading();
this.isNoMoreData = res.return_data.list.length == this.pageSize ? false : true;
this.pageNum = res.return_data.list.length == this.pageSize ? ++pagenum : pagenum;
this.productList = this.productList.concat(res.return_data.list);
} else {
this.productList = [];
uni.hideLoading()
}
})
}
}
}
</script>
<style lang="scss">
.loading-text {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 60upx;
color: #979797;
font-size: 24upx;
}
.topTabBar {
width: 100%;
background-color: #f8f8f8;
display: flex;
justify-content: space-around;
.grid {
width: 20%;
height: 80upx;
display: flex;
justify-content: center;
align-items: center;
color: #444;
font-size: 28upx;
.text {
height: 76upx;
display: flex;
align-items: center;
&.on {
color: #f06c7a;
border-bottom: solid 4upx #f06c7a;
}
}
}
}
.product-list {
width: 92%;
padding: 0 4% 3vw 4%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.product {
width: 48%;
border-radius: 20upx;
background-color: #fff;
margin: 0 0 15px 0;
box-shadow: 0upx 5upx 25upx rgba(0, 0, 0, 0.1);
image {
width: 100%;
border-radius: 20upx 20upx 0 0;
}
.name {
width: 92%;
padding: 10upx 4%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
text-align: justify;
overflow: hidden;
font-size: 30upx;
}
.info {
display: flex;
justify-content: space-between;
align-items: flex-end;
width: 92%;
padding: 10upx 4% 10upx 4%;
.price {
color: #e65339;
font-size: 30upx;
font-weight: 600;
}
.slogan {
color: #807c87;
font-size: 24upx;
text-decoration: line-through;
margin-right: 50px;
}
}
}
}
</style>