From 3ab71e4231ff47da6167c15abcb1ec5dbd113645 Mon Sep 17 00:00:00 2001 From: yelan Date: Wed, 7 Oct 2026 11:34:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(documents):=20=E6=96=87=E4=B9=A6=E5=BA=93?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=9D=A1=E6=8C=89=E9=99=A2=E5=8C=BA-?= =?UTF-8?q?=E7=A7=91=E5=AE=A4-=E7=8A=B6=E6=80=81=E4=B8=89=E7=BA=A7?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/utils/mock-document-library.ts | 20 ++- .../components/DocumentFilterTabs.vue | 143 ++++++++++++------ .../components/DocumentTemplateCard.vue | 15 +- .../src/views/management/documents/index.vue | 121 ++++++++++++--- .../src/views/management/documents/types.ts | 12 ++ 5 files changed, 235 insertions(+), 76 deletions(-) diff --git a/clinical-web/src/utils/mock-document-library.ts b/clinical-web/src/utils/mock-document-library.ts index 4199b5d..b98c8a1 100644 --- a/clinical-web/src/utils/mock-document-library.ts +++ b/clinical-web/src/utils/mock-document-library.ts @@ -287,12 +287,30 @@ export function getDemoDocumentLibrary(): LocalDepartment[] { return demoLibraryCache } +/** + * 演示文库的分组键归一。 + * + * 种子里的分组键是 `demo-0` 这类占位值,与演示科室字典的 id 对不上。文档库的科室筛选条 + * 现在按科室字典渲染(键 = 科室 id),不归一就会出现「点『麻醉科·精神科』筛出空结果」。 + * 演示数据里科室名与字典一一对应,所以按**科室名**把分组键换成字典 id; + * 顺带把本地已保存的旧数据一并修正(保存时写回,下一次就正常了)。 + */ +function normalizeDemoGroups(library: LocalDepartment[]): LocalDepartment[] { + return library.map((group) => { + const matched = demoDepartments.find((department) => department.name === group.name) + + return matched && matched.id !== group.key ? { ...group, key: matched.id } : group + }) +} + /** * 读取演示文书库:优先用本地保存的(科室改过、建过的),没有则用种子。 * 调用方负责再克隆一份使用,避免直接改到种子数据。 */ export function readDocumentLibrary(): LocalDepartment[] { - return readMockState(MOCK_STORAGE_KEYS.documentLibrary) ?? getDemoDocumentLibrary() + const stored = readMockState(MOCK_STORAGE_KEYS.documentLibrary) + + return normalizeDemoGroups(stored ?? getDemoDocumentLibrary()) } /** 保存演示文书库,刷新后仍可继续编辑、预览与发起签署 */ diff --git a/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue b/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue index 9206ef1..844bb18 100644 --- a/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue +++ b/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue @@ -1,23 +1,33 @@