日期: 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() 方法内
修改内容: