调整收付款问题

This commit is contained in:
2026-08-31 19:29:57 +08:00
parent dea760ea1c
commit 449e4e1884
8 changed files with 149 additions and 51 deletions
@@ -407,8 +407,51 @@
</el-table>
</section-card>
<section-card v-if="readonly" title="付款信息">
<el-table :data="paymentApplications" border>
<section-card
v-if="readonly"
:title="form.settlementType === 'receivable' ? '收款信息' : '付款信息'"
>
<el-table
v-if="form.settlementType === 'receivable'"
:data="receiptClaims"
border
empty-text="暂无收款认领数据"
>
<el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column
prop="receiptNoticeNo"
label="认领通知单"
min-width="160"
align="center"
/>
<el-table-column prop="payerName" label="付款人" min-width="150" align="center">
<template #default="{ row }">{{ displayValue(row.payerName) }}</template>
</el-table-column>
<el-table-column prop="receiptAmount" label="收款金额" min-width="130" align="center">
<template #default="{ row }">{{ formatMoney(row.receiptAmount) }}</template>
</el-table-column>
<el-table-column
prop="allocatedReceiptAmount"
label="本次认领金额"
min-width="145"
align="center"
>
<template #default="{ row }">{{ formatMoney(row.allocatedReceiptAmount) }}</template>
</el-table-column>
<el-table-column prop="transactionTime" label="交易时间" min-width="170" align="center">
<template #default="{ row }">{{ displayValue(row.transactionTime) }}</template>
</el-table-column>
<el-table-column prop="claimerName" label="认领人" min-width="120" align="center">
<template #default="{ row }">{{ displayValue(row.claimerName) }}</template>
</el-table-column>
<el-table-column prop="claimDate" label="认领日期" min-width="130" align="center">
<template #default="{ row }">{{ displayValue(row.claimDate) }}</template>
</el-table-column>
<el-table-column prop="claimStatusName" label="认领状态" min-width="120" align="center">
<template #default="{ row }">{{ displayValue(row.claimStatusName) }}</template>
</el-table-column>
</el-table>
<el-table v-else :data="paymentApplications" border>
<el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column prop="paymentTypeName" label="付款类型" min-width="120" align="center">
<template #default="{ row }">{{ displayValue(row.paymentTypeName) }}</template>
@@ -737,6 +780,7 @@ import {
getDetailFees,
getFeeOptions,
getNextNo,
getReceiptClaims,
save,
} from '@/api/settlement/formalSettlement';
import { getDetail as getPreSettlementDetail } from '@/api/settlement/preSettlement';
@@ -779,6 +823,7 @@ export default {
details: [],
summaryFees: [],
paymentApplications: [],
receiptClaims: [],
adjustments: [],
changeRecords: [],
attachments: [],
@@ -958,6 +1003,7 @@ export default {
this.details = [];
this.summaryFees = [];
this.paymentApplications = [];
this.receiptClaims = [];
this.adjustments = [];
this.changeRecords = [];
this.attachments = [];
@@ -1002,6 +1048,9 @@ export default {
this.details = data.details || [];
this.summaryFees = data.summaryFees || [];
this.paymentApplications = data.paymentApplications || [];
if (this.readonly && this.form.settlementType === 'receivable') {
this.receiptClaims = this.unwrapData(await getReceiptClaims(this.recordId)) || [];
}
this.adjustments = data.adjustments || [];
this.changeRecords = data.changeRecords || [];
this.attachments = this.parseAttachments(data.attachmentsJson);
@@ -1690,11 +1739,8 @@ export default {
.filter(row => row.pendingDetailAdjustment)
.map(row => ({
sourcePreSettlementDetailId:
row.sourcePreSettlementDetailId ||
(row.sourcePreSettlementId ? row.id : undefined),
sourceDetailId: row.sourcePreSettlementId
? undefined
: row.sourceDetailId || row.id,
row.sourcePreSettlementDetailId || (row.sourcePreSettlementId ? row.id : undefined),
sourceDetailId: row.sourcePreSettlementId ? undefined : row.sourceDetailId || row.id,
adjustAmount: Number(row.adjustAmount || 0),
})),
exchangeRateDate: this.form.exchangeRateDate,
+3
View File
@@ -131,6 +131,9 @@
<span v-else-if="column.precision !== undefined">
{{ formatNumber(row[column.prop], column.precision) }}
</span>
<span v-else-if="column.prop === 'sourceType'">
{{ row[column.prop] === '应收应付' ? '应付' : displayValue(row[column.prop]) }}
</span>
<span v-else>{{ displayValue(row[column.prop]) }}</span>
</template>
</el-table-column>
@@ -34,7 +34,12 @@
<div class="settlement-detail-page__toolbar-left">
<el-button type="primary" @click="openGenerateDialog">生成费用</el-button>
<el-button type="primary" plain @click="openUpdateFeeDialog">更新费用</el-button>
<el-button v-if="isPayable" type="primary" plain @click="openTransferDialog">
<el-button
v-if="isPayable || isReceivable"
type="primary"
plain
@click="openTransferDialog"
>
批量转结算
</el-button>
<el-button type="primary" plain @click="handleExport">导出</el-button>
@@ -457,6 +462,7 @@
v-model="transferForm.settlementBillType"
@change="handleTransferTypeChange"
>
<el-radio v-if="isPayable" label="pre">预结算单</el-radio>
<el-radio label="formal">正式结算单</el-radio>
</el-radio-group>
</el-form-item>
@@ -784,7 +790,7 @@ export default {
billingPlanOptions: [],
transferDialog: { visible: false, loading: false, submitting: false },
transferQuery: {},
transferForm: { settlementBillType: 'formal' },
transferForm: { settlementBillType: 'pre' },
transferRows: [],
transferSelection: [],
transferPage: { current: 1, size: 10, total: 0 },
@@ -1594,7 +1600,7 @@ export default {
},
openTransferDialog() {
this.transferDialog.visible = true;
this.transferForm = { settlementBillType: 'formal' };
this.transferForm = { settlementBillType: this.isReceivable ? 'formal' : 'pre' };
this.transferQuery = {};
this.transferRows = [];
this.transferSelection = [];
@@ -1724,7 +1730,9 @@ export default {
try {
const transferRows = await this.resolveTransferContractIds(this.transferSelection);
if (!transferRows) return;
const settlementBillType = this.transferForm.settlementBillType;
const settlementBillType = this.isReceivable
? 'formal'
: this.transferForm.settlementBillType;
const transferToken = createSettlementTransfer({
settlementBillType,
settlementType: this.settlementType || transferRows[0]?.settlementType,