修正企微主办边界与工作台摘要(portal-task-first-redesign)

这个提交包含在:
2026-05-29 23:30:30 +08:00
父节点 86f887afa5
当前提交 8bd184f0b3
共修改 9 个文件,包含 296 行新增和 264 行删除
+30 -4
查看文件
@@ -28,6 +28,7 @@ type WorkItem = {
severity: "normal" | "warning" | "high";
icon: string;
priority: number;
count: number;
};
type EmptyAction = {
@@ -107,6 +108,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "warning",
icon: "fact_check",
priority: 100,
count: payload.pendingTasks.count,
});
}
@@ -125,6 +127,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: highPriorityCount > 0 ? "high" : "normal",
icon: "check_circle",
priority: 90,
count: openTodoCount,
});
}
@@ -139,6 +142,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: payload.weeklyReport.needsHelp ? "high" : "warning",
icon: "article",
priority: 72,
count: 1,
});
}
@@ -154,6 +158,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "high",
icon: "priority_high",
priority: 96,
count: payload.financeSummary.failedItemCount,
});
}
@@ -168,6 +173,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "high",
icon: "shield_person",
priority: 94,
count: payload.financeSummary.riskCount,
});
}
@@ -182,6 +188,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "warning",
icon: "payments",
priority: 86,
count: payload.financeSummary.pendingBatchCount,
});
}
}
@@ -197,6 +204,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "warning",
icon: "workspaces",
priority: 64,
count: payload.projectSummary.highPriorityTaskCount,
});
}
@@ -211,6 +219,7 @@ function buildTodayActionItems(payload: PortalHomePayload, roleCapabilities: Rol
severity: "warning",
icon: "event_upcoming",
priority: 62,
count: payload.projectSummary.followUpDueTodayCount,
});
}
@@ -231,6 +240,7 @@ function buildProgressItems(payload: PortalHomePayload) {
severity: "normal",
icon: "done_all",
priority: 30,
count: 1,
});
}
@@ -255,6 +265,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "warning",
icon: "article",
priority: 78,
count: payload.weeklySummary?.missingCount ?? 0,
});
}
@@ -269,6 +280,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "high",
icon: "support_agent",
priority: 82,
count: payload.weeklySummary?.needsHelpCount ?? 0,
});
}
@@ -283,6 +295,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "warning",
icon: "groups",
priority: 58,
count: payload.teamPresence?.unspecified ?? 0,
});
}
@@ -297,6 +310,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "warning",
icon: "flag",
priority: 74,
count: payload.projectSummary?.overdueMilestonesCount ?? 0,
});
}
@@ -311,6 +325,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "high",
icon: "warning",
priority: 76,
count: payload.projectSummary?.openRiskCount ?? 0,
});
}
@@ -325,6 +340,7 @@ function buildTeamBlockers(payload: PortalHomePayload, roleCapabilities: RoleCap
severity: "warning",
icon: "inventory_2",
priority: 60,
count: (payload.peopleLifecycle?.offboardingCount ?? 0) + (payload.peopleLifecycle?.assetReturnPendingCount ?? 0),
});
}
@@ -353,6 +369,7 @@ function buildManagementReminders(
severity: "warning",
icon: "settings",
priority: 88,
count: 1,
});
}
@@ -370,6 +387,7 @@ function buildManagementReminders(
severity: "warning",
icon: "manage_accounts",
priority: 52,
count: inactiveLoginCount,
});
}
@@ -391,6 +409,10 @@ function buildEmptyActions(permissions: string[], roleCapabilities: RoleCapabili
return actions.slice(0, roleCapabilities.canManageSystem && actions.length > 2 ? 3 : 2);
}
function sumWorkItemCount(items: WorkItem[]) {
return items.reduce((total, item) => total + Math.max(1, item.count), 0);
}
function SummaryStrip({
userName,
actionCount,
@@ -561,6 +583,10 @@ export function PortalHomePage() {
const managementReminders = buildManagementReminders(payload, roleCapabilities, canSetupWorkspace);
const emptyActions = buildEmptyActions(permissions, roleCapabilities);
const primaryItem = todayActionItems[0] ?? null;
const actionCount = sumWorkItemCount(todayActionItems);
const progressCount = sumWorkItemCount(progressItems);
const blockerCount = sumWorkItemCount(teamBlockers);
const reminderCount = sumWorkItemCount(managementReminders);
function handleCloseWelcome() {
clearWelcomeDialogFlag();
@@ -575,10 +601,10 @@ export function PortalHomePage() {
<SummaryStrip
userName={payload.greeting.name}
actionCount={todayActionItems.length}
progressCount={progressItems.length}
blockerCount={teamBlockers.length}
reminderCount={managementReminders.length}
actionCount={actionCount}
progressCount={progressCount}
blockerCount={blockerCount}
reminderCount={reminderCount}
primaryItem={primaryItem}
emptyActions={emptyActions}
/>