From 5dc695a138553ad0ca3ccb9b7c6f25f97f65ee55 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Thu, 5 Nov 2026 16:45:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(web-admin):=20=E5=8D=8F=E8=AE=AE=E5=8D=95?= =?UTF-8?q?=E6=89=81=E5=B9=B3=E8=A1=8C=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E6=89=80=E5=B1=9E=E9=A1=B9=E7=9B=AE=E4=B8=8E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 采集协议单管理(细胞存储/科研捐赠)展平样本行时未拷贝项目归属字段,导致表格列空白;补齐展平字段并增加回归单测。 Co-authored-by: Cursor --- .../src/utils/protocol-audit-flatten.test.ts | 21 +++++++++++++++++++ web-admin/src/utils/protocol-audit-flatten.ts | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/web-admin/src/utils/protocol-audit-flatten.test.ts b/web-admin/src/utils/protocol-audit-flatten.test.ts index 7b54ceb7..97213d6e 100644 --- a/web-admin/src/utils/protocol-audit-flatten.test.ts +++ b/web-admin/src/utils/protocol-audit-flatten.test.ts @@ -26,6 +26,8 @@ describe('flattenProtocolAuditRows', () => { id: 'p1', protocolNo: 'ZKZX1', motherName: '郭梦朵', + projectName: '测试项目', + teamName: '陈星项目组111', sampleCollectTime: '2025-09-15 08:51:00', sampleItems: [ { sampleTypeName: '脐带血', sampleCode: 'A1', labStorageCode: 'B0000004' }, @@ -40,6 +42,25 @@ describe('flattenProtocolAuditRows', () => { assert.equal(rows[0].labStorageCode, 'B0000004') assert.equal(rows[1].labStorageCode, 'B0000004A') assert.equal(rows[0].protocolId, 'p1') + assert.equal(rows[0].projectName, '测试项目') + assert.equal(rows[0].teamName, '陈星项目组111') + assert.equal(rows[1].projectName, '测试项目') + assert.equal(rows[1].teamName, '陈星项目组111') + }) + + it('copies protocol project attribution onto each flat row for table props', () => { + const rows = flattenProtocolAuditRows([ + { + id: 'p-attr', + projectName: '归属项目', + teamName: '归属项目组', + sampleItems: [{ sampleCode: 'ZKZX34000199', sampleTypeName: '围产期造血干细胞' }] + } + ]) + assert.equal(rows.length, 1) + assert.equal(rows[0].projectName, '归属项目') + assert.equal(rows[0].teamName, '归属项目组') + assert.equal(rows[0].sampleCode, 'ZKZX34000199') }) it('zero samples → one placeholder row, not co-stored', () => { diff --git a/web-admin/src/utils/protocol-audit-flatten.ts b/web-admin/src/utils/protocol-audit-flatten.ts index 9aa627e4..b64fb7c5 100644 --- a/web-admin/src/utils/protocol-audit-flatten.ts +++ b/web-admin/src/utils/protocol-audit-flatten.ts @@ -20,6 +20,9 @@ export type ProtocolAuditFlatRow = { sampleCount: number sampleIndex: number isCoStored: boolean + /** 协议级项目归属,供扁平行表格 prop 绑定 */ + projectName: string + teamName: string collectDate: string sampleCollectTime: string motherName: string @@ -95,6 +98,8 @@ export function flattenProtocolAuditRows( sampleCount, sampleIndex, isCoStored, + projectName: str(protocol.projectName), + teamName: str(protocol.teamName), collectDate: extractCollectDate(str(protocol.sampleCollectTime)), sampleCollectTime: str(protocol.sampleCollectTime), motherName: str(protocol.motherName), -- 2.54.0