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 @@
{{ formatMoney(row.availableInvoiceAmount) }}
-
-
-
-
+
+ {{ formatMoney(row.allocatedInvoiceAmount) }}
@@ -454,6 +445,9 @@
{{ formatMoney(row.settlementAmount) }}
+
+ {{ formatMoney(row.invoicedAmount) }}
+
{{ formatMoney(row.availableInvoiceAmount) }}
@@ -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