This commit is contained in:
van
2026-05-09 17:50:43 +08:00
parent a789dad487
commit 6578c89960

View File

@@ -212,7 +212,7 @@
<div v-if="isMobile" class="mobile-order-list" v-loading="loading">
<div class="profit-summary-bar mobile-profit-summary">
<div>统计<b>{{ profitSummaryLabel }}</b></div>
<div>后返合计 <b>{{ toYuan(profitSummaryRebateTotal) }}</b> · 利润合计 <b>{{ profitSummaryProfitTotal === '' ? '—' : toYuan(profitSummaryProfitTotal) }}</b></div>
<div>后返合计 <b>{{ toYuan(profitSummaryRebateTotal) }}</b> · 利润合计 <b>{{ profitSummaryProfitTotal === '' ? '—' : toYuan(profitSummaryProfitTotal) }}</b><span class="profit-summary-hint">不含已退款</span></div>
</div>
<div
v-for="row in list"
@@ -406,13 +406,35 @@
<el-button v-if="row.logisticsLink" type="text" size="mini" @click="copyToClipboard(row.logisticsLink)">复制物流链接</el-button>
</span>
</div>
<div class="field-row">
<div class="field-row field-row--pricing">
<span class="field-label">付款金额</span>
<span class="field-value amount">{{ toYuan(row.paymentAmount) }}</span>
<div class="field-value field-value--pricing-control">
<el-input-number
v-model="row.paymentAmount"
:min="0"
:step="1"
:precision="2"
size="small"
controls-position="right"
class="mobile-pricing-input"
@change="onOrderPaymentOrRebateChange(row)"
/>
</div>
</div>
<div class="field-row">
<div class="field-row field-row--pricing">
<span class="field-label">后返金额</span>
<span class="field-value amount">{{ toYuan(row.rebateAmount) }}</span>
<div class="field-value field-value--pricing-control">
<el-input-number
v-model="row.rebateAmount"
:min="0"
:step="1"
:precision="2"
size="small"
controls-position="right"
class="mobile-pricing-input"
@change="onOrderPaymentOrRebateChange(row)"
/>
</div>
</div>
<div class="field-row field-row--pricing" v-if="isFanDistributionMark(row.distributionMark)">
<span class="field-label">售价渠道</span>
@@ -539,8 +561,8 @@
<div v-else class="jd-order-table-wrap">
<div ref="profitSummaryBar" class="profit-summary-bar sticky-summary">
<span class="profit-summary-item">统计范围<b>{{ profitSummaryLabel }}</b></span>
<span class="profit-summary-item">后返合计<b>{{ toYuan(profitSummaryRebateTotal) }}</b></span>
<span class="profit-summary-item">利润合计<b>{{ profitSummaryProfitTotal === '' ? '—' : toYuan(profitSummaryProfitTotal) }}</b></span>
<span class="profit-summary-item">后返合计<b>{{ toYuan(profitSummaryRebateTotal) }}</b><span class="profit-summary-hint">不含已退款</span></span>
<span class="profit-summary-item">利润合计<b>{{ profitSummaryProfitTotal === '' ? '—' : toYuan(profitSummaryProfitTotal) }}</b><span class="profit-summary-hint">不含已退款</span></span>
</div>
<el-table
:data="list"
@@ -613,11 +635,37 @@
</el-table-column>
<!-- 金额信息列 -->
<el-table-column label="付款金额" prop="paymentAmount" width="90" align="right">
<template slot-scope="scope">{{ toYuan(scope.row.paymentAmount) }}</template>
<el-table-column label="付款金额" prop="paymentAmount" min-width="118" align="right" class-name="jd-col-money jd-col-money--payment">
<template slot-scope="scope">
<div class="jd-cell-stretch jd-cell-stretch--num">
<el-input-number
v-model="scope.row.paymentAmount"
:min="0"
:step="1"
:precision="2"
size="mini"
controls-position="right"
class="jd-order-input-money jd-order-input-money--payment"
@change="onOrderPaymentOrRebateChange(scope.row)"
/>
</div>
</template>
</el-table-column>
<el-table-column label="后返金额" prop="rebateAmount" width="90" align="right">
<template slot-scope="scope">{{ toYuan(scope.row.rebateAmount) }}</template>
<el-table-column label="后返金额" prop="rebateAmount" min-width="118" align="right" class-name="jd-col-money jd-col-money--rebate">
<template slot-scope="scope">
<div class="jd-cell-stretch jd-cell-stretch--num">
<el-input-number
v-model="scope.row.rebateAmount"
:min="0"
:step="1"
:precision="2"
size="mini"
controls-position="right"
class="jd-order-input-money jd-order-input-money--rebate"
@change="onOrderPaymentOrRebateChange(scope.row)"
/>
</div>
</template>
</el-table-column>
<el-table-column label="售价渠道" prop="sellingPriceType" min-width="120" align="center" class-name="jd-col-channel">
<template slot-scope="scope">
@@ -1365,7 +1413,8 @@ export default {
return false
},
profitSummaryRows() {
return this.selectedRows && this.selectedRows.length > 0 ? this.selectedRows : this.list
const base = this.selectedRows && this.selectedRows.length > 0 ? this.selectedRows : this.list
return (base || []).filter(r => r.isRefunded !== 1)
},
profitSummaryLabel() {
return this.selectedRows && this.selectedRows.length > 0
@@ -1994,6 +2043,11 @@ export default {
row.profitManual = 0
this.persistOrderRow(row)
},
/** 付款/后返变更:按规则重算利润(解除利润手填;已退款订单后端会把利润置空) */
onOrderPaymentOrRebateChange(row) {
row.profitManual = 0
this.persistOrderRow(row)
},
onOrderSellingPriceChange(row) {
row.sellingPriceManual = 1
row.profitManual = 0
@@ -2099,6 +2153,7 @@ export default {
// 调用后端API更新数据库
updateJDOrder(row).then(() => {
this.$message.success(`订单 ${row.remark} 的退款状态已更新`)
this.patchOrderRowFromServer(row.id)
}).catch(() => {
this.$message.error('更新失败,请稍后重试')
// 恢复原状态
@@ -3781,7 +3836,9 @@ export default {
}
/* 售价列略宽(约四位数价位)、利润列略窄(三位数+两位小数)已在列 min-width 区分 */
.order-table ::v-deep .jd-col-money .jd-cell-stretch--num .jd-order-input-money--selling .el-input__inner,
.order-table ::v-deep .jd-col-money .jd-cell-stretch--num .jd-order-input-money--profit .el-input__inner {
.order-table ::v-deep .jd-col-money .jd-cell-stretch--num .jd-order-input-money--profit .el-input__inner,
.order-table ::v-deep .jd-col-money .jd-cell-stretch--num .jd-order-input-money--payment .el-input__inner,
.order-table ::v-deep .jd-col-money .jd-cell-stretch--num .jd-order-input-money--rebate .el-input__inner {
font-variant-numeric: tabular-nums;
font-feature-settings: 'tnum' 1;
}
@@ -4356,6 +4413,12 @@ export default {
.profit-summary-item {
margin-right: 20px;
}
.profit-summary-hint {
margin-left: 4px;
font-size: 12px;
font-weight: 400;
color: var(--jd-muted, #6b7280);
}
.mobile-profit-summary {
font-size: 12px;
line-height: 1.5;