refactor(dev-task): 移除工时记录,改为由开始/完成日期自动计算实际工时

- 状态流转到"开发中"时自动记录 startDate
- 实际工时 = startDate → completedAt 的工作日 × 8h
- 详情抽屉移除工时记录面板,增加"开发开始日期"展示
- 列表行工时展示同步改为日期计算

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Script Generator
2026-06-12 09:31:30 +08:00
parent 7322b115c4
commit 75b0d12fa0
4 changed files with 33 additions and 13 deletions

View File

@@ -3,7 +3,7 @@
import { AlertTriangle } from 'lucide-react';
import { StatusBadge } from './StatusBadge';
import { CategoryChip } from './CategoryChip';
import { formatHours } from '@/lib/dev-task';
import { formatHours, calcActualHoursByDates } from '@/lib/dev-task';
import type { DevTask } from '@/lib/dev-task';
import type { TaskCategory } from '@/lib/task-category';
@@ -39,8 +39,8 @@ export function DevTaskRow({ task, category, onClick }: Props) {
<CategoryChip category={category} />
<StatusBadge status={task.status} />
<span className="text-[11px] text-[var(--ink-muted)] w-24 text-right tabular-nums">
{task.actualHours > 0 && <span className="text-[var(--ink-soft)]">{task.actualHours}h</span>}
{task.actualHours > 0 && ' / '}
{task.startDate && <span className="text-[var(--ink-soft)]">{calcActualHoursByDates(task.startDate, task.completedAt)}h</span>}
{task.startDate && ' / '}
{formatHours(task.estimateHours).split('')[0]}
</span>
<span className="text-[11px] text-[var(--ink-soft)] w-14 text-right truncate">{task.assigneeId}</span>