From d711df312fbc9a676e56ae13d32afa78c87d1afc Mon Sep 17 00:00:00 2001 From: lidf Date: Sun, 12 Apr 2026 16:43:20 +0800 Subject: [PATCH] feat(workspace): add unarchived filter and adjust card info items --- .../workspace-dashboard.css | 18 ++++++++++++ .../workspace-dashboard.html | 14 ++++++++-- .../workspace-dashboard.ts | 28 +++++++++++++------ 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/src/app/pages/workspace-dashboard/workspace-dashboard.css b/src/app/pages/workspace-dashboard/workspace-dashboard.css index 97b72b4..849f54f 100644 --- a/src/app/pages/workspace-dashboard/workspace-dashboard.css +++ b/src/app/pages/workspace-dashboard/workspace-dashboard.css @@ -235,3 +235,21 @@ .connector.active { background: var(--color-success); } + +/* Report Filter and Status Styles */ +.badge.active-filter { + background: var(--color-warning); + color: white; + border-color: var(--color-warning); +} + +.status-badge { + font-size: 11px; +} +.status-badge.archived { + color: var(--color-text-tertiary); +} +.status-badge.unarchived { + color: var(--color-error); + font-weight: 600; +} diff --git a/src/app/pages/workspace-dashboard/workspace-dashboard.html b/src/app/pages/workspace-dashboard/workspace-dashboard.html index 00a3416..9388c96 100644 --- a/src/app/pages/workspace-dashboard/workspace-dashboard.html +++ b/src/app/pages/workspace-dashboard/workspace-dashboard.html @@ -2,8 +2,14 @@
-

我的面诊笔记库

- 总归档: {{ reports.length }} 份 +
+

我的面诊笔记库

+ + {{ filterState === 'unarchived' ? '仅看未归档' : '总计: ' + reports.length + ' 份' }} + + + +
@@ -24,7 +30,9 @@
{{ task.patientName }} - · {{ task.doctorName }} + + {{ task.isArchived ? '(已归档)' : '(未归档)' }} +
diff --git a/src/app/pages/workspace-dashboard/workspace-dashboard.ts b/src/app/pages/workspace-dashboard/workspace-dashboard.ts index a34311b..66386b7 100644 --- a/src/app/pages/workspace-dashboard/workspace-dashboard.ts +++ b/src/app/pages/workspace-dashboard/workspace-dashboard.ts @@ -14,6 +14,7 @@ import { ApiService } from '../../core/api.service'; }) export class WorkspaceDashboard implements OnInit { reports: any[] = []; + filterState: 'all' | 'unarchived' = 'all'; private api = inject(ApiService); ngOnInit() { @@ -25,14 +26,18 @@ export class WorkspaceDashboard implements OnInit { try { const res = await this.api.getReportsList(); if (res && res.reports) { - completedReports = res.reports.map((r: any) => ({ - id: r.id, - coreDemand: r.data?.module1?.insight?.substring(0, 20) + '...' || '面诊分析报告(AI)', - createdAt: new Date(r.createdAt * 1000).toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }), - patientName: r.data?._meta?.patientName || r.contextId.split('/')[0].replace('recording:', '') || '未知客户', - doctorName: r.data?._meta?.doctorName || '深维面诊专属医生', - status: r.status // 'processing', 'completed', 'failed' - })); + completedReports = res.reports.map((r: any) => { + const rawName = r.data?._meta?.patientName || r.contextId.split('/')[0].replace('recording:', '') || '未知客户'; + const isArchived = !rawName.includes('unknown_client') && rawName !== '未知客户'; + return { + id: r.id, + coreDemand: r.data?.module1?.insight?.substring(0, 20) + '...' || '面诊分析报告(AI)', + createdAt: new Date(r.createdAt * 1000).toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }), + patientName: isArchived ? rawName : '访客体验号', + isArchived: isArchived, + status: r.status // 'processing', 'completed', 'failed' + }; + }); } } catch (e) { console.error('Failed to load reports from API', e); @@ -43,9 +48,16 @@ export class WorkspaceDashboard implements OnInit { } get recentReports(): any[] { + if (this.filterState === 'unarchived') { + return this.reports.filter(r => !r.isArchived); + } return this.reports; } + toggleFilter() { + this.filterState = this.filterState === 'all' ? 'unarchived' : 'all'; + } + encodeId(id: string): string { return encodeURIComponent(id); }