|
@@ -2,8 +2,11 @@
|
|
|
售后转冲销单-选项确认弹框
|
|
售后转冲销单-选项确认弹框
|
|
|
用途:pagesOrder/refund.vue(超管直接发起售后)、pagesOrder/refundDetail.vue(超管审核客户/花店提交的售后申请)
|
|
用途:pagesOrder/refund.vue(超管直接发起售后)、pagesOrder/refundDetail.vue(超管审核客户/花店提交的售后申请)
|
|
|
两个入口在检测到"该订单需转冲销单"场景时复用本弹框,只让用户选择:
|
|
两个入口在检测到"该订单需转冲销单"场景时复用本弹框,只让用户选择:
|
|
|
- 退货方式(forwardStock)、返充到余额(returnBalance)、打印小票(needPrint),
|
|
|
|
|
|
|
+ 退货方式(forwardStock)、资金处理方式(原路退回/返充到余额)、打印小票(needPrint),
|
|
|
退款方式固定展示为原单支付渠道(不可选,由后端强制锁定,不信任前端传值)。
|
|
退款方式固定展示为原单支付渠道(不可选,由后端强制锁定,不信任前端传值)。
|
|
|
|
|
+ 资金处理方式按原单支付渠道(payWay)分两类:
|
|
|
|
|
+ - 线上支付(微信/支付宝):展示"原路退回"(是/否);选否才继续展示"返充到余额"(是/否),二者互斥。
|
|
|
|
|
+ - 挂账/余额支付:不展示任何选项,强制返充到余额(挂账本质是负余额,返充余额=冲减欠款,账本层面是同一动作)。
|
|
|
选好后点确认,由父组件负责调用 createForwardOrder 接口直接提交,不再跳转花材选择页重新走一遍流程。
|
|
选好后点确认,由父组件负责调用 createForwardOrder 接口直接提交,不再跳转花材选择页重新走一遍流程。
|
|
|
ssh 冲销单功能
|
|
ssh 冲销单功能
|
|
|
-->
|
|
-->
|
|
@@ -33,7 +36,25 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <view class="forward-popup__row">
|
|
|
|
|
|
|
+ <!-- 线上支付(微信/支付宝):先问是否原路退回 -->
|
|
|
|
|
+ <view class="forward-popup__row" v-if="isOnlinePay">
|
|
|
|
|
+ <view class="forward-popup__label">原路退回</view>
|
|
|
|
|
+ <view class="forward-popup__value">
|
|
|
|
|
+ <button
|
|
|
|
|
+ class="admin-button-com middle forward-popup__btn"
|
|
|
|
|
+ :class="originalRefund === 1 ? 'blue' : 'default'"
|
|
|
|
|
+ @click="selectOriginalRefund(1)"
|
|
|
|
|
+ >是</button>
|
|
|
|
|
+ <button
|
|
|
|
|
+ class="admin-button-com middle forward-popup__btn"
|
|
|
|
|
+ :class="originalRefund === 0 ? 'blue' : 'default'"
|
|
|
|
|
+ @click="selectOriginalRefund(0)"
|
|
|
|
|
+ >否</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 线上支付且选择"不原路退回"时,才继续问是否返充到余额;与"原路退回"互斥 -->
|
|
|
|
|
+ <view class="forward-popup__row" v-if="isOnlinePay && originalRefund === 0">
|
|
|
<view class="forward-popup__label">返充到余额</view>
|
|
<view class="forward-popup__label">返充到余额</view>
|
|
|
<view class="forward-popup__value">
|
|
<view class="forward-popup__value">
|
|
|
<button
|
|
<button
|
|
@@ -49,6 +70,12 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
|
|
+ <!-- 挂账/余额支付:不给选项,只读提示强制返充到余额(挂账本质是负余额,返充余额即冲减欠款) -->
|
|
|
|
|
+ <view class="forward-popup__row" v-if="!isOnlinePay">
|
|
|
|
|
+ <view class="forward-popup__label">资金处理</view>
|
|
|
|
|
+ <view class="forward-popup__value forward-popup__value--locked">自动返充到客户余额</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
<view class="forward-popup__row">
|
|
<view class="forward-popup__row">
|
|
|
<view class="forward-popup__label">打印小票</view>
|
|
<view class="forward-popup__label">打印小票</view>
|
|
|
<view class="forward-popup__value">
|
|
<view class="forward-popup__value">
|
|
@@ -90,6 +117,11 @@ export default {
|
|
|
type: String,
|
|
type: String,
|
|
|
default: ''
|
|
default: ''
|
|
|
},
|
|
},
|
|
|
|
|
+ //原单支付方式原始编码:0微信 1支付宝 2余额 3挂账,用于决定资金处理选项的展示分支
|
|
|
|
|
+ payWay: {
|
|
|
|
|
+ type: [Number, String],
|
|
|
|
|
+ default: -1
|
|
|
|
|
+ },
|
|
|
//本次冲销金额,仅用于弹框内展示
|
|
//本次冲销金额,仅用于弹框内展示
|
|
|
amount: {
|
|
amount: {
|
|
|
type: [Number, String],
|
|
type: [Number, String],
|
|
@@ -104,32 +136,64 @@ export default {
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
forwardStock: -1, // -1未选 0库存退回 1库存不退,与后端字段值一致
|
|
forwardStock: -1, // -1未选 0库存退回 1库存不退,与后端字段值一致
|
|
|
|
|
+ originalRefund: -1, // -1未选 1是(原路退回网关) 0否,仅线上支付分支使用
|
|
|
returnBalance: -1, // -1未选 1是 0否
|
|
returnBalance: -1, // -1未选 1是 0否
|
|
|
needPrint: 1 // 1打印 2不打印
|
|
needPrint: 1 // 1打印 2不打印
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ //原单是否线上支付(微信/支付宝):只有这种场景才允许"原路退回"选项,其它(挂账/余额支付)强制走返充余额
|
|
|
|
|
+ isOnlinePay() {
|
|
|
|
|
+ return Number(this.payWay) === 0 || Number(this.payWay) === 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
open() {
|
|
open() {
|
|
|
this.forwardStock = -1;
|
|
this.forwardStock = -1;
|
|
|
- this.returnBalance = -1;
|
|
|
|
|
|
|
+ this.originalRefund = -1;
|
|
|
|
|
+ //挂账/余额支付没有可选项,直接内部锁定为"返充余额";线上支付则等用户选
|
|
|
|
|
+ this.returnBalance = this.isOnlinePay ? -1 : 1;
|
|
|
this.needPrint = 1;
|
|
this.needPrint = 1;
|
|
|
this.$refs.popupRef.open('center');
|
|
this.$refs.popupRef.open('center');
|
|
|
},
|
|
},
|
|
|
close() {
|
|
close() {
|
|
|
this.$refs.popupRef.close();
|
|
this.$refs.popupRef.close();
|
|
|
},
|
|
},
|
|
|
|
|
+ selectOriginalRefund(val) {
|
|
|
|
|
+ this.originalRefund = val;
|
|
|
|
|
+ //切回"原路退回=是"时,返充到余额的选择要清空,避免带着上一次选的值一起提交(二者互斥)
|
|
|
|
|
+ if (val === 1) {
|
|
|
|
|
+ this.returnBalance = -1;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
confirm() {
|
|
confirm() {
|
|
|
if (this.forwardStock === -1) {
|
|
if (this.forwardStock === -1) {
|
|
|
this.$msg('请选择退货方式');
|
|
this.$msg('请选择退货方式');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- if (this.returnBalance === -1) {
|
|
|
|
|
- this.$msg('请选择是否返充到余额');
|
|
|
|
|
- return;
|
|
|
|
|
|
|
+ let originalRefund = 0;
|
|
|
|
|
+ let returnBalance = this.returnBalance;
|
|
|
|
|
+ if (this.isOnlinePay) {
|
|
|
|
|
+ if (this.originalRefund === -1) {
|
|
|
|
|
+ this.$msg('请选择是否原路退回');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ originalRefund = this.originalRefund;
|
|
|
|
|
+ if (originalRefund === 0 && returnBalance === -1) {
|
|
|
|
|
+ this.$msg('请选择是否返充到余额');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (originalRefund === 1) {
|
|
|
|
|
+ returnBalance = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //挂账/余额支付:强制返充余额,不给选
|
|
|
|
|
+ returnBalance = 1;
|
|
|
}
|
|
}
|
|
|
this.$emit('confirm', {
|
|
this.$emit('confirm', {
|
|
|
forwardStock: this.forwardStock,
|
|
forwardStock: this.forwardStock,
|
|
|
- returnBalance: this.returnBalance,
|
|
|
|
|
|
|
+ originalRefund: originalRefund,
|
|
|
|
|
+ returnBalance: returnBalance,
|
|
|
needPrint: this.needPrint
|
|
needPrint: this.needPrint
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|