|
|
- <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 class="">
- {{ 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="expense-detail">
- <view class="title">
- 费用明细
- </view>
- <view class="detail" v-if="price">
- <view>
- 应付款:¥{{ price }}
- </view>
- <view v-if="depositPrice">
- 押金:¥{{ depositPrice }}
- </view>
- <view v-if="washPrice">
- 水洗费:¥{{ washPrice }}
- </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'
- export default {
- components: {
- addressList,
- couponList,
- },
- props: {
- submiitTitle: {
- default: '立即下单',
- type: String,
- },
- price : {//总金额
- default : 0
- },
- depositPrice: {//押金
- default: 0
- },
- washPrice: {//水洗费
- default: 0
- },
- rentPrice: {//租金
- default: 0
- },
- },
- 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;
- }
- }
-
- .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;
- }
- .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>
|