⚠️
{{ overdueProjects.length }}
已延期项目
{{ dueSoonProjects.length }}
临期项目(3天内)
📋
{{ pendingApprovalProjects.length }}
待组长确认项目
🎯
{{ pendingAssignmentProjects.length }}
待分配方案项目
🔥
{{ overloadedDesignersCount }}
超负荷设计师
📊
{{ averageWorkloadRate.toFixed(0) }}%
平均负载率

项目监控大盘

@if (selectedStatus !== 'all') { }

工作量负载概览

设计师每日工作状态一目了然

空闲 忙碌 超负荷 请假
@if (showGanttView) {
项目负载时间轴
👤 设计师按负载由高到低排列 | 🎨 每个条形代表一个项目 | 🔴超期 🟠临期 🟢正常
} @if (!showGanttView) {
@for (core of corePhases; track core.id) {

{{ core.name }}

{{ getProjectCountByCorePhase(core.id) }}
}
@for (core of corePhases; track core.id) {
@for (project of getProjectsByCorePhase(core.id); track project.id) {
@if (isPendingApproval(project)) {
📋 待审批
}

{{ project.name }}

{{ project.memberType === 'vip' ? 'VIP' : '普通' }} {{ getUrgencyLabel(project.urgency) }}

负责人: {{ project.designerName || '未分配' }}

{{ project.isOverdue ? '超期' + project.overdueDays + '天' : (project.dueSoon ? '临期: ' + (project.deadline | date:'MM-dd') : '截止: ' + (project.deadline | date:'MM-dd')) }}

} @if (getProjectsByCorePhase(core.id).length === 0) {
📦

暂无项目

}
}
}

待办任务

@for (task of todoTasks; track task.id) {

{{ task.title }}

{{ getPriorityLabel(task.priority) }}

{{ task.description }}

截止时间: {{ task.deadline | date:'yyyy-MM-dd HH:mm' }}

}
@if (showAlert && overdueProjects.length > 0) {

⚠️ 超期项目提醒

    @for (project of overdueProjects.slice(0, 3); track $index) {
  • {{ project.name }} ({{ project.designerName }} 负责) - 超期{{ project.overdueDays }}天
  • }
} @if (urgentPinnedProjects && urgentPinnedProjects.length > 0) {
紧急任务固定区(超期 + 高紧急)
@for (p of urgentPinnedProjects.slice(0, 3); track $index) {
{{ p.name }} {{ p.designerName || '未分配' }} · 超期{{ p.overdueDays }}天
} @if (urgentPinnedProjects.length > 3) { }
}
@if (showEmployeeDetailPanel && selectedEmployeeDetail) {

{{ selectedEmployeeDetail.name }} 详情

负载概况

当前负责项目数: {{ selectedEmployeeDetail.currentProjects }} 个
@if (selectedEmployeeDetail.projectData.length > 0) {
核心项目:
@for (project of selectedEmployeeDetail.projectData; track project.id) { {{ project.name }} } @if (selectedEmployeeDetail.currentProjects > selectedEmployeeDetail.projectData.length) { +{{ selectedEmployeeDetail.currentProjects - selectedEmployeeDetail.projectData.length }} }
}

负载详细日历

@if (selectedEmployeeDetail.calendarData) {
{{ selectedEmployeeDetail.calendarData.currentMonth | date:'yyyy年M月' }}
@for (day of selectedEmployeeDetail.calendarData.days; track day.date.getTime()) {
{{ day.date.getDate() }}
@if (day.projectCount > 0) {
{{ day.projectCount }}个项目
}
}
今天
有项目
高负载
}

请假明细(未来7天)

@if (selectedEmployeeDetail.leaveRecords.length > 0) { @for (record of selectedEmployeeDetail.leaveRecords; track record.id) { }
日期 状态 备注
{{ record.date | date:'M月d日' }} {{ record.isLeave ? '请假' : '正常' }} {{ record.isLeave ? getLeaveTypeText(record.leaveType) : '-' }}
} @else {

未来7天无请假安排

}

红色标记说明

{{ selectedEmployeeDetail.redMarkExplanation }}

能力问卷

@if (selectedEmployeeDetail.surveyCompleted && selectedEmployeeDetail.surveyData) {
已完成问卷 {{ selectedEmployeeDetail.surveyData.createdAt | date:'yyyy-MM-dd HH:mm' }}
@if (!showFullSurvey) {
您的能力画像
@if (getCapabilitySummary(selectedEmployeeDetail.surveyData.answers); as summary) {
擅长风格: {{ summary.styles }}
擅长空间: {{ summary.spaces }}
技术优势: {{ summary.advantages }}
项目难度: {{ summary.difficulty }}
周承接量: {{ summary.capacity }}
紧急订单: {{ summary.urgent }} @if (summary.urgentLimit) { (每月不超过{{summary.urgentLimit}}次) }
进度同步: {{ summary.feedback }}
沟通方式: {{ summary.communication }}
}
} @if (showFullSurvey) {
完整问卷答案(共 {{ selectedEmployeeDetail.surveyData.answers.length }} 道题):
@for (answer of selectedEmployeeDetail.surveyData.answers; track $index) {
Q{{$index + 1}}: {{ answer.question }}
@if (!answer.answer) { 未填写(选填) } @else if (answer.type === 'single' || answer.type === 'text' || answer.type === 'textarea' || answer.type === 'number') { {{ answer.answer }} } @else if (answer.type === 'multiple') { @if (Array.isArray(answer.answer)) { @for (opt of answer.answer; track opt) { {{ opt }} } } @else { {{ answer.answer }} } } @else if (answer.type === 'scale') {
{{ answer.answer }} / 10
} @else { {{ answer.answer }} }
}
}
} @else {

该员工尚未完成能力问卷

}
} @if (showCalendarProjectList) {
} @if (showSmartMatch) {
}