|
|
@ -0,0 +1,288 @@ |
|
|
|
<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> |