diff --git a/apps/web/components/dev-task/DevTaskCreateModal.tsx b/apps/web/components/dev-task/DevTaskCreateModal.tsx index b1fbd85..3b7ae01 100644 --- a/apps/web/components/dev-task/DevTaskCreateModal.tsx +++ b/apps/web/components/dev-task/DevTaskCreateModal.tsx @@ -57,6 +57,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline, const [predecessorIds, setPredecessorIds] = useState([]); const [description, setDescription] = useState(''); const [overdueVersionReason, setOverdueVersionReason] = useState(''); + const [prototypeNotes, setPrototypeNotes] = useState(''); useEffect(() => { if (categories[0] && !categoryId) setCategoryId(categories[0].id); @@ -95,6 +96,15 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline, const handleSubmit = () => { if (!canSubmit) return; + const reqRef = versionReqs.find((r) => r.id === requirementId); + const references = [ + ...(reqRef ? [{ type: 'requirement' as const, id: reqRef.code, label: `${reqRef.code} ${reqRef.title}` }] : []), + ...prototypeNotes.split(/[,,\s]+/).map((s) => s.trim()).filter(Boolean).map((note) => ({ + type: 'prototype_note' as const, + id: note, + label: note, + })), + ]; createTask({ requirementId, title: title.trim(), @@ -105,6 +115,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline, priority: effectivePriority, expectedStartAt: expectedStartISO, expectedEndAt: expectedEndISO, + estimateHours, actualStartAt: undefined, actualEndAt: undefined, status: 'todo', @@ -114,6 +125,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline, riskLevel: undefined, delayReason: undefined, overdueVersionReason: isOverdueVersion ? overdueVersionReason.trim() : undefined, + references: references.length > 0 ? references : undefined, createdBy: user?.name || '系统', }); onCreated?.(); @@ -212,6 +224,11 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline,