日期: 2025-10-22 15:00
需求: 恢复到之前更清晰的3状态版本(空闲/忙碌/超负荷)
用户反馈之前的优化(4级渐进色:0/1/2/3+项目)不如原版本清晰。
原版本使用3种明确状态:
这种方式更直观,一眼就能看出设计师的工作状态。
文件: dashboard.html 第75-80行
<div class="legend">
  <span class="legend-item"><span class="dot idle"></span>空闲</span>
  <span class="legend-item"><span class="dot busy"></span>忙碌</span>
  <span class="legend-item"><span class="dot overload"></span>超负荷</span>
  <span class="legend-item"><span class="dot leave"></span>请假</span>
</div>
变更说明:
文件: dashboard.ts 第1922-1943行
if (projectCount === 0) {
  status = 'idle';
  color = '#f0fdf4'; // 最浅绿色
} else if (projectCount === 1) {
  status = 'light-busy';
  color = '#86efac'; // 浅绿色
} else if (projectCount === 2) {
  status = 'busy';
  color = '#22c55e'; // 中绿色
} else {
  status = 'overload';
  color = '#16a34a'; // 深绿色
}
if (projectCount === 0) {
  status = 'idle';
  color = '#d1fae5'; // 空闲-浅绿色(0个项目)
} else if (projectCount >= 3) {
  status = 'overload';
  color = '#fecaca'; // 超负荷-浅红色(≥3个项目)
} else {
  status = 'busy';
  color = '#bfdbfe'; // 忙碌-浅蓝色(1-2个项目)
}
优势对比:
| 维度 | 4级渐进色 | 3状态清晰版 | 
|---|---|---|
| 颜色区分 | 绿色系渐变 | 绿/蓝/红 三种颜色 | 
| 视觉识别 | 需要仔细区分深浅 | 一眼识别不同颜色 | 
| 语义表达 | 项目数量(0/1/2/3+) | 工作状态(空闲/忙碌/超负荷) | 
| 决策支持 | 需要计算负载 | 直接看到状态 | 
文件: dashboard.ts 第1973-1991行
let statusBadge = '';
if (status === 'leave') {
  statusText = '请假';
  statusColor = '#6b7280';
  statusBadge = '<span style="background:#e5e7eb;color:#374151;padding:2px 8px;border-radius:4px;font-size:11px;">请假</span>';
} else if (projectCount === 0) {
  statusText = '空闲';
  statusColor = '#10b981';
  statusBadge = '<span style="background:#d1fae5;color:#059669;padding:2px 8px;border-radius:4px;font-size:11px;">🟢 空闲</span>';
} else if (projectCount >= 3) {
  statusText = '超负荷';
  statusColor = '#dc2626';
  statusBadge = '<span style="background:#fecaca;color:#dc2626;padding:2px 8px;border-radius:4px;font-size:11px;">🔴 超负荷</span>';
} else {
  statusText = '忙碌';
  statusColor = '#3b82f6';
  statusBadge = '<span style="background:#bfdbfe;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:11px;">🔵 忙碌</span>';
}
┌─────────────────────────────────┐
│ 张三  🔴 超负荷                 │
├─────────────────────────────────┤
│ 📅 10月23日 周三                │
│ 📊 项目数量: 4个                │
├─────────────────────────────────┤
│ 项目列表:                       │
│   1. 现代简约客厅设计           │
│   2. 轻奢卧室方案               │
│   3. 北欧风格书房               │
│   4. 工业风餐厅设计             │
├─────────────────────────────────┤
│ 💡 点击查看设计师详细信息       │
└─────────────────────────────────┘
新增特性:
文件: dashboard-new-styles.scss 第544-565行
.dot {
  width: 20px;
  height: 16px;
  border-radius: 4px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  
  &.idle {
    background: #d1fae5; // 空闲-浅绿色(0个项目)
  }
  
  &.busy {
    background: #bfdbfe; // 忙碌-浅蓝色(1-2个项目)
  }
  
  &.overload {
    background: #fecaca; // 超负荷-浅红色(≥3个项目)
  }
  
  &.leave {
    background: #e5e7eb; // 请假-灰色
  }
}
移除的类:
.light-busy - 不再需要文件: dashboard.ts 第1958-1964行
title: {
  text: this.workloadGanttScale === 'week' ? '未来7天工作状态' : '未来30天工作状态',
  subtext: '🟢空闲  🔵忙碌  🔴超负荷',
  left: 'center',
  textStyle: { fontSize: 14, color: '#374151', fontWeight: 600 },
  subtextStyle: { fontSize: 12, color: '#6b7280' }
}
改进:
设计师A  ░░░░░░░░░░░░░░  ← 最浅绿 (0项目)
设计师B  ▓▓░░▓░░░░░░░░  ← 浅绿/中绿混合 (1-2项目)
设计师C  ████████░░░░░  ← 深绿 (3+项目)
问题:
设计师A  ░░░░░░░░░░░░░░  ← 🟢 浅绿色 = 空闲
设计师B  ████░░████░░░  ← 🔵 浅蓝色 = 忙碌
设计师C  ████████████░  ← 🔴 浅红色 = 超负荷
优势:
| 颜色 | 色值 | 语义 | 心理暗示 | 
|---|---|---|---|
| 🟢 浅绿色 | #d1fae5 | 空闲 | 安全、可用、积极 | 
| 🔵 浅蓝色 | #bfdbfe | 忙碌 | 稳定、正常、工作中 | 
| 🔴 浅红色 | #fecaca | 超负荷 | 警告、注意、需要关注 | 
| ⚪ 灰色 | #e5e7eb | 请假 | 中性、不可用 | 
颜色区分度不够
语义不够明确
决策效率低
符合认知习惯
色彩对比度高
决策路径短
操作: 打开工作负载概览
效果:
对比:
操作: 打开工作负载概览
效果:
对比:
操作: 切换周/月视图
效果:
项目数量     状态        颜色        说明
────────────────────────────────────────
0个         idle        #d1fae5     完全空闲,可接单
1-2个       busy        #bfdbfe     正常工作,适度忙碌
≥3个        overload    #fecaca     超负荷,不宜派单
请假        leave       #e5e7eb     请假状态(待实现)
根据设计行业的经验:
这个阈值可以根据实际情况调整(在代码中修改projectCount >= 3)。
type WorkloadStatus = 'idle' | 'busy' | 'overload' | 'leave';
移除:
'light-busy' - 简化状态,减少认知负担const colorMap: Record<WorkloadStatus, string> = {
  idle: '#d1fae5',      // 空闲-浅绿色
  busy: '#bfdbfe',      // 忙碌-浅蓝色
  overload: '#fecaca',  // 超负荷-浅红色
  leave: '#e5e7eb'      // 请假-灰色
};
const badgeConfig: Record<WorkloadStatus, { bg: string; color: string; icon: string; text: string }> = {
  idle: { 
    bg: '#d1fae5', 
    color: '#059669', 
    icon: '🟢', 
    text: '空闲' 
  },
  busy: { 
    bg: '#bfdbfe', 
    color: '#1d4ed8', 
    icon: '🔵', 
    text: '忙碌' 
  },
  overload: { 
    bg: '#fecaca', 
    color: '#dc2626', 
    icon: '🔴', 
    text: '超负荷' 
  },
  leave: { 
    bg: '#e5e7eb', 
    color: '#374151', 
    icon: '⚪', 
    text: '请假' 
  }
};
| 文件 | 变更内容 | 行数 | 
|---|---|---|
| dashboard.html | 图例改回"空闲/忙碌/超负荷" | 75-80 | 
| dashboard.ts | 状态判断逻辑简化为3状态 | 1922-1943 | 
| dashboard.ts | Tooltip徽章增强 | 1973-1991 | 
| dashboard.ts | 图表标题优化 | 1958-1964 | 
| dashboard-new-styles.scss | 移除light-busy样式 | 544-565 | 
用户原话:
"工作量负载没有之前显示忙碌、空闲、请假、高负荷的时候清晰"
分析:
直观性 > 精确性
状态 > 数量
色彩语义 > 色彩渐变
组长使用时:
好的可视化设计,应该让用户"看见"而不是"计算"
实施完成时间: 2025-10-22 15:00
状态: ✅ 已完成并恢复
测试状态: ✅ 无Lint错误
参考文档: 2025102212-workload-gantt-redesign.md