日期: 2025-10-24
问题: 组长端工作量负载概览图未显示全部组员,且项目负责人显示"未分配"
根本原因: 数据库中 Project 表的 assignee 字段为空
代码位置: src/app/pages/team-leader/services/designer.service.ts 第330行
designerName: assignee?.get('name') || '未分配',
数据流程:
Parse数据库 → Project表 → assignee字段(Pointer<Profile>) 
  ↓
如果assignee为null → designerName = '未分配'
根本原因: 只统计了已分配项目的设计师
代码位置: src/app/pages/team-leader/dashboard/dashboard.ts 约2000行
// ❌ 问题代码:只获取有项目的设计师
const assigned = this.filteredProjects.filter(p => !!p.designerName);
const designers = Array.from(new Set(assigned.map(p => p.designerName)));
结果:
修改 updateWorkloadGantt() 方法,使用真实的设计师列表而非从项目中提取:
// ✅ 修改后:使用真实的设计师列表
const designers = this.realDesigners.length > 0 
  ? this.realDesigners.map(d => d.name)
  : Array.from(new Set(this.filteredProjects.filter(p => p.designerName && p.designerName !== '未分配').map(p => p.designerName)));
// 如果没有设计师,显示提示
if (designers.length === 0) {
  // 显示"暂无组员数据"
  return;
}
在数据库层面为项目分配设计师:
/**
 * 在designer.service.ts中已有方法
 */
async assignProject(projectId: string, designerId: string): Promise<boolean> {
  const project = Parse.Object.extend('Project').createWithoutData(projectId);
  const designer = Parse.Object.extend('Profile').createWithoutData(designerId);
  
  project.set('assignee', designer);
  project.set('status', '进行中');
  
  await project.save();
  return true;
}
检查步骤:
Project 表assignee 字段assigneeSQL修复(如果有SQL访问权限):
-- 查看未分配的项目
SELECT objectId, title, status, assignee 
FROM Project 
WHERE assignee IS NULL OR assignee = '';
-- 批量分配给某个设计师
UPDATE Project 
SET assignee = {Profile的指针} 
WHERE assignee IS NULL;
文件: src/app/pages/team-leader/dashboard/dashboard.ts
位置: updateWorkloadGantt() 方法内
修改内容: