You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
267 lines
7.8 KiB
267 lines
7.8 KiB
9 months ago
|
<template>
|
||
|
<view class="orderDetails-body">
|
||
|
<view class="orderDetails-header flex jw ac">
|
||
|
<text class="orderType">{{orderData.statusMerge}}</text>
|
||
|
<text class="orderTime" v-if="orderData.statusMerge=='已完成'">完成时间:{{orderData.createTime}}</text>
|
||
|
<text style="font-size: 36rpx;color: #333333;font-weight: 600;" v-if="orderData.statusMerge=='待核销'">
|
||
|
提货码:
|
||
|
<text style="color: #F83D3D;font-weight: 600;">{{orderData.takeCode}}</text>
|
||
|
</text>
|
||
|
</view>
|
||
|
<view class="orderDetails-center">
|
||
|
<view class="orderDetails-center-header">自提油站:</view>
|
||
|
<view class="orderDetails-center-site">
|
||
|
<view class="siteName">{{orderData.takeSiteName}}</view>
|
||
|
<view class="address textov">{{orderData.takeSiteAddress}}100米处</view>
|
||
|
<!-- <view>
|
||
|
<text class="juli">距离:12.8KM</text>
|
||
|
</view> -->
|
||
|
</view>
|
||
|
<view v-for="item in orderData.mallOrderInfoDetails" class="orderDetails-product flex ac">
|
||
|
<view class="orderDetails-product-img">
|
||
|
<image :src="item.oderDetailImg" mode="aspectFit" style="width: 100%;height: 100%;"></image>
|
||
|
</view>
|
||
|
<view class="orderDetails-product-right">
|
||
|
<view class="name">{{item.productName}}</view>
|
||
|
<view class="gg">规格:默认</view>
|
||
|
<view class="gg">{{item.marketPrice}} X{{item.orderNum}}</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="orderDetails-message">
|
||
|
<view class="orderDetails-message-row flex jw ">
|
||
|
<text>订单编号:</text>
|
||
|
<text>{{orderData.orderCode}}</text>
|
||
|
</view>
|
||
|
<view class="orderDetails-message-row flex jw ">
|
||
|
<text>下单时间:</text>
|
||
|
<text>{{orderData.createTime}}</text>
|
||
|
</view>
|
||
|
<!-- <view class="orderDetails-message-row flex jw ">
|
||
|
<text>站点电话:</text>
|
||
|
<text>{{}}</text>
|
||
|
</view> -->
|
||
|
<view class="orderDetails-message-row flex jw">
|
||
|
<text>支付方式:</text>
|
||
|
<text>积分</text>
|
||
|
</view>
|
||
|
<view class="orderDetails-message-row flex jw">
|
||
|
<text>商品金额:</text>
|
||
|
<text>{{orderData.marketPrice}}</text>
|
||
|
</view>
|
||
|
<view class="orderDetails-message-row flex jw ">
|
||
|
<text>支付积分:</text>
|
||
|
<text>{{orderData.integral}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view v-if="orderData.statusMerge=='待核销'" @click="cancelOrder" class="orderDetails-button-qx">
|
||
|
取消订单
|
||
|
</view>
|
||
|
<view v-if="orderData.statusMerge=='已核销'" @click="$refs.popup.open('bottom')" class="orderDetails-button-qx">
|
||
|
申请退款
|
||
|
</view>
|
||
|
<uni-popup @change="popupChange" :safe-area="false" ref="popup" type="bottom">
|
||
|
<view class="refundment-body">
|
||
|
<view class="refundment-form ">
|
||
|
<view class="refundment-form-row-container oneflex">
|
||
|
<view @click="$refs.type.open('bottom')" class="refundment-form-row flex">
|
||
|
<view class="refundment-form-row-label oneflex">退款类型</view>
|
||
|
<view class="refundment-form-row-right ">
|
||
|
<text style="color: #999999;font-size: 28rpx; margin-right: 10rpx;"
|
||
|
v-if="refundType">{{ selects[refundType].label }}</text>
|
||
|
<uni-icons type="right" size="16" color="#999999"></uni-icons>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view @click="$refs.reason.open('bottom')" class="refundment-form-row flex">
|
||
|
<view class="refundment-form-row-label oneflex">退款原因</view>
|
||
|
<view class="refundment-form-row-right ">
|
||
|
<text style="color: #999999;font-size: 28rpx; margin-right: 10rpx;"
|
||
|
v-if="refundMark">{{ refundMark }}</text>
|
||
|
<uni-icons type="right" size="16" color="#999999"></uni-icons>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="refundment-form-row flex">
|
||
|
<view class="refundment-form-row-label oneflex">可退积分</view>
|
||
|
<view class="refundment-form-row-right ">
|
||
|
<text style="margin-right: 20px;">{{orderData.integral}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view @click="refundOrder" class="refundment-form-button flex jc">
|
||
|
提交
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-popup>
|
||
|
<uni-popup :safe-area="false" ref="type" type="bottom">
|
||
|
<view class="select-body">
|
||
|
<view class="select-title">退款类型</view>
|
||
|
<view @click="refundType=item.value" v-for="(item,index) in selects" :key="index"
|
||
|
class="select-item-container">
|
||
|
<view class="select-item flex">
|
||
|
<view class="select-item-left oneflex">{{item.label}}</view>
|
||
|
<view class="select-item-right">
|
||
|
<radio style="transform:scale(0.7)" :value="item.value" color="#F83D3D"
|
||
|
:checked="refundType===item.value" />
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view @click="$refs.type.close()" class="select-button flex jc">
|
||
|
关闭
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-popup>
|
||
|
<uni-popup :safe-area="false" ref="reason" type="bottom">
|
||
|
<view class="select-body">
|
||
|
<view class="select-title">退款原因</view>
|
||
|
<view @click="refundMark=item.value" v-for="(item,index) in refundMarks" :key="index"
|
||
|
class="select-item-container">
|
||
|
<view class="select-item flex">
|
||
|
<view class="select-item-left oneflex">{{item.label}}</view>
|
||
|
<view class="select-item-right">
|
||
|
<radio style="transform:scale(0.7)" :value="item.value" color="#F83D3D"
|
||
|
:checked="refundMark===item.value" />
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view @click="$refs.reason.close()" class="select-button flex jc">
|
||
|
关闭
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-popup>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import orderApi from "@/api/order.js";
|
||
|
|
||
|
export default {
|
||
|
data() {
|
||
|
return {
|
||
|
isRefundment: false,
|
||
|
refundMark: "",
|
||
|
refundType: "",
|
||
|
selects: [{
|
||
|
label: "退货退款",
|
||
|
value: "0"
|
||
|
},
|
||
|
{
|
||
|
label: "仅退款",
|
||
|
value: "1"
|
||
|
}
|
||
|
],
|
||
|
refundMarks: [{
|
||
|
label: "质量问题",
|
||
|
value: "质量问题"
|
||
|
},
|
||
|
{
|
||
|
label: "不想要了",
|
||
|
value: "不想要了"
|
||
|
},
|
||
|
{
|
||
|
label: "缺货",
|
||
|
value: "缺货"
|
||
|
}
|
||
|
],
|
||
|
orderData: {
|
||
|
takeSiteName: "",
|
||
|
takeSiteAddress: "",
|
||
|
createTime: "",
|
||
|
orderStatus: "",
|
||
|
mallOrderInfoDetails: []
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
filters: {
|
||
|
orderStatus(e) {
|
||
|
switch (Number(e)) {
|
||
|
case 1:
|
||
|
return '待核销'
|
||
|
case 2:
|
||
|
return '已核销'
|
||
|
case 3:
|
||
|
return '已完成'
|
||
|
case 0:
|
||
|
return '待支付'
|
||
|
case -1:
|
||
|
return '已取消'
|
||
|
default:
|
||
|
return '数据错误'
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
onLoad(e) {
|
||
|
if (e.id) {
|
||
|
this.getOrderDetails(e.id)
|
||
|
}
|
||
|
console.log(e)
|
||
|
},
|
||
|
watch: {
|
||
|
isRefundment(n) {
|
||
|
if (!n) {
|
||
|
this.refundType = "";
|
||
|
this.refundMark = "";
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
popupChange({
|
||
|
show
|
||
|
}) {
|
||
|
this.isRefundment = show;
|
||
|
console.log(show, "showshow")
|
||
|
},
|
||
|
refundOrder() {
|
||
|
if (this.refundType === "" || this.refundMark === "") {
|
||
|
uni.showToast({
|
||
|
title: "请选择相关信息",
|
||
|
icon: "none"
|
||
|
})
|
||
|
return
|
||
|
}
|
||
|
orderApi.refundOrder({
|
||
|
"id": this.orderData.id,
|
||
|
"refundType": this.refundType, //0 退货退款 1仅退款 【必填】
|
||
|
"refundMark": this.refundMark
|
||
|
}).then(res => {
|
||
|
if (res.code == 20000) {
|
||
|
this.$refs.popup.close();
|
||
|
this.getOrderDetails(this.orderData.id)
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
cancelOrder() {
|
||
|
let that = this
|
||
|
uni.showModal({
|
||
|
title: "订单取消",
|
||
|
content: "是否确定取消",
|
||
|
success(result) {
|
||
|
if (result.confirm) {
|
||
|
orderApi.cancelOrder({
|
||
|
"id": that.orderData.id,
|
||
|
"createSource": "MALL_COMS_MINI"
|
||
|
}).then(res => {
|
||
|
if (res.code == 20000) {
|
||
|
that.getOrderDetails(that.orderData.id)
|
||
|
}
|
||
|
})
|
||
|
} else if (result.cancel) {
|
||
|
console.log('用户点击取消');
|
||
|
}
|
||
|
|
||
|
}
|
||
|
})
|
||
|
|
||
|
},
|
||
|
getOrderDetails(id) {
|
||
|
orderApi.getOrderInfo(id).then(res => {
|
||
|
res.code == 20000 && (this.orderData = res.data)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped lang="scss">
|
||
|
@import 'index.scss';
|
||
|
</style>
|