mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 04:08:43 +08:00 
			
		
		
		
	
		
			
	
	
		
			220 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			220 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						|||
| 
								 | 
							
								  <view class="container">
							 | 
						|||
| 
								 | 
							
								    <!-- 收货地址选择 -->
							 | 
						|||
| 
								 | 
							
								    <yd-address-select :address="address"></yd-address-select>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <!-- 订单商品信息 -->
							 | 
						|||
| 
								 | 
							
								    <view class="checkout-goods">
							 | 
						|||
| 
								 | 
							
								      <yd-order-goods :goods-list="checkoutList"></yd-order-goods>
							 | 
						|||
| 
								 | 
							
								    </view>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <view class="freight-coupon-box">
							 | 
						|||
| 
								 | 
							
								      <vidw class="box-row">
							 | 
						|||
| 
								 | 
							
								        <view class="title">运费</view>
							 | 
						|||
| 
								 | 
							
								        <yd-text-price class="freight-fee" size="15" :price="freightAmount"></yd-text-price>
							 | 
						|||
| 
								 | 
							
								      </vidw>
							 | 
						|||
| 
								 | 
							
								      <vidw class="box-row">
							 | 
						|||
| 
								 | 
							
								        <view class="coupon-wrap">
							 | 
						|||
| 
								 | 
							
								          <view class="coupon-title-tag">
							 | 
						|||
| 
								 | 
							
								            <view class="title">优惠券</view>
							 | 
						|||
| 
								 | 
							
								            <scroll-view class="coupon-tag-list" scroll-x="true">
							 | 
						|||
| 
								 | 
							
								              <view v-for="item in couponList" :key="item.couponId" class="coupon-tag-item">{{ item.couponTag }}</view>
							 | 
						|||
| 
								 | 
							
								            </scroll-view>
							 | 
						|||
| 
								 | 
							
								          </view>
							 | 
						|||
| 
								 | 
							
								          <yd-text-price class="coupon-fee" color="red" size="15" symbol="-¥" :price="couponAmount"></yd-text-price>
							 | 
						|||
| 
								 | 
							
								        </view>
							 | 
						|||
| 
								 | 
							
								        <u-icon name="arrow-right"></u-icon>
							 | 
						|||
| 
								 | 
							
								      </vidw>
							 | 
						|||
| 
								 | 
							
								    </view>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <!-- 订单备注信息 -->
							 | 
						|||
| 
								 | 
							
								    <view class="user-remark-box">
							 | 
						|||
| 
								 | 
							
								      <view class="title">订单备注</view>
							 | 
						|||
| 
								 | 
							
								      <u--input maxlength="50" border="none" fontSize="14" v-model="remark" placeholder="如您需要请备注"></u--input>
							 | 
						|||
| 
								 | 
							
								    </view>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <view class="cart-btn-container">
							 | 
						|||
| 
								 | 
							
								      <view class="order-total-wrap">
							 | 
						|||
| 
								 | 
							
								        <view class="order-total-info">
							 | 
						|||
| 
								 | 
							
								          <view class="info-text">合计:</view>
							 | 
						|||
| 
								 | 
							
								          <view>
							 | 
						|||
| 
								 | 
							
								            <yd-text-price color="red" size="15" intSize="20" :price="totalAmount"></yd-text-price>
							 | 
						|||
| 
								 | 
							
								          </view>
							 | 
						|||
| 
								 | 
							
								        </view>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        <view class="cart-btn-group">
							 | 
						|||
| 
								 | 
							
								          <u-button style="margin-left: 10px" class="main-btn" type="primary" shape="circle" size="small" text="提交订单" @click="handleSubmitOrder"></u-button>
							 | 
						|||
| 
								 | 
							
								        </view>
							 | 
						|||
| 
								 | 
							
								      </view>
							 | 
						|||
| 
								 | 
							
								      <u-safe-bottom customStyle="background: #ffffff"></u-safe-bottom>
							 | 
						|||
| 
								 | 
							
								    </view>
							 | 
						|||
| 
								 | 
							
								  </view>
							 | 
						|||
| 
								 | 
							
								</template>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
								import { checkoutCartProduct } from '../../api/order'
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								export default {
							 | 
						|||
| 
								 | 
							
								  components: {},
							 | 
						|||
| 
								 | 
							
								  data() {
							 | 
						|||
| 
								 | 
							
								    return {
							 | 
						|||
| 
								 | 
							
								      checkedProduct: [],
							 | 
						|||
| 
								 | 
							
								      address: {
							 | 
						|||
| 
								 | 
							
								        name: '客户',
							 | 
						|||
| 
								 | 
							
								        mobile: '139****6563',
							 | 
						|||
| 
								 | 
							
								        area: 'XXX市XXX区',
							 | 
						|||
| 
								 | 
							
								        detail: 'XXX街道XXX小区XXX号楼XX-XXX'
							 | 
						|||
| 
								 | 
							
								      },
							 | 
						|||
| 
								 | 
							
								      checkoutList: [],
							 | 
						|||
| 
								 | 
							
								      couponList: [
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								          couponId: 3,
							 | 
						|||
| 
								 | 
							
								          couponTag: '6元运费券'
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      ],
							 | 
						|||
| 
								 | 
							
								      totalAmount: 0,
							 | 
						|||
| 
								 | 
							
								      freightAmount: 6,
							 | 
						|||
| 
								 | 
							
								      couponAmount: 6,
							 | 
						|||
| 
								 | 
							
								      remark: ''
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  },
							 | 
						|||
| 
								 | 
							
								  onLoad(e) {
							 | 
						|||
| 
								 | 
							
								    const checkedProduct = e.checkedProduct
							 | 
						|||
| 
								 | 
							
								    if (checkedProduct) {
							 | 
						|||
| 
								 | 
							
								      this.checkedProduct = JSON.parse(checkedProduct)
							 | 
						|||
| 
								 | 
							
								      this.loadCheckoutProductData()
							 | 
						|||
| 
								 | 
							
								    } else {
							 | 
						|||
| 
								 | 
							
								      uni.$u.toast('请求参数错误')
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  },
							 | 
						|||
| 
								 | 
							
								  methods: {
							 | 
						|||
| 
								 | 
							
								    loadCheckoutProductData() {
							 | 
						|||
| 
								 | 
							
								      checkoutCartProduct(this.checkedProduct)
							 | 
						|||
| 
								 | 
							
								        .then(res => {
							 | 
						|||
| 
								 | 
							
								          this.checkoutList = res.data.checkoutList || []
							 | 
						|||
| 
								 | 
							
								          this.totalAmount = res.data.totalAmount || 0
							 | 
						|||
| 
								 | 
							
								        })
							 | 
						|||
| 
								 | 
							
								        .catch(err => {
							 | 
						|||
| 
								 | 
							
								          console.log(err)
							 | 
						|||
| 
								 | 
							
								        })
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								</script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<style lang="scss" scoped>
							 | 
						|||
| 
								 | 
							
								.container {
							 | 
						|||
| 
								 | 
							
								  background-color: $custom-bg-color;
							 | 
						|||
| 
								 | 
							
								  height: 100vh;
							 | 
						|||
| 
								 | 
							
								  overflow-x: scroll;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								.checkout-goods {
							 | 
						|||
| 
								 | 
							
								  background-color: #fff;
							 | 
						|||
| 
								 | 
							
								  margin-top: 20rpx;
							 | 
						|||
| 
								 | 
							
								  padding: 20rpx;
							 | 
						|||
| 
								 | 
							
								  border-radius: 20rpx;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								.freight-coupon-box {
							 | 
						|||
| 
								 | 
							
								  background-color: #fff;
							 | 
						|||
| 
								 | 
							
								  margin-top: 20rpx;
							 | 
						|||
| 
								 | 
							
								  padding: 20rpx 30rpx;
							 | 
						|||
| 
								 | 
							
								  border-radius: 20rpx;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  .box-row {
							 | 
						|||
| 
								 | 
							
								    @include flex-space-between;
							 | 
						|||
| 
								 | 
							
								    padding: 10rpx 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .coupon-wrap {
							 | 
						|||
| 
								 | 
							
								      @include flex-space-between;
							 | 
						|||
| 
								 | 
							
								      width: 670rpx;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      .coupon-title-tag {
							 | 
						|||
| 
								 | 
							
								        @include flex-left;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .coupon-tag-list {
							 | 
						|||
| 
								 | 
							
								          @include flex-left;
							 | 
						|||
| 
								 | 
							
								          overflow-x: scroll;
							 | 
						|||
| 
								 | 
							
								          width: 360rpx;
							 | 
						|||
| 
								 | 
							
								          .coupon-tag-item {
							 | 
						|||
| 
								 | 
							
								            display: inline-block;
							 | 
						|||
| 
								 | 
							
								            font-size: 22rpx;
							 | 
						|||
| 
								 | 
							
								            color: red;
							 | 
						|||
| 
								 | 
							
								            border: 1rpx solid red;
							 | 
						|||
| 
								 | 
							
								            padding: 1px 6rpx;
							 | 
						|||
| 
								 | 
							
								            margin-right: 10rpx;
							 | 
						|||
| 
								 | 
							
								            border-radius: 5rpx;
							 | 
						|||
| 
								 | 
							
								          }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .title {
							 | 
						|||
| 
								 | 
							
								      font-weight: 700;
							 | 
						|||
| 
								 | 
							
								      font-size: 30rpx;
							 | 
						|||
| 
								 | 
							
								      color: #333;
							 | 
						|||
| 
								 | 
							
								      margin-right: 30rpx;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .freight-fee {
							 | 
						|||
| 
								 | 
							
								      margin-right: 50rpx;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .coupon-fee {
							 | 
						|||
| 
								 | 
							
								      margin-right: 20rpx;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								.user-remark-box {
							 | 
						|||
| 
								 | 
							
								  @include flex-space-between;
							 | 
						|||
| 
								 | 
							
								  background-color: #fff;
							 | 
						|||
| 
								 | 
							
								  margin-top: 20rpx;
							 | 
						|||
| 
								 | 
							
								  padding: 30rpx;
							 | 
						|||
| 
								 | 
							
								  border-radius: 20rpx;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  .title {
							 | 
						|||
| 
								 | 
							
								    font-weight: 700;
							 | 
						|||
| 
								 | 
							
								    font-size: 30rpx;
							 | 
						|||
| 
								 | 
							
								    color: #333;
							 | 
						|||
| 
								 | 
							
								    margin-right: 30rpx;
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								.cart-btn-container {
							 | 
						|||
| 
								 | 
							
								  position: fixed;
							 | 
						|||
| 
								 | 
							
								  bottom: 0;
							 | 
						|||
| 
								 | 
							
								  left: 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  .order-total-wrap {
							 | 
						|||
| 
								 | 
							
								    background: $custom-bg-color;
							 | 
						|||
| 
								 | 
							
								    border-top: $custom-border-style;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    width: 750rpx;
							 | 
						|||
| 
								 | 
							
								    @include flex-space-between();
							 | 
						|||
| 
								 | 
							
								    height: 100rpx;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .order-total-info {
							 | 
						|||
| 
								 | 
							
								      @include flex-left;
							 | 
						|||
| 
								 | 
							
								      .info-text {
							 | 
						|||
| 
								 | 
							
								        margin-left: 20rpx;
							 | 
						|||
| 
								 | 
							
								        font-size: 26rpx;
							 | 
						|||
| 
								 | 
							
								        font-weight: bold;
							 | 
						|||
| 
								 | 
							
								        color: #666666;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .cart-btn-group {
							 | 
						|||
| 
								 | 
							
								      @include flex-right();
							 | 
						|||
| 
								 | 
							
								      width: 360rpx;
							 | 
						|||
| 
								 | 
							
								      padding-right: 10px;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      .btn-gap {
							 | 
						|||
| 
								 | 
							
								        width: 20rpx;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								</style>
							 |