From 555189177c08596b2db0756c5b93e37c5c0bbead 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, 19 Oct 2026 19:55:24 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E4=BB=98=E6=AC=BE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E9=80=9A=E8=BF=87=E6=94=B9=E4=B8=BA=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E9=81=AE=E7=BD=A9=E9=98=B2=E9=87=8D=E5=A4=8D=E7=82=B9?= =?UTF-8?q?=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/payment/payment-application.vue | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/views/payment/payment-application.vue b/src/views/payment/payment-application.vue index baf454c..f96925d 100644 --- a/src/views/payment/payment-application.vue +++ b/src/views/payment/payment-application.vue @@ -163,7 +163,6 @@ export default { rows: [], selection: [], loading: false, - approveLoading: false, syncLoading: false, resultSyncing: false, query: {}, @@ -328,9 +327,9 @@ export default { this.refreshChange(); }, async handleApprove(row) { - // 防止重复点击:请求进行中忽略后续点击 - if (this.approveLoading) return; - this.approveLoading = true; + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; try { const res = await api.approve({ id: row.id }); // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 @@ -339,9 +338,9 @@ export default { } else { this.$message.success(res.data.msg || '审批通过'); } - this.refreshChange(); + await this.onLoad(this.page); } finally { - this.approveLoading = false; + this.loading = false; } }, handleMkAudit(row) { -- 2.52.0 From 4199318aa94cbb55c91db1305e51b4a48c397e00 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, 19 Oct 2026 20:08:37 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E6=94=B6=E7=A5=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?/=E5=BC=80=E7=A5=A8=E7=AE=A1=E7=90=86/=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E5=8D=95/=E9=A2=84=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E5=8D=95/=E7=BB=93=E7=AE=97=E8=B0=83=E6=95=B4=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=8C=89=E9=92=AE=E5=A2=9E=E5=8A=A0=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E9=81=AE=E7=BD=A9=E9=98=B2=E9=87=8D=E5=A4=8D=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/payment/invoice-application.vue | 21 ++++++++++++------- src/views/payment/invoice-receipt.vue | 21 ++++++++++++------- src/views/settlement/formal-settlement.vue | 21 ++++++++++++------- src/views/settlement/pre-settlement.vue | 13 +++++++++--- .../settlement/settlement-adjustment.vue | 17 ++++++++++----- 5 files changed, 64 insertions(+), 29 deletions(-) diff --git a/src/views/payment/invoice-application.vue b/src/views/payment/invoice-application.vue index 969c41a..ea66bd8 100644 --- a/src/views/payment/invoice-application.vue +++ b/src/views/payment/invoice-application.vue @@ -409,14 +409,21 @@ export default { }, async handleApprove(row) { await this.$confirm('确认审批通过该开票申请?', '提示', { type: 'warning' }); - const res = await api.approve({ id: row.id }); - // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 - if (res.data.data === false) { - this.$message.warning(res.data.msg); - } else { - this.$message.success(res.data.msg || '审批通过'); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + const res = await api.approve({ id: row.id }); + // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 + if (res.data.data === false) { + this.$message.warning(res.data.msg); + } else { + this.$message.success(res.data.msg || '审批通过'); + } + await this.loadTable(); + } finally { + this.loading = false; } - this.loadTable(); }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '审批驳回'); diff --git a/src/views/payment/invoice-receipt.vue b/src/views/payment/invoice-receipt.vue index 8710449..a6a2af8 100644 --- a/src/views/payment/invoice-receipt.vue +++ b/src/views/payment/invoice-receipt.vue @@ -366,14 +366,21 @@ export default { }, async handleApprove(row) { await this.$confirm('确认审批通过该收票登记?', '提示', { type: 'warning' }); - const res = await api.approve({ id: row.id }); - // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 - if (res.data.data === false) { - this.$message.warning(res.data.msg); - } else { - this.$message.success(res.data.msg || '审批通过'); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + const res = await api.approve({ id: row.id }); + // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 + if (res.data.data === false) { + this.$message.warning(res.data.msg); + } else { + this.$message.success(res.data.msg || '审批通过'); + } + await this.loadTable(); + } finally { + this.loading = false; } - this.loadTable(); }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '审批驳回'); diff --git a/src/views/settlement/formal-settlement.vue b/src/views/settlement/formal-settlement.vue index 1033caa..fd35e62 100644 --- a/src/views/settlement/formal-settlement.vue +++ b/src/views/settlement/formal-settlement.vue @@ -458,14 +458,21 @@ export default { '提示', { type: 'warning' } ); - const res = await api.approve({ id: row.id }); - // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 - if (res.data.data === false) { - this.$message.warning(res.data.msg); - } else { - this.$message.success(res.data.msg || '审批通过'); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + const res = await api.approve({ id: row.id }); + // data=false 表示审批已通过但自动同步金蝶失败,msg 带具体原因 + if (res.data.data === false) { + this.$message.warning(res.data.msg); + } else { + this.$message.success(res.data.msg || '审批通过'); + } + await this.loadTable(); + } finally { + this.loading = false; } - this.loadTable(); }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '审批驳回', { diff --git a/src/views/settlement/pre-settlement.vue b/src/views/settlement/pre-settlement.vue index dda0871..a7adbb5 100644 --- a/src/views/settlement/pre-settlement.vue +++ b/src/views/settlement/pre-settlement.vue @@ -692,9 +692,16 @@ export default { }, async handleApprove(row) { await this.$confirm('确认审批通过该预付结算单?', '提示', { type: 'warning' }); - await approve({ id: row.id }); - this.$message.success('审批通过'); - this.loadTable(); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + await approve({ id: row.id }); + this.$message.success('审批通过'); + await this.loadTable(); + } finally { + this.loading = false; + } }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '审批驳回', { diff --git a/src/views/settlement/settlement-adjustment.vue b/src/views/settlement/settlement-adjustment.vue index 629f8c1..3d99e0c 100644 --- a/src/views/settlement/settlement-adjustment.vue +++ b/src/views/settlement/settlement-adjustment.vue @@ -317,11 +317,18 @@ export default { }, async handleApprove(row) { await this.$confirm('审批通过后将更新关联正式结算单,确认继续?', '提示'); - const res = await api.approve(row.id); - // data=false:自动同步金蝶失败;data=true 且 msg 带已推送场景的手工冲销提示 - if (res.data.data === true || res.data.data === false) this.$message.warning(res.data.msg); - else this.$message.success(res.data.msg || '审批通过'); - this.loadTable(); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + const res = await api.approve(row.id); + // data=false:自动同步金蝶失败;data=true 且 msg 带已推送场景的手工冲销提示 + if (res.data.data === true || res.data.data === false) this.$message.warning(res.data.msg); + else this.$message.success(res.data.msg || '审批通过'); + await this.loadTable(); + } finally { + this.loading = false; + } }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '驳回', { -- 2.52.0 From 89bbc43f1201cb4758e821856fb400d3ba02db50 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, 19 Oct 2026 20:08:51 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E6=B1=87=E7=A5=A8=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E5=AE=A1=E6=89=B9=E9=80=9A=E8=BF=87=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=BC=B9=E7=AA=97=E4=B8=8E=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E9=81=AE=E7=BD=A9=E9=98=B2=E9=87=8D=E5=A4=8D=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/payment/bill-payment.vue | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/views/payment/bill-payment.vue b/src/views/payment/bill-payment.vue index defddf9..962dab8 100644 --- a/src/views/payment/bill-payment.vue +++ b/src/views/payment/bill-payment.vue @@ -156,9 +156,17 @@ export default { }); }, async handleApprove(row) { - await api.approve({ id: row.id }); - this.$message.success('审批通过'); - this.loadTable(); + await this.$confirm('确认审批通过该汇票付款?', '提示', { type: 'warning' }); + // 防止重复点击:请求期间表格遮罩,后续点击直接忽略 + if (this.loading) return; + this.loading = true; + try { + await api.approve({ id: row.id }); + this.$message.success('审批通过'); + await this.loadTable(); + } finally { + this.loading = false; + } }, async handleReturn(row) { const { value } = await this.$prompt('请输入驳回原因', '审批驳回'); -- 2.52.0 From 4e8163dd1823ed9893a961b9a188edcd9374e597 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, 19 Oct 2026 23:30:18 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E5=BC=80=E7=A5=A8=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E9=80=89=E5=8D=95=E6=94=BE=E5=BC=80=E6=9C=AA=E6=94=B6?= =?UTF-8?q?=E7=A5=A8=E8=BF=87=E6=BB=A4=E5=B9=B6=E5=B1=95=E7=A4=BA=E5=B7=B2?= =?UTF-8?q?=E7=94=B3=E8=AF=B7/=E5=8F=AF=E5=BC=80=E7=A5=A8=E9=87=91?= =?UTF-8?q?=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 选单弹窗新增已申请开票金额列,分摊发票金额改为只读展示后端自动分摊结果 - 选单后分摊金额默认归零,由后端保存时按本次开票金额自动分摊 --- .../payment/invoice-application-form.vue | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/views/payment/invoice-application-form.vue b/src/views/payment/invoice-application-form.vue index d4ed32a..8e1a257 100644 --- a/src/views/payment/invoice-application-form.vue +++ b/src/views/payment/invoice-application-form.vue @@ -323,17 +323,8 @@ - - + + @@ -454,6 +445,9 @@ + + + @@ -861,7 +855,6 @@ export default { keyword: this.settlementDialog.keyword, contractCategory: '客户合同', settlementType: 'receivable', - invoiceStatus: 'unreceived', } ) ); @@ -913,7 +906,7 @@ export default { ...item, formalSettlementId: item.id, settlementId: item.id, - allocatedInvoiceAmount: rows.length === 1 ? Number(item.availableInvoiceAmount || 0) : 0, + allocatedInvoiceAmount: 0, })); this.form.projectName = first.projectName; this.form.deptName = first.deptName; -- 2.52.0 From 9150213b0f8fdfa69badd8f290b2399c8525a7d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Wed, 21 Oct 2026 15:49:44 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=AE=A2?= =?UTF-8?q?=E5=95=86=E6=9F=A5=E8=AF=A2=E9=87=91=E8=9D=B6=E5=90=8E=E5=9B=9E?= =?UTF-8?q?=E6=98=BE=E5=AE=A2=E5=95=86=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/vehicle/customer-archive.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/views/vehicle/customer-archive.vue b/src/views/vehicle/customer-archive.vue index 510fa24..8d2d326 100644 --- a/src/views/vehicle/customer-archive.vue +++ b/src/views/vehicle/customer-archive.vue @@ -2416,6 +2416,7 @@ export default { resetKingdeeBackfill() { const form = this.archiveForm; form.kingdeeStatus = 'none'; + form.customerCode = ''; form.fullName = ''; form.legalPerson = ''; form.registeredCapital = ''; @@ -2469,6 +2470,8 @@ export default { applyKingdeeCustomer(customer) { const form = this.archiveForm; form.kingdeeStatus = 'exist'; + // 客商编号回显金蝶客商编码,与后端同步金蝶时的采纳口径保持一致 + if (customer.number) form.customerCode = customer.number; // 工商信息以金蝶为准,直接覆盖(后续字段锁定) if (customer.name) form.fullName = customer.name; if (customer.artificialperson) form.legalPerson = customer.artificialperson; -- 2.52.0