123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- <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>
|