| <template> | |
| 	<scroll-view scroll-y="true" :style="{height: height}" @scrolltolower="loadMoreData"> | |
| 		<!-- 导航栏 --> | |
| 		<navbar title="优惠券" leftClick @leftClick="$utils.navigateBack" bgColor="#E3441A" color="#fff" /> | |
| 
 | |
| 		<!-- 优惠券筛选 --> | |
| 		<view class="tabs"> | |
| 			<uv-tabs :list="filtrationMenu" @click="hadleFiltrationMenuEvent" lineColor="#E3441A" | |
| 				:activeStyle="{ color : '#E3441A' }"></uv-tabs> | |
| 		</view> | |
| 
 | |
| 		<!-- 优惠券列表 --> | |
| 		<view class="list"> | |
| 			<view class="item" v-for="(item,index) in coupons" @click="select(item)" :key="index"> | |
| 				<image src="@/pages_order/static/coupon/coupon-bg.png" mode="widthFix" class="coupon-bg"></image> | |
| 
 | |
| 				<view class="item-con"> | |
| 					<view class="price-time"> | |
| 						<view class="price"> | |
| 							<view class="num"> | |
| 								<view class="icon"> | |
| 									¥ | |
| 								</view> | |
| 								{{ item.money }} | |
| 							</view> | |
| 						</view> | |
| 
 | |
| 						<view class="date-tiao"> | |
| 							<view class="time"> | |
| 								限{{ item.time || '不限' }} | |
| 							</view> | |
| 							<view class="tiao"> | |
| 								{{ item.tiaojian }} | |
| 							</view> | |
| 						</view> | |
| 					</view> | |
| 
 | |
| 					<view class="status"> | |
| 						<view class="order-status"> | |
| 							<image src="@/pages_order/static/coupon/status.png" mode="widthFix" class="status-img"> | |
| 							</image> | |
| 							<view class="text"> | |
| 								已领取 | |
| 							</view> | |
| 						</view> | |
| 
 | |
| 						<view class="surplus"> | |
| 							剩余28天过期 | |
| 						</view> | |
| 					</view> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 
 | |
| 		<uv-empty v-if="coupons.length == 0" text="空空如也" textSize="30rpx" iconSize="200rpx" icon="list"></uv-empty> | |
| 	</scroll-view> | |
| </template> | |
|  | |
| <script> | |
| 	import mixinList from '@/mixins/list.js' | |
| 	export default { | |
| 		name: "couponList", | |
| 		mixins: [mixinList], | |
| 		props: { | |
| 			height: { | |
| 				default: 'auto' | |
| 				// default : 'calc(90vh - 180rpx)' | |
| 			}, | |
| 			// 押金 | |
| 			depositPrice: {}, | |
| 			washPrice: { //水洗费 | |
| 			}, | |
| 			rentPrice: { //租金 | |
| 			}, | |
| 		}, | |
| 		data() { | |
| 			return { | |
| 				mixinsListApi: 'couponPage', | |
| 				filtrationMenu: [{ | |
| 					name: "全部优惠券" | |
| 				}, { | |
| 					name: "已使用优惠券" | |
| 				}, { | |
| 					name: "已过期优惠券" | |
| 				}], | |
| 				activefiltration: 0, | |
| 				coupons: [{ | |
| 					id: 1, | |
| 					money: 20, | |
| 					time: "12月20日-1月20日", | |
| 					tiaojian: "无门槛使用", | |
| 					state: 0, | |
| 					ex: "28" | |
| 				}] | |
| 			}; | |
| 		}, | |
| 		methods: { | |
| 			select(item) { | |
| 				if (this.isSelect(item)) { | |
| 					return | |
| 				} | |
| 				this.$emit('select', item) | |
| 			}, | |
| 			isSelect(item) { | |
|  | |
| 				if (!this.depositPrice && !this.rentPrice && !this.washPrice) { | |
| 					return false | |
| 				} | |
|  | |
| 				// 押金 | |
| 				if (this.depositPrice && | |
| 					item.useType == 0 && | |
| 					this.depositPrice >= item.conditionPrice) { | |
| 					return false | |
| 				} | |
|  | |
| 				// 租金 | |
| 				if (this.rentPrice && | |
| 					item.useType == 1 && | |
| 					this.rentPrice >= item.conditionPrice) { | |
| 					return false | |
| 				} | |
|  | |
| 				// 水洗 | |
| 				if (this.washPrice && | |
| 					item.useType == 2 && | |
| 					this.washPrice >= item.conditionPrice) { | |
| 					return false | |
| 				} | |
|  | |
| 				return true | |
| 			}, | |
|  | |
| 			//点击过滤菜单 | |
| 			hadleFiltrationMenuEvent(event) { | |
| 				this.activefiltration = event.index | |
| 			} | |
| 		} | |
| 	} | |
| </script> | |
|  | |
| <style scoped lang="scss"> | |
| 	// 优惠券筛选 | |
| 	.tabs { | |
| 		&::v-deep .uv-tabs__wrapper__nav { | |
| 			background: white; | |
| 
 | |
| 			.uv-tabs__wrapper__nav__item { | |
| 				width: 33.33%; | |
| 				text-align: center; | |
| 				box-sizing: border-box; | |
| 			} | |
| 		} | |
| 	} | |
| 
 | |
| 	.list { | |
| 
 | |
| 		.item { | |
| 			color: #FDDFCD; | |
| 			position: relative; | |
| 			width: calc(100% - 40rpx); | |
| 			height: 220rpx; | |
| 			background-size: 100% 100%; | |
| 			margin: 20rpx; | |
| 			box-sizing: border-box; | |
| 			padding: 30rpx; | |
| 
 | |
| 			.coupon-bg { | |
| 				width: 100%; | |
| 				position: absolute; | |
| 				left: 0rpx; | |
| 				top: 0rpx; | |
| 			} | |
| 
 | |
| 			.item-con { | |
| 				display: flex; | |
| 				align-items: center; | |
| 				flex-wrap: wrap; | |
| 				position: absolute; | |
| 				top: 50%; | |
| 				left: 0rpx; | |
| 				transform: translateY(-50%); | |
| 				z-index: 99; | |
| 				width: 100%; | |
| 
 | |
| 				.price-time { | |
| 					display: flex; | |
| 					width: 65%; | |
| 
 | |
| 					.price { | |
| 						display: flex; | |
| 						align-items: center; | |
| 
 | |
| 						.num { | |
| 							color: #FFF8E9; | |
| 							font-weight: 900; | |
| 							font-size: 70rpx; | |
| 							display: flex; | |
| 							align-items: flex-end; | |
| 
 | |
| 							.icon { | |
| 								color: #FFF8E9; | |
| 								width: 30rpx; | |
| 								height: 30rpx; | |
| 								display: flex; | |
| 								justify-content: center; | |
| 								align-items: center; | |
| 								font-size: 20rpx; | |
| 								border-radius: 14rpx; | |
| 								margin-bottom: 14rpx; | |
| 								margin-right: 10rpx; | |
| 							} | |
| 						} | |
| 					} | |
| 
 | |
| 					.date-tiao { | |
| 						display: flex; | |
| 						flex-direction: column; | |
| 						align-items: center; | |
| 						font-size: 24rpx; | |
| 						box-sizing: border-box; | |
| 						padding-left: 20rpx; | |
| 
 | |
| 						.time {} | |
| 
 | |
| 						.tiao { | |
| 							display: flex; | |
| 							justify-content: center; | |
| 							background: #FDE5BA; | |
| 							border-radius: 40rpx; | |
| 							color: #FF2E34; | |
| 							padding: 5rpx 20rpx; | |
| 							margin-top: 15rpx; | |
| 						} | |
| 					} | |
| 				} | |
| 
 | |
| 				.status { | |
| 					display: flex; | |
| 					flex-direction: column; | |
| 					align-items: center; | |
| 					justify-content: center; | |
| 					width: 35%; | |
| 					color: #FD4231; | |
| 					padding-top: 30rpx; | |
| 
 | |
| 					.order-status { | |
| 						position: relative; | |
| 						width: 180rpx; | |
| 
 | |
| 						.status-img { | |
| 							position: absolute; | |
| 							left: 0; | |
| 							width: 100%; | |
| 						} | |
| 						 | |
| 						.text { | |
| 							height: 90rpx; | |
| 							display: flex; | |
| 							justify-content: center; | |
| 							align-items: center; | |
| 							position: relative; | |
| 							z-index: 100; | |
| 							font-size: 34rpx; | |
| 							font-weight: bold; | |
| 						} | |
| 					} | |
| 
 | |
| 					.surplus { | |
| 						font-size: 22rpx; | |
| 						text-align: center; | |
| 						margin-top: 10rpx; | |
| 					} | |
| 				} | |
| 			} | |
| 		} | |
| 
 | |
| 		.del { | |
| 			position: absolute; | |
| 			top: 0; | |
| 			left: 0; | |
| 			width: 100%; | |
| 			height: 100%; | |
| 			background-color: #ffffff99; | |
| 			z-index: 99; | |
| 		} | |
| 	} | |
| </style> |