| <template> | |
| 	<view class="page"> | |
| 		<!-- 导航栏 --> | |
| 		<navbar title="优惠券" leftClick @leftClick="$utils.navigateBack" bgColor="#019245" color="#fff" /> | |
| 
 | |
| 		<!-- 标签页 --> | |
| 		<uv-sticky bgColor="#fff"> | |
| 			<uv-tabs :list="tabs" @change="changeTab" :scrollable="false" lineColor="#019245" | |
| 				:activeStyle="{color: '#019245' }" lineWidth="80" lineHeight="6" :inactiveStyle="{color: '#333'}" | |
| 				:itemStyle="{height: '90rpx'}" /> | |
| 		</uv-sticky> | |
| 
 | |
| 		<!-- 优惠券列表 --> | |
| 		<view class="coupon-list"> | |
| 			<template v-if="currentTab === 0"> | |
| 				<coupon-item v-for="coupon in unusedCoupons" :key="coupon.id" :coupon="coupon" @use="useCoupon" /> | |
| 				<uv-empty v-if="unusedCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx" | |
| 					style="padding-top: 100rpx;" icon="list" /> | |
|  | |
| 			</template> | |
|  | |
| 			<template v-if="currentTab === 1"> | |
| 				<coupon-item v-for="coupon in usedCoupons" :key="coupon.id" :coupon="coupon" /> | |
| 				<uv-empty v-if="usedCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx" | |
| 					style="padding-top: 100rpx;" icon="list" /> | |
| 			</template> | |
|  | |
| 			<template v-if="currentTab === 2"> | |
| 				<coupon-item v-for="coupon in expiredCoupons" :key="coupon.id" :coupon="coupon" /> | |
| 				<uv-empty v-if="expiredCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx" | |
| 					style="padding-top: 100rpx;" icon="list" /> | |
| 			</template> | |
| 		</view> | |
| 	</view> | |
| </template> | |
| 
 | |
| <script> | |
| import navbar from '@/components/base/navbar.vue' | |
| import CouponItem from '@/components/coupon/CouponItem.vue' | |
| import { unusedCoupons, usedCoupons, expiredCoupons } from '@/static/js/mockCoupon.js' | |
| 
 | |
| export default { | |
| 	components: { | |
| 		navbar, | |
| 		CouponItem | |
| 	}, | |
| 	data() { | |
| 		return { | |
| 			tabs: [ | |
| 				{ name: '未使用' }, | |
| 				{ name: '已使用' }, | |
| 				{ name: '已过期' } | |
| 			], | |
| 			currentTab: 0, | |
| 			unusedCoupons: [], | |
| 			usedCoupons: [], | |
| 			expiredCoupons: [] | |
| 		} | |
| 	}, | |
| 	onLoad() { | |
| 		// 从mock数据获取优惠券列表 | |
| 		this.unusedCoupons = unusedCoupons | |
| 		this.usedCoupons = usedCoupons | |
| 		// 暂时	没有已过期的优惠卷 | |
| 		// this.expiredCoupons = expiredCoupons 		 | |
| 		this.getCoupon() | |
| 	}, | |
| 	methods: { | |
| 		// 切换标签页 | |
| 		changeTab(item) { | |
| 			this.currentTab = item.index | |
| 		},	 | |
| 
 | |
| 		// 使用优惠券 | |
| 		useCoupon(coupon) { | |
| 			uni.showModal({ | |
| 				title: '提示', | |
| 				content: `确定使用面值${coupon.amount}元的优惠券吗?`, | |
| 				success: (res) => { | |
| 					// 模拟使用优惠券 | |
| 					uni.showLoading({ | |
| 						title: '使用中...' | |
| 					}) | |
| 					setTimeout(() => { | |
| 						uni.hideLoading() | |
| 						uni.showToast({ | |
| 							title: '使用成功', | |
| 							icon: 'success' | |
| 						}) | |
| 						setTimeout(() => { | |
| 							if (res.confirm) { | |
| 								this.$utils.navigateTo('/pages/order/index') | |
| 							} | |
| 						}, 1000) | |
| 					}, 1000) | |
| 				} | |
| 			}) | |
| 		}, | |
| 		// 获取优惠卷 | |
| 		getCoupon() { | |
| 			this.$api('queryCouponList', { | |
| 				pageNo: 1, | |
| 				pageSize: 10000 | |
| 			}, res => { | |
| 				if (res.code === 200){ | |
| 					console.log(res); | |
| 				} | |
| 			}) | |
| 		} | |
| 	} | |
| } | |
| </script> | |
| 
 | |
| <style lang="scss" scoped> | |
| .page { | |
| 	.tabs-container { | |
| 		.coupon-list { | |
| 			padding: 30rpx; | |
| 		} | |
| 		 | |
| 		.empty-tip { | |
| 			text-align: center; | |
| 			color: $uni-color-third; | |
| 			padding: 100rpx 0; | |
| 			font-size: 28rpx; | |
| 		} | |
| 	} | |
| } | |
| 
 | |
| 
 | |
| </style> |