[x] 创建 7 个子组件
[x] 简化 dashboard.ts 主组件
需要将原有的 HTML 替换为使用新的子组件:
<!-- 替换统计指标部分 -->
<app-dashboard-metrics
[overdueCount]="overdueProjects.length"
[dueSoonCount]="dueSoonProjects.length"
[pendingApprovalCount]="pendingApprovalProjects.length"
[pendingAssignmentCount]="pendingAssignmentProjects.length"
[overloadedDesignersCount]="overloadedDesignersCount"
[averageWorkloadRate]="averageWorkloadRate"
(filterStatus)="filterByStatus($event)">
</app-dashboard-metrics>
<!-- 替换筛选条件栏 -->
<app-dashboard-filter-bar
[projects]="projects"
[designers]="designers"
[corePhases]="corePhases"
[(searchTerm)]="searchTerm"
[(selectedType)]="selectedType"
[(selectedUrgency)]="selectedUrgency"
[(selectedStatus)]="selectedStatus"
[(selectedDesigner)]="selectedDesigner"
[(selectedMemberType)]="selectedMemberType"
[(selectedCorePhase)]="selectedCorePhase"
[(selectedProjectId)]="selectedProjectId"
[(selectedTimeWindow)]="selectedTimeWindow"
(filterChange)="onFilterChange($event)"
(viewProject)="viewProjectDetails($event)">
</app-dashboard-filter-bar>
<!-- 替换项目看板 -->
<app-project-kanban
*ngIf="!showGanttView"
[corePhases]="corePhases"
[projects]="filteredProjects"
(viewProject)="viewProjectDetailsByPhase($event.projectId, $event.phaseId)"
(openSmartMatch)="openSmartMatch($event)"
(assignProject)="quickAssignProject($event)"
(reviewProject)="reviewProjectQuality($event)">
</app-project-kanban>
<!-- 替换待办任务板块 -->
<app-todo-section
[todoTasksFromIssues]="todoTasksFromIssues"
[loadingTodoTasks]="loadingTodoTasks"
[todoTaskError]="todoTaskError"
[urgentEvents]="urgentEvents"
[loadingUrgentEvents]="loadingUrgentEvents"
(refresh)="refreshTodoTasks()"
(navigateToIssue)="navigateToIssue($event)"
(markAsRead)="markAsRead($event)"
(projectClick)="viewProjectDetails($event)"
(confirmEventOnTime)="confirmEventOnTime($event)"
(markEventAsStagnant)="markEventAsStagnant($event)"
(resolveUrgentEvent)="resolveUrgentEvent($event)"
(createTodoFromEvent)="createTodoFromEvent($event)">
</app-todo-section>
<!-- 替换工作负载甘特图 -->
<app-workload-gantt
*ngIf="showGanttView"
[designerWorkloadMap]="designerWorkloadMap"
[realDesigners]="realDesigners"
[filteredProjects]="filteredProjects"
(employeeClick)="onEmployeeClick($event)">
</app-workload-gantt>
<!-- 替换智能推荐弹窗 -->
<app-smart-match-modal
[visible]="showSmartMatch"
[selectedProject]="selectedProject"
[recommendations]="recommendations"
(close)="closeSmartMatch()"
(assign)="assignToDesigner($event)">
</app-smart-match-modal>
<!-- 替换预警提醒 -->
<app-dashboard-alerts
[showAlert]="showAlert"
[overdueProjects]="overdueProjects"
[urgentPinnedProjects]="urgentPinnedProjects"
(viewAllOverdue)="viewAllOverdueProjects()"
(closeAlert)="closeAlert()"
(filterStatus)="filterByStatus($event)">
</app-dashboard-alerts>
如果子组件的样式需要调整:
建议按以下顺序替换和测试,降低风险:
状态: 🟡 等待模板更新 优先级: 🔴 高 预计工作量: 2-4小时