feat(产品方案): 优化计划卡片展示和排序

This commit is contained in:
Script Generator
2026-06-26 14:05:01 +08:00
parent dde7a9a623
commit 4dcdad50c3
3 changed files with 112 additions and 23 deletions

View File

@@ -78,6 +78,26 @@ export interface VersionPlan {
export type PlanType = VersionPlan['type'];
function getPlanCreatedAtTime(plan: VersionPlan): number {
const time = new Date(plan.createdAt).getTime();
return Number.isFinite(time) ? time : 0;
}
function getPlanIdTime(plan: VersionPlan): number {
const match = /^plan-(\d+)$/.exec(plan.id);
if (!match) return 0;
const time = Number(match[1]);
return Number.isFinite(time) ? time : 0;
}
export function sortPlansNewestFirst(plans: VersionPlan[]): VersionPlan[] {
return [...plans].sort((a, b) => {
const createdDiff = getPlanCreatedAtTime(b) - getPlanCreatedAtTime(a);
if (createdDiff !== 0) return createdDiff;
return getPlanIdTime(b) - getPlanIdTime(a);
});
}
export function calcPlanProgress(tasks?: PlanTask[]): number {
if (!tasks || tasks.length === 0) return 0;
const completed = tasks.filter((t) => t.status === 'completed').length;