|
@@ -2,7 +2,7 @@
|
|
|
商城订单申请售后页
|
|
商城订单申请售后页
|
|
|
供订单详情「申请售后」进入;顾客勾选商品/金额、可选上传照片后提交待审核申请,商家在 hdApp 审核可见图片
|
|
供订单详情「申请售后」进入;顾客勾选商品/金额、可选上传照片后提交待审核申请,商家在 hdApp 审核可见图片
|
|
|
仅当存在待审核申请时锁进度页不可再提交;无待审核则直接进表单(含已取消/通过/驳回后再申)
|
|
仅当存在待审核申请时锁进度页不可再提交;无待审核则直接进表单(含已取消/通过/驳回后再申)
|
|
|
- 退货并退款金额:普通商品按勾选原价分摊会员折/满减;秒杀、团购按活动单价退,不再叠整单优惠
|
|
|
|
|
|
|
+ 退货并退款金额:普通商品按勾选原价分摊会员折/满减/红包(跑腿费不参与分摊);秒杀、团购按活动单价退
|
|
|
红包全额抵扣导致实付为 0 时仍可申请:提交 0 元,审核通过后退回红包
|
|
红包全额抵扣导致实付为 0 时仍可申请:提交 0 元,审核通过后退回红包
|
|
|
-->
|
|
-->
|
|
|
<template>
|
|
<template>
|
|
@@ -263,7 +263,7 @@ export default {
|
|
|
goodsInfoList: [],
|
|
goodsInfoList: [],
|
|
|
itemInfoList: [],
|
|
itemInfoList: [],
|
|
|
couldRefundPrice: 0,
|
|
couldRefundPrice: 0,
|
|
|
- refundType: 1,
|
|
|
|
|
|
|
+ refundType: 1, // 1.退货并退款 2.只退款
|
|
|
remark: '',
|
|
remark: '',
|
|
|
apply: null,
|
|
apply: null,
|
|
|
canApply: 0,
|
|
canApply: 0,
|
|
@@ -419,18 +419,31 @@ export default {
|
|
|
return parseFloat(price.toFixed(2))
|
|
return parseFloat(price.toFixed(2))
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
- * 整单优惠分摊基数:会员折/满减按「商品+运费包装-红包」后的应付计算,
|
|
|
|
|
- * prePrice 已扣红包,这里加回红包得到扣优惠前的应付,与下单口径一致
|
|
|
|
|
|
|
+ * 跑腿费(sendType=2 的 sendCost):下单时红包不抵运费、会员折/满减也不打在跑腿费上
|
|
|
|
|
+ * 退货分摊时要从基数里剔除,否则会把优惠摊到跑腿费上,商品应退被抬高
|
|
|
|
|
+ */
|
|
|
|
|
+ getRunnerSendCost() {
|
|
|
|
|
+ const info = this.orderInfo || {}
|
|
|
|
|
+ if (Number(info.sendType) !== 2) {
|
|
|
|
|
+ return 0
|
|
|
|
|
+ }
|
|
|
|
|
+ return Number(info.sendCost) || 0
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 整单优惠分摊基数:红包只抵商品;会员折/满减按「商品+非跑腿运费/包装-红包」
|
|
|
|
|
+ * prePrice 已扣红包且含跑腿费,这里加回红包再剔除跑腿费,与下单 wholeDiscount 口径一致
|
|
|
*/
|
|
*/
|
|
|
getDiscountAllocBase() {
|
|
getDiscountAllocBase() {
|
|
|
const info = this.orderInfo || {}
|
|
const info = this.orderInfo || {}
|
|
|
const hb = Number(info.hbAmount) || 0
|
|
const hb = Number(info.hbAmount) || 0
|
|
|
const pre = Number(info.prePrice) || 0
|
|
const pre = Number(info.prePrice) || 0
|
|
|
|
|
+ const runnerCost = this.getRunnerSendCost()
|
|
|
if (pre > 0) {
|
|
if (pre > 0) {
|
|
|
- return parseFloat((pre + hb).toFixed(2))
|
|
|
|
|
|
|
+ const base = pre + hb - runnerCost
|
|
|
|
|
+ return parseFloat((base > 0 ? base : 0).toFixed(2))
|
|
|
}
|
|
}
|
|
|
const goods = Number(info.goodsPrice) || 0
|
|
const goods = Number(info.goodsPrice) || 0
|
|
|
- const send = Number(info.sendCost) || 0
|
|
|
|
|
|
|
+ const send = Number(info.sendType) === 2 ? 0 : (Number(info.sendCost) || 0)
|
|
|
const pack = Number(info.packingFee) || 0
|
|
const pack = Number(info.packingFee) || 0
|
|
|
const labour = Number(info.labourCost) || 0
|
|
const labour = Number(info.labourCost) || 0
|
|
|
const service = Number(info.serviceFee) || 0
|
|
const service = Number(info.serviceFee) || 0
|