feat(版本详情): 接入计划时间与日期选择

This commit is contained in:
Script Generator
2026-06-29 14:18:58 +08:00
parent dde11c0899
commit 0f64a17d44
20 changed files with 601 additions and 12 deletions

View File

@@ -16,6 +16,7 @@ import {
} from '@/lib/version-plan';
import { formatDateTime } from '@/lib/format';
import { FieldError } from '@/components/FieldError';
import { WorkDateTimePicker } from '@/components/WorkDateTimePicker';
import { AiDecomposeButton } from './AiDecomposeButton';
import type { VersionWithContext } from '@/lib/derive';
import type { Requirement } from '@/lib/requirement';
@@ -459,11 +460,22 @@ function PlanFormModal({ initial, planType, versionId, versionDeadline, currentU
<div className="grid grid-cols-2 gap-3">
<div>
<label className="text-[12px] font-medium text-[var(--ink-soft)] mb-1 block"></label>
<input type="datetime-local" value={startTime} onChange={(e) => setStartTime(e.target.value)} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg-card)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none" />
<WorkDateTimePicker
value={startTime}
onChange={setStartTime}
placeholder="选择计划开始时间"
defaultHour={9}
/>
</div>
<div>
<label className="text-[12px] font-medium text-[var(--ink-soft)] mb-1 block"></label>
<input type="datetime-local" value={endTime} onChange={(e) => { setEndTime(e.target.value); setEndTimeError(''); }} required className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg-card)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none" />
<WorkDateTimePicker
value={endTime}
onChange={(next) => { setEndTime(next); setEndTimeError(''); }}
placeholder="选择计划截止时间"
defaultHour={18}
popoverAlign="right"
/>
<FieldError message={endTimeError} />
</div>
</div>