| @ -0,0 +1,334 @@ | |||
| <template> | |||
| <uv-popup ref="popup" | |||
| :round="30" | |||
| 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="totalPrice"> | |||
| <view> | |||
| 应付款:¥{{ totalPrice }} | |||
| </view> | |||
| <view> | |||
| <view class=""> | |||
| 配送费 | |||
| </view> | |||
| <view class=""> | |||
| </view> | |||
| <view class=""> | |||
| ¥{{ priceMap.pei_money }} | |||
| </view> | |||
| </view> | |||
| <view | |||
| :key="index" | |||
| v-for="(item, index) in priceList"> | |||
| <view class=""> | |||
| {{ item.title }} | |||
| </view> | |||
| <view class=""> | |||
| ¥{{ item.price }} | |||
| </view> | |||
| <view class=""> | |||
| x{{ item.num }} | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </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 '../../address/addressList.vue' | |||
| // import couponList from './couponList.vue' | |||
| import { mapState } from 'vuex' | |||
| export default { | |||
| components: { | |||
| addressList, | |||
| // couponList, | |||
| }, | |||
| props: { | |||
| submiitTitle: { | |||
| default: '立即下单', | |||
| type: String, | |||
| }, | |||
| totalPrice : {//总金额 | |||
| default : 0 | |||
| }, | |||
| priceList : {//商品列表 | |||
| default : [] | |||
| }, | |||
| }, | |||
| computed : { | |||
| ...mapState(['configList', 'priceMap']), | |||
| }, | |||
| 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.$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() | |||
| }, | |||
| orderPay() { | |||
| this.$emit('submit', { | |||
| addressId : this.address.id, | |||
| couponId : this.coupon.id | |||
| }) | |||
| }, | |||
| } | |||
| } | |||
| </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; | |||
| &>view{ | |||
| &:nth-child(1){ | |||
| flex: 4; | |||
| overflow:hidden; //超出的文本隐藏 | |||
| text-overflow:ellipsis; //溢出用省略号显示 | |||
| white-space:nowrap; //溢出不换行 | |||
| } | |||
| &:nth-child(2){ | |||
| flex: 2; | |||
| text-align: right; | |||
| } | |||
| &:nth-child(3){ | |||
| text-align: right; | |||
| flex: 1; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .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> | |||