mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-13 18:45:06 +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>
|