From 357ef89d3e43a76c1182b543dcb4394de74e8a39 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 17 Aug 2026 21:34:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=85=88=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E8=BE=93=E5=85=A5=E8=A1=8C=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/batch-form-model.test.ts | 16 ++++++++++++++++ .../modules/batch-form-model.ts | 8 ++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.test.ts b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.test.ts index 414bd57a..aa803c3b 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.test.ts +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.test.ts @@ -217,6 +217,22 @@ describe('batch-form-model', () => { ); }); + it('keeps every row when input client keys are duplicated and failures are empty', () => { + const rows = [createBatchRow(), createBatchRow()]; + rows[1]!.clientKey = rows[0]!.clientKey; + const result = applyBatchResult(rows, { + successCount: 2, + failureCount: 0, + failures: [], + }); + const generalError = '批量保存结果无法匹配,请核对后重试'; + + expect(result.rows).toEqual(rows); + expect(result.rowErrors).toEqual( + new Map(rows.map((row) => [row.clientKey, generalError])), + ); + }); + it('returns no rows or errors when every row succeeds', () => { const result = applyBatchResult([createBatchRow()], { successCount: 1, diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.ts b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.ts index 550737d5..53f1e8a7 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.ts +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/subpackagerelation/modules/batch-form-model.ts @@ -80,10 +80,6 @@ export function applyBatchResult( rows: BatchFormRow[], result: LmsSubPackageRelationApi.BatchCreateResult, ): { rows: BatchFormRow[]; rowErrors: Map } { - if (result.failures.length === 0) { - return { rows: [], rowErrors: new Map() }; - } - const generalError = '批量保存结果无法匹配,请核对后重试'; const rowByClientKey = new Map(); for (const row of rows) { @@ -96,6 +92,10 @@ export function applyBatchResult( rowByClientKey.set(row.clientKey, row); } + if (result.failures.length === 0) { + return { rows: [], rowErrors: new Map() }; + } + const failedClientKeys = new Set(); const rowErrors = new Map(); for (const failure of result.failures) {