diff --git a/apps/web/components/version/PlanTab.tsx b/apps/web/components/version/PlanTab.tsx index de0d817..2dd4e99 100644 --- a/apps/web/components/version/PlanTab.tsx +++ b/apps/web/components/version/PlanTab.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState } from 'react'; -import { Plus, Pencil, Trash2, X, Check, ExternalLink, FileUp, Link2 } from 'lucide-react'; +import { Plus, Pencil, Trash2, X, Check, ExternalLink, FileUp, Link2, Play } from 'lucide-react'; import type { VersionPlan, PlanTask } from '@/lib/version-plan'; import { calcPlanDuration, formatDuration, calcTotalDuration, calcPlanProgress, calcLinkedReqProgress } from '@/lib/version-plan'; @@ -56,19 +56,11 @@ export function PlanTab({ plans, versionId, versionDeadline, currentUserName, pl
{typePlans.map((plan) => { const now = new Date().toISOString(); - const nowDate = now.slice(0, 10); - // 自动进入进行中(到了计划开始日期) - const shouldAutoStart = plan.status === 'pending' && plan.startTime <= nowDate; - if (shouldAutoStart && !plan.actualStartAt) { - onUpdate(plan.id, { status: 'in_progress' }); - } - const effectiveStatus = shouldAutoStart ? 'in_progress' : plan.status; // 耗时用实际时间戳计算 - const actualStart = plan.actualStartAt || (shouldAutoStart ? now : null); - const dur = effectiveStatus === 'completed' && plan.completedAt && actualStart - ? calcPlanDuration(actualStart, plan.completedAt) - : effectiveStatus === 'in_progress' && actualStart - ? calcPlanDuration(actualStart, now) + const dur = plan.status === 'completed' && plan.completedAt && plan.actualStartAt + ? calcPlanDuration(plan.actualStartAt, plan.completedAt) + : plan.status === 'in_progress' && plan.actualStartAt + ? calcPlanDuration(plan.actualStartAt, now) : { days: 0, hours: 0 }; const durText = dur.days > 0 || dur.hours > 0 ? formatDuration(dur.days, dur.hours) : '-'; return ( @@ -77,8 +69,8 @@ export function PlanTab({ plans, versionId, versionDeadline, currentUserName, pl
{plan.title} - - {STATUS_LABEL[effectiveStatus]} + + {STATUS_LABEL[plan.status]}
@@ -164,7 +156,7 @@ export function PlanTab({ plans, versionId, versionDeadline, currentUserName, pl ) : null; })}
- {calcLinkedReqProgress(plan.linkedRequirementIds, plan.completedRequirementIds) === 100 && effectiveStatus !== 'completed' && ( + {calcLinkedReqProgress(plan.linkedRequirementIds, plan.completedRequirementIds) === 100 && plan.status !== 'completed' && (
所有需求已完成,请提交原型成果 @@ -174,11 +166,18 @@ export function PlanTab({ plans, versionId, versionDeadline, currentUserName, pl )}
- {effectiveStatus !== 'completed' && ( + {plan.status === 'pending' && ( + + )} + {plan.status !== 'completed' && plan.status !== 'pending' && ( + + )} + {plan.status !== 'completed' && ( <> -