perf(web): 优化大数据量页面切换与聚合性能

This commit is contained in:
Script Generator
2026-07-03 09:43:36 +08:00
parent 554ab520d1
commit a509bb4922
32 changed files with 1087 additions and 360 deletions

View File

@@ -37,6 +37,7 @@ export function aggregateWorkItems(
requirementVersionMap: Map<string, string>,
): WorkItem[] {
const items: WorkItem[] = [];
if (!userName.trim()) return items;
// Plans: owner === userName
plans.filter((p) => p.owner === userName).forEach((p) => {
@@ -127,6 +128,17 @@ export function getWorkspacePendingCount(items: ReadonlyArray<Pick<WorkItem, 'co
return items.reduce((sum, item) => sum + (item.completed ? 0 : 1), 0);
}
export function getWorkspacePendingCountByVersion(
items: ReadonlyArray<Pick<WorkItem, 'versionId' | 'completed'>>,
): Map<string, number> {
const map = new Map<string, number>();
for (const item of items) {
if (!item.versionId || item.completed) continue;
map.set(item.versionId, (map.get(item.versionId) ?? 0) + 1);
}
return map;
}
export const WORK_ITEM_TYPE_LABEL: Record<WorkItemType, string> = {
plan_research: '调研',
plan_product: '产品方案',