|
|
|
@ -87,8 +87,8 @@ |
|
|
|
</div> |
|
|
|
<div v-if="orderData.status !=7 && orderData.status != 11" style="background: #fff;padding: 10px;border-radius: 10px;"> |
|
|
|
<div class="title">运营订单备注</div> |
|
|
|
<textarea name="" id="" cols="30" rows="10" style="width: 100%;border: 1px solid #eee;"></textarea> |
|
|
|
<div class='btn' @click="returnOrder">退款</div> |
|
|
|
<textarea v-model="refundReason" name="" id="" cols="30" rows="10" style="width: 100%;border: 1px solid #eee;"></textarea> |
|
|
|
<div v-if="canAdminRefundOrder()" class='btn' @click="adminRefundOrder">{{ refundLoading ? "退款中" : "退款" }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -97,9 +97,9 @@ |
|
|
|
|
|
|
|
<script> |
|
|
|
import { |
|
|
|
returnOrder, |
|
|
|
getOrderDetail, |
|
|
|
returnOrNoOrder |
|
|
|
returnOrNoOrder, |
|
|
|
adminForceRefundOrder |
|
|
|
} from "@/api/index"; |
|
|
|
import { |
|
|
|
getByShopId |
|
|
|
@ -109,7 +109,9 @@ |
|
|
|
data() { |
|
|
|
return { |
|
|
|
orderData: {}, |
|
|
|
returnFormData:{} |
|
|
|
returnFormData:{}, |
|
|
|
refundReason: "", |
|
|
|
refundLoading: false |
|
|
|
}; |
|
|
|
}, |
|
|
|
filters: { |
|
|
|
@ -127,6 +129,7 @@ |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
initRecharge(data) { |
|
|
|
this.refundReason = ""; |
|
|
|
if(data.status == 7 || data.status == 11){ |
|
|
|
this.orderData = data |
|
|
|
this.orderData.goodsList = this.orderData.items |
|
|
|
@ -242,22 +245,33 @@ |
|
|
|
|
|
|
|
return diffMinutes; |
|
|
|
}, |
|
|
|
returnOrder(){ |
|
|
|
let returnFormData = {} |
|
|
|
|
|
|
|
this.returnFormData.status = 4 |
|
|
|
this.returnFormData.id = this.orderData.id; |
|
|
|
this.returnFormData.regionId = JSON.parse(this.getStore("user")).departmentId; |
|
|
|
this.returnFormData.orderId = this.orderData.orderId; |
|
|
|
this.returnFormData.deliveryType = this.orderData.deliveryType; |
|
|
|
this.returnFormData.orderType = this.orderData.orderType; |
|
|
|
this.returnFormData.refundAmount = this.orderData.refundAmount; |
|
|
|
this.returnFormData.refundType = this.orderData.refundType; |
|
|
|
this.returnFormData.refundTypeStatus = this.orderData.refundTypeStatus; |
|
|
|
returnOrNoOrder(this.returnFormData).then((res) => { |
|
|
|
this.loading = false; |
|
|
|
canAdminRefundOrder() { |
|
|
|
return this.orderData.status != 6 && this.orderData.status != 8 && this.orderData.status != 12; |
|
|
|
}, |
|
|
|
adminRefundOrder() { |
|
|
|
if (this.refundLoading || !this.orderData.id) return; |
|
|
|
this.$Modal.confirm({ |
|
|
|
title: "提示", |
|
|
|
content: "确定要直接退款给用户吗?该操作会同步更新订单、配送单、拼团单和相关缓存。", |
|
|
|
onOk: () => { |
|
|
|
this.refundLoading = true; |
|
|
|
adminForceRefundOrder({ |
|
|
|
orderId: this.orderData.id, |
|
|
|
refundType: 3, |
|
|
|
refundTypeStatus: 4, |
|
|
|
reason: this.refundReason || "后台管理直接退款" |
|
|
|
}).then((res) => { |
|
|
|
this.refundLoading = false; |
|
|
|
if (res.success) { |
|
|
|
this.$Message.success("取消订单成功"); |
|
|
|
this.$Message.success(res.message || "退款成功"); |
|
|
|
this.$emit('closePage'); |
|
|
|
} else { |
|
|
|
this.$Message.error(res.message || "退款失败"); |
|
|
|
} |
|
|
|
}).catch((err) => { |
|
|
|
this.refundLoading = false; |
|
|
|
this.$Message.error((err && err.message) || "退款失败"); |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|