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' && (
<>
-