<template>
|
|
<uv-popup ref="popup"
|
|
:round="30"
|
|
@change="$refs.couponPopup.close()"
|
|
bgColor="#f7f7f7">
|
|
<view class="content">
|
|
|
|
<!-- 地址 -->
|
|
<view class="address" @click="openAddress">
|
|
<image src="/static/image/address/selectIcon.png" mode=""></image>
|
|
<view>
|
|
{{ address.name }}
|
|
</view>
|
|
<view class="">
|
|
{{ address.addressDetail }}
|
|
</view>
|
|
<view class="icon">
|
|
<uv-icon size="30rpx" name="arrow-right"></uv-icon>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 优惠劵 -->
|
|
<!-- <view style="padding: 0 20rpx;
|
|
background-color: #fff;">
|
|
<uv-cell
|
|
icon="coupon"
|
|
title="优惠劵"
|
|
iconStyle="font-size: 34rpx;"
|
|
rightIconStyle="font-size: 34rpx;"
|
|
:value="couponText"
|
|
@click="$refs.couponPopup.open('bottom')"
|
|
isLink>
|
|
</uv-cell>
|
|
</view> -->
|
|
|
|
|
|
<view class="payInfoMessage">
|
|
<view style="font-weight: 900;">
|
|
下单说明:
|
|
</view>
|
|
<view class="">
|
|
租金:从物品确认收货开始计算¥{{ configList.depositPrice }}元/天
|
|
</view>
|
|
<view class="">
|
|
押金:将按照面积计算每平方厘米¥1元
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 费用明细 -->
|
|
<view class="expense-detail">
|
|
<view class="title">
|
|
费用明细
|
|
</view>
|
|
<view class="detail" v-if="price">
|
|
<view>
|
|
应付款:¥{{ price }}
|
|
</view>
|
|
<!-- <view v-if="depositPrice">
|
|
押金:¥{{ depositPrice }}
|
|
</view> -->
|
|
|
|
<view
|
|
:key="index"
|
|
v-for="(depositItem, index) in depositPriceList">
|
|
<view class="">
|
|
押金:¥{{ depositItem.price }}
|
|
</view>
|
|
<view class="">
|
|
x{{ depositItem.num }}
|
|
</view>
|
|
</view>
|
|
|
|
<!-- <view v-if="washPrice">
|
|
水洗费:¥{{ washPrice.toFixed(2) }}
|
|
</view> -->
|
|
|
|
<view
|
|
:key="index"
|
|
v-for="(washItem, index) in washPriceList">
|
|
<view class="">
|
|
水洗费:¥{{ washItem.price }}
|
|
</view>
|
|
<view class="">
|
|
x{{ washItem.num }}
|
|
</view>
|
|
</view>
|
|
|
|
<view v-if="rentPrice">
|
|
租金:¥{{ rentPrice }}
|
|
</view>
|
|
<view v-if="getPrice().coupon">
|
|
优惠:-¥{{ getPrice().coupon }}
|
|
</view>
|
|
<view v-if="getPrice().price">
|
|
实付款:¥{{ getPrice().price }}
|
|
</view>
|
|
</view>
|
|
|
|
<uv-cell
|
|
icon="coupon"
|
|
title="押金优惠"
|
|
v-if="coupon.couponFlag"
|
|
iconStyle="font-size: 34rpx;"
|
|
rightIconStyle="font-size: 34rpx;">
|
|
<template #value>
|
|
<view class="coupon">
|
|
满{{ coupon.couponCondition }}立减{{ coupon.couponPrice }}
|
|
</view>
|
|
</template>
|
|
</uv-cell>
|
|
|
|
<uv-cell
|
|
icon="coupon"
|
|
title="租金优惠"
|
|
v-if="coupon.leaseCouponFlag"
|
|
iconStyle="font-size: 34rpx;"
|
|
rightIconStyle="font-size: 34rpx;">
|
|
<template #value>
|
|
<view class="coupon">
|
|
满{{ coupon.leaseCouponCondition }}立减{{ coupon.leaseCouponPrice }}
|
|
</view>
|
|
</template>
|
|
</uv-cell>
|
|
</view>
|
|
|
|
<!-- 提交按钮 -->
|
|
<view class="submit-btn">
|
|
<view class="r" @click="orderPay">
|
|
{{ submiitTitle }}
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<uv-popup ref="couponPopup"
|
|
:round="30">
|
|
<couponList
|
|
ref="couponList"
|
|
height="60vh"
|
|
:depositPrice="depositPrice"
|
|
:washPrice="washPrice"
|
|
:rentPrice="rentPrice"
|
|
:useType="0"
|
|
@select="selectCoupon" />
|
|
</uv-popup>
|
|
|
|
<uv-popup ref="addressPopup" :round="30">
|
|
<addressList ref="addressList" height="60vh" @select="selectAddress" />
|
|
</uv-popup>
|
|
</uv-popup>
|
|
</template>
|
|
|
|
<script>
|
|
import addressList from '@/components/address/addressList.vue'
|
|
import couponList from './couponList.vue'
|
|
import { mapState } from 'vuex'
|
|
export default {
|
|
components: {
|
|
addressList,
|
|
couponList,
|
|
},
|
|
props: {
|
|
submiitTitle: {
|
|
default: '立即下单',
|
|
type: String,
|
|
},
|
|
price : {//总金额
|
|
default : 0
|
|
},
|
|
depositPrice: {//押金
|
|
default: 0
|
|
},
|
|
depositPriceList : {//押金列表
|
|
default: []
|
|
},
|
|
washPrice: {//水洗费
|
|
default: 0
|
|
},
|
|
washPriceList : {//水洗列表
|
|
default: []
|
|
},
|
|
rentPrice: {//租金
|
|
default: 0
|
|
},
|
|
},
|
|
computed : {
|
|
...mapState(['configList']),
|
|
},
|
|
data() {
|
|
return {
|
|
address: {
|
|
name: '请选择联系人',
|
|
addressDetail: '',
|
|
},
|
|
addressTotal: 0,
|
|
coupon : {
|
|
// price : 0,
|
|
},
|
|
couponText : '请选择',
|
|
}
|
|
},
|
|
methods: {
|
|
// 打开
|
|
open() {
|
|
this.$refs.popup.open('bottom')
|
|
// this.$refs.couponList.getData()
|
|
// this.$refs.couponPopup.close()
|
|
this.confCoupon()
|
|
|
|
// 获取地址列表
|
|
this.$refs.addressList.getAddressList().then(res => {
|
|
this.addressTotal = res.total
|
|
if (this.addressTotal != 0) {
|
|
this.address = res.records[0]
|
|
}
|
|
})
|
|
},
|
|
// 计算优惠金额
|
|
getPrice(){
|
|
// 减免押金
|
|
if(this.coupon.couponFlag &&
|
|
this.coupon.couponCondition <= this.depositPrice){
|
|
return {
|
|
coupon : this.coupon.couponPrice,
|
|
price : (this.price - this.coupon.couponPrice).toFixed(2),
|
|
}
|
|
}
|
|
// 减免租金
|
|
if(this.coupon.leaseCouponFlag &&
|
|
this.coupon.leaseCouponCondition <= this.rentPrice){
|
|
return {
|
|
coupon : this.coupon.leaseCouponPrice,
|
|
price : (this.price - this.coupon.leaseCouponPrice).toFixed(2),
|
|
}
|
|
}
|
|
|
|
return {}
|
|
},
|
|
// 选择优惠劵
|
|
selectCoupon(e){
|
|
this.couponText = e.couponName
|
|
this.coupon = e
|
|
this.$refs.couponPopup.close()
|
|
},
|
|
// 关闭
|
|
close() {
|
|
this.$refs.popup.close()
|
|
},
|
|
// 打开选择地址
|
|
openAddress() {
|
|
if (this.addressTotal == 0) {
|
|
this.$refs.popup.close()
|
|
return uni.navigateTo({
|
|
url: '/pages_order/mine/address?type=back'
|
|
})
|
|
}
|
|
this.$refs.addressPopup.open('bottom')
|
|
},
|
|
// 选择地址
|
|
selectAddress(e) {
|
|
this.address = e
|
|
this.$refs.addressPopup.close()
|
|
},
|
|
// 选择规格
|
|
selectUnit(item, index) {
|
|
this.unit = item
|
|
this.unitIndex = index
|
|
},
|
|
addCart() {
|
|
this.$api('cartAdd', {
|
|
id: this.detail.id,
|
|
skuId: this.unit.id,
|
|
}, res => {
|
|
if (res.code == 200) {
|
|
uni.showToast({
|
|
title: '添加成功',
|
|
});
|
|
this.$refs.popup.close()
|
|
}
|
|
})
|
|
},
|
|
orderPay() {
|
|
this.$emit('submit', {
|
|
addressId : this.address.id,
|
|
couponId : this.coupon.id
|
|
})
|
|
},
|
|
confCoupon(){
|
|
this.$api('confCoupon', res => {
|
|
if(res.code == 200){
|
|
this.coupon = res.result
|
|
}
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.content {
|
|
max-height: 80vh;
|
|
overflow: hidden;
|
|
overflow-y: auto;
|
|
padding-top: 30rpx;
|
|
|
|
.address {
|
|
display: flex;
|
|
padding: 20rpx;
|
|
background-color: #fff;
|
|
margin-bottom: 20rpx;
|
|
|
|
image {
|
|
width: 30rpx;
|
|
height: 30rpx;
|
|
margin: 20rpx;
|
|
}
|
|
|
|
view {
|
|
margin: 20rpx;
|
|
overflow: hidden; //超出的文本隐藏
|
|
text-overflow: ellipsis; //溢出用省略号显示
|
|
white-space: nowrap; //溢出不换行
|
|
}
|
|
|
|
.icon {
|
|
margin-left: auto;
|
|
}
|
|
}
|
|
|
|
.payInfoMessage{
|
|
line-height: 50rpx;
|
|
padding: 20rpx;
|
|
background-color: #fff;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.expense-detail {
|
|
padding: 30rpx;
|
|
background-color: #fff;
|
|
font-size: 28rpx;
|
|
|
|
.title {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.detail {
|
|
background-color: #F6F6F6;
|
|
color: #717171;
|
|
margin: 10rpx 0;
|
|
padding: 10rpx 20rpx;
|
|
line-height: 50rpx;
|
|
&>view{
|
|
display: flex;
|
|
// justify-content: space-between;
|
|
// gap: 20rpx;
|
|
}
|
|
}
|
|
.coupon{
|
|
text-align: center;
|
|
color: #5c5;
|
|
}
|
|
}
|
|
|
|
.submit-btn {
|
|
width: 600rpx;
|
|
height: 80rpx;
|
|
color: #fff;
|
|
border-radius: 40rpx;
|
|
font-size: 28rpx;
|
|
margin: 20rpx auto;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
border: 1rpx solid $uni-color;
|
|
overflow: hidden;
|
|
|
|
.l {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
color: $uni-color;
|
|
}
|
|
|
|
.r {
|
|
background: $uni-color;
|
|
flex: 1;
|
|
height: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
}
|
|
</style>
|