From 1ed7955764fc63cca1f6f0667118f15817a4582d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Mon, 2 Nov 2026 18:10:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=91=E7=A5=A8=E7=99=BB=E8=AE=B0?= =?UTF-8?q?=E9=80=89=E7=A5=A8=E6=9A=82=E5=AD=98=E5=B1=95=E7=A4=BA=E4=B8=94?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=90=8E=E6=89=8D=E4=BF=9D=E5=AD=98=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/settlement/formal-settlement.vue | 25 +++++++++++----------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/views/settlement/formal-settlement.vue b/src/views/settlement/formal-settlement.vue index 25557cd..e1eb661 100644 --- a/src/views/settlement/formal-settlement.vue +++ b/src/views/settlement/formal-settlement.vue @@ -743,7 +743,7 @@ export default { this.$message.warning('所选收票单均已登记'); return; } - // 全额认领:匹配金额固定=发票金额 + // 全额认领:匹配金额固定=发票金额(仅暂存展示,点保存认领确认后才落库) this.invoiceRegisterDialog.candidates.push( ...added.map(row => ({ ...row, matchedAmount: Number(row.invoiceAmount || 0) })) ); @@ -758,23 +758,22 @@ export default { availableInvoiceAmount: Number(row.invoiceAmount || 0), matchedAmount: Number(row.invoiceAmount || 0), })); + try { + // 先确认后保存:确定才认领并推送指定应付,取消不保存任何数据 + await this.$confirm('确认认领并推送金蝶指定应付?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }); + } catch { + return; + } this.invoiceRegisterDialog.saving = true; try { await api.claimInvoices({ formalSettlementId: settlement.id, invoices }); - this.invoiceRegisterDialog.visible = false; - this.onLoad(this.page); - try { - await this.$confirm('是否将发票匹配数据推送金蝶?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }); - } catch { - this.$message.info('已保存认领,未推送金蝶'); - return; - } const data = this.unwrapData(await api.invoiceAssignKingdee(settlement.id)); this.$message.success(data || '发票登记推送金蝶成功'); + this.invoiceRegisterDialog.visible = false; this.onLoad(this.page); } finally { this.invoiceRegisterDialog.saving = false;