<template> <view class="content"> <view class="order-item"> <scroll-view v-if="listStyle == 1" class="goods-box" scroll-x> <view v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex" class="goods-item"> <image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image> </view> </scroll-view> <view v-if="listStyle == 2" class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex"> <image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image> <view class="right"> <text class="title clamp">{{ goodsItem.productInfo.store_name }}</text> <text class="attr-box">{{ goodsItem.attrInfo ? goodsItem.attrInfo.suk : '' }} x {{ goodsItem.cart_num }}</text> <text class="price">{{ goodsItem.productInfo.price }}</text> </view> </view> </view> <view class="orderDetial"> <view class="row b-b flex"> <text class="tit">订单总价</text> <view class="input">¥{{ item.total_price }}</view> </view> <view class="row b-b flex"> <text class="tit">邮费</text> <view class="input">{{ item.pay_postage > 0 ? '¥' +item.pay_postage : '免邮费' }}</view> </view> <view class="row b-b flex" v-if="item.coupon_id > 0"> <text class="tit">优惠券</text> <view class="input">-¥{{ item.coupon_price }}</view> </view> <view class="row b-b flex" v-if="item.use_integral > 0"> <text class="tit">积分抵扣</text> <view class="input">-¥{{ item.use_integral }}</view> </view> <view class="row b-b flex"> <text class="tit ">实付</text> <view class="input payColor">¥{{ item.pay_price }}</view> </view> </view> <view class="row b-b"> <text class="tit">退款理由</text> <picker mode="selector" :range="value" @change="bindChange"> <view class="refund" v-if="refund">{{ refund || '请选择退款理由' }}</view> <view class="noRefund" v-else>请选择退款理由</view> </picker> </view> <view class="row b-b"> <text class="tit">备注说明</text> <input class="input" type="text" v-model="reason" placeholder="请填写备注" placeholder-class="placeholder" /> </view> <button class="add-btn" @click="confirm">提交</button> </view> </template> <script> import { refund, refundReason, orderDetail } from '@/api/order.js'; export default { data() { return { refund: '', //退款理由 reason: '', //备注 value: ['1', '2', '3', '4', '5', '6', '7', '8', 9, 10, 11, 12, 13], orderId: '', item: {}, listStyle: 2 }; }, onLoad(option) { this.orderId = option.id; this.refundReason(); this.loadOrder(); }, methods: { // 切换选中事件 bindChange(e) { this.refund = this.value[e.detail.value]; }, // 加载退款理由 refundReason() { refundReason({}).then(e => { this.value = e.data; }); }, loadOrder() { orderDetail({}, this.orderId).then(e => { this.item = e.data; }); }, //提交 confirm() { let obj = this; if (!obj.refund) { uni.showModal({ title: '错误', content: '请填写退货理由', showCancel: false }); return false; } refund({ text: obj.refund, uni: obj.orderId, refund_reason_wap_explain: obj.reason }).then(function(e) { uni.showToast({ title:'提交成功', duration:1500 }) }); } } }; </script> <style lang="scss"> page { background: $page-color-base; padding-top: 16rpx; } .orderDetial { .row { .input { text-align: right; } } } .row { display: flex; align-items: center; position: relative; padding: 0 30rpx; height: 110rpx; background: #fff; .refund { font-size: 30rpx; color: $font-color-dark; } .noRefund { font-size: 30rpx; color: $font-color-light; padding-left: 20rpx; } .tit { flex-shrink: 0; width: 120rpx; font-size: 30rpx; color: $font-color-dark; } .input { flex: 1; font-size: 30rpx; color: $font-color-dark; padding-left: 20rpx; &.payColor { color: $color-red; } } .iconlocation { font-size: 36rpx; color: $font-color-light; } } .add-btn { display: flex; align-items: center; justify-content: center; width: 690rpx; height: 80rpx; margin: 60rpx auto; font-size: $font-lg; color: #fff; background-color: $base-color; border-radius: 10rpx; // box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4); } /* 多条商品 */ .order-item { display: flex; flex-direction: column; padding-left: 30rpx; background: #fff; margin-top: 16rpx; .goods-box { height: 160rpx; padding: 20rpx 0; white-space: nowrap; .goods-item { width: 120rpx; height: 120rpx; display: inline-block; margin-right: 24rpx; } .goods-img { display: block; width: 100%; height: 100%; } } /* 单条商品 */ .goods-box-single { display: flex; padding: 20rpx 0; .goods-img { display: block; width: 120rpx; height: 120rpx; } .right { flex: 1; display: flex; flex-direction: column; padding: 0 30rpx 0 24rpx; overflow: hidden; .title { font-size: $font-base + 2rpx; color: $font-color-dark; line-height: 1; } .attr-box { font-size: $font-sm + 2rpx; color: $font-color-light; padding: 10rpx 12rpx; } .price { font-size: $font-base + 2rpx; color: $font-color-dark; &:before { content: '¥'; font-size: $font-sm; margin: 0 2rpx 0 8rpx; } } } } } </style>