hwb0 3 жил өмнө
parent
commit
19eb906c37

+ 67 - 16
pages/prize/coupon.vue

@@ -16,20 +16,20 @@
 		<!-- 已使用 -->
 		<view class="prize-coupon">
 			<view class="prize-coupon-list">
-				<!-- <view class="flex prize-coupon-list-item">
-					<image src="../../static/logo.png" mode=""></image>
+				<view class="flex prize-coupon-list-item" v-for="(item, index) in list" :key="index">
+					<image :src="item.picUrl" mode="aspectFill"></image>
 					<view class="flex info">
 						<view class="flex desc">
-							<view class="title">200元代金券</view>
-							<view class="txt">使用期限:2022.03.02-2022.04.01</view>
-							<view class="txt">使用范围:星巴克xxx店</view>
+							<view class="title">{{ item.title }}</view>
+							<view class="txt">使用期限:{{ $parseTime(item.validStart, '{y}.{m}.{d}') }}-{{ $parseTime(item.validEnd, '{y}.{m}.{d}') }}</view>
+							<view class="txt">使用范围:{{ item.useAreaDesc }}</view>
 						</view>
 						<view class="flex btn">
-							<view class="amt"><text>¥</text>100</view>
+							<view class="amt"><text>¥</text>{{ item.discount / 100 }}</view>
 						</view>
-						<view class="state">已使用</view>
+						<view class="state">{{ item.status.desc }}</view>
 					</view>
-				</view> -->
+				</view>
 			</view>
 		</view>
 		<view class="flex empty" v-if="!list.length">
@@ -39,6 +39,8 @@
 </template>
 
 <script>
+	import env from '../../config/env.js'
+	import $http from '@/utils/request.js'
 	export default {
 		data() {
 			return {
@@ -47,25 +49,74 @@
 				}, {
 					name: '已过期',
 				}],
-				state: 0,
+				state: 2,
 				pageNum: 1,
 				total: 0,
 				list: [],
 			};
 		},
+		onShow() {
+			this.pageList()
+		},
 		methods: {
+			getList() {
+				let _this = this
+				let url = '/api/v1/mp/user/mine/coupon/list'
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.loading = true
+				$http.post(`${ url }?pageNum=${_this.pageNum}&pageSize=20`, {
+					status: this.state
+				}).then(res => {
+					uni.hideLoading();
+					this.loading = false
+					if (res.code == 0) {
+						res.rows.forEach(item => {
+							let picUrlArr = item.picUrl.split(',')
+							item.picUrl = env.filePublic + picUrlArr[0]
+							item.status = JSON.parse(item.status)
+						})
+						_this.total = res.total
+						_this.list = _this.list.concat(res.rows)
+					}
+				}).catch(() => {
+					uni.hideLoading();
+					this.loading = false
+				})
+			},
+			
+			pageList() {
+				this.pageNum = 1
+				this.list = []
+				this.getList()
+			},
+			
 			changeTab(e) {
 				if (e.index == 0) {
-					this.state = 0
+					this.state = 2
 				} else if (e.index == 1) {
-					this.state = 1
+					this.state = 3
 				}
+				this.pageList()
 			},
 
 			changeChecked() {
 
 			},
-		}
+		},
+		
+		onReachBottom() {
+			// 判断是否有数据
+			if (this.total > this.pageNum * 20) {
+				setTimeout(() => {
+					++this.pageNum
+					this.getList()
+				}, 500)
+			} else {
+				uni.$u.toast('没有更多数据了')
+			}
+		},
 	}
 </script>
 
@@ -133,10 +184,10 @@
 					right: 50rpx;
 					transform: rotate(20deg);
 					-webkit-transform:rotate(20deg);
-					width: 150rpx;
-					height: 150rpx;
-					line-height: 150rpx;
-					border: #E1E1E1 4px solid;
+					width: 160rpx;
+					height:160rpx;
+					line-height: 160rpx;
+					border: #E1E1E1 2px solid;
 					border-radius: 50%;
 					background-color: #f9f2ef;
 					text-align: center;

+ 13 - 1
pages/prize/index.vue

@@ -196,7 +196,19 @@
 					url: `/pages/order/settlement?ids=${ ids }`
 				})
 			},
-		}
+		},
+		
+		onReachBottom() {
+			// 判断是否有数据
+			if (this.total > this.pageNum * 20) {
+				setTimeout(() => {
+					++this.pageNum
+					this.getList()
+				}, 500)
+			} else {
+				uni.$u.toast('没有更多数据了')
+			}
+		},
 	}
 </script>