fix(dev-task): 修复优先级无法手动选择的问题

优先级默认继承需求,用户手动修改后不再被覆盖。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Script Generator
2026-06-11 18:56:19 +08:00
parent d619846b93
commit 7322b115c4

View File

@@ -37,7 +37,8 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline,
const [requirementId, setRequirementId] = useState(versionReqs[0]?.id || '');
const [categoryId, setCategoryId] = useState(categories[0]?.id || '');
const [assigneeId, setAssigneeId] = useState(user?.name || '');
const [priority, setPriority] = useState<Priority>('P2');
const [priority, setPriority] = useState<Priority>(versionReqs[0]?.priority || 'P2');
const [priorityManuallySet, setPriorityManuallySet] = useState(false);
const [estimateHours, setEstimateHours] = useState<number>(8);
const [dueDate, setDueDate] = useState('');
const [predecessorIds, setPredecessorIds] = useState<string[]>([]);
@@ -45,7 +46,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline,
const [overdueReason, setOverdueReason] = useState('');
const selectedReq = versionReqs.find((r) => r.id === requirementId);
const effectivePriority = selectedReq?.priority || priority;
const effectivePriority = priorityManuallySet ? priority : (selectedReq?.priority || priority);
const isOverdue = !!(dueDate && versionDeadline && dueDate > versionDeadline);
const canSubmit = title.trim() && requirementId && categoryId && assigneeId && estimateHours > 0 && (!isOverdue || overdueReason.trim());
@@ -89,7 +90,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline,
</div>
<div>
<label className="block text-[12px] text-[var(--ink-soft)] mb-1"> *</label>
<select value={requirementId} onChange={(e) => { setRequirementId(e.target.value); const r = versionReqs.find((x) => x.id === e.target.value); if (r) setPriority(r.priority); }} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none">
<select value={requirementId} onChange={(e) => { setRequirementId(e.target.value); const r = versionReqs.find((x) => x.id === e.target.value); if (r && !priorityManuallySet) setPriority(r.priority); }} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none">
{versionReqs.map((r) => <option key={r.id} value={r.id}>{r.code} {r.title}</option>)}
</select>
</div>
@@ -111,7 +112,7 @@ export function DevTaskCreateModal({ versionId, requirementIds, versionDeadline,
<div className="grid grid-cols-3 gap-3">
<div>
<label className="block text-[12px] text-[var(--ink-soft)] mb-1"></label>
<select value={effectivePriority} onChange={(e) => setPriority(e.target.value as Priority)} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none">
<select value={effectivePriority} onChange={(e) => { setPriority(e.target.value as Priority); setPriorityManuallySet(true); }} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none">
{(['P0','P1','P2','P3'] as Priority[]).map((p) => <option key={p} value={p}>{p}</option>)}
</select>
</div>