From baf54efb7b564a44299676dbe0791613371fd5b1 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Fri, 6 Nov 2026 09:32:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E8=AF=84?= =?UTF-8?q?=E5=88=86-1=E7=A9=BA=E5=80=BC=E3=80=81=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E8=B7=B3=E8=BD=AC=E4=B8=8E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .../settlement/receivable-payable-detail.vue | 44 +++++++- src/views/system/mp-user.vue | 58 ++++++---- src/views/vehicle/customer-archive.vue | 105 +++++++++++++++--- 3 files changed, 168 insertions(+), 39 deletions(-) diff --git a/src/views/settlement/receivable-payable-detail.vue b/src/views/settlement/receivable-payable-detail.vue index 6f19b7f..f24f56d 100644 --- a/src/views/settlement/receivable-payable-detail.vue +++ b/src/views/settlement/receivable-payable-detail.vue @@ -1067,7 +1067,8 @@ import { formatContractOptionLabel } from '@/utils/contract'; import { isTierUnitPrice, isUnitPriceAdjustable } from '@/utils/settlement-adjust-rule'; import { downloadXls } from '@/utils/util'; import { createSettlementTransfer } from '@/utils/settlement-transfer'; -import { settlementListPath } from '@/utils/settlement-menu'; +import { settlementBillLabel, settlementListPath } from '@/utils/settlement-menu'; +import { getList as getFormalSettlementList } from '@/api/settlement/formalSettlement'; import { contractApprovalStatusOptions, contractCategoryOptions, @@ -1921,8 +1922,9 @@ export default { this.openSettlementDetail('/settlement/pre-settlement', row.preSettlementNo); return; } - if (this.settlementType === 'payable' && column.prop === 'formalSettlementNo') { - this.openSettlementDetail('/settlement/payment-settlement', row.formalSettlementNo); + // 正式结算单号:跳转付款/收款结算单表单页并打开详情(与开票申请等入口一致) + if (column.prop === 'formalSettlementNo') { + this.openFormalSettlementDetail(row.formalSettlementNo); return; } this.openDetailDialog(row); @@ -1934,6 +1936,42 @@ export default { } this.$router.push({ path, query: { detailNo } }); }, + async openFormalSettlementDetail(formalSettlementNo) { + const normalizedNo = String(formalSettlementNo || '') + .split(/[、,,]/) + .map(item => item.trim()) + .find(Boolean); + if (!normalizedNo) { + this.$message.info('当前记录未关联结算单详情'); + return; + } + try { + const data = this.unwrapPage( + await getFormalSettlementList(1, 10, { formalSettlementNo: normalizedNo }) + ); + const row = (data.records || []).find( + item => String(item.formalSettlementNo || '').trim() === normalizedNo + ); + if (!row?.id) { + this.$message.warning('未找到对应的正式结算单'); + return; + } + const settlementType = row.settlementType || this.settlementType || 'payable'; + const listPath = settlementListPath(settlementType); + await this.$router.push({ + path: `${listPath}/form`, + query: { + mode: 'view', + id: row.id, + settlementType, + listPath, + name: `查看${settlementBillLabel(settlementType)}`, + }, + }); + } catch (error) { + this.$message.error('正式结算单详情加载失败'); + } + }, async openRouteDetail(detailId = this.$route.query.detailId) { // 结算明细点「单据号」会带 detailId 跳到本页;只有当前停在应收/应付明细页时才自动展开详情 const routePath = diff --git a/src/views/system/mp-user.vue b/src/views/system/mp-user.vue index 651ea35..af11263 100644 --- a/src/views/system/mp-user.vue +++ b/src/views/system/mp-user.vue @@ -66,17 +66,21 @@ />