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 @@