From a421cb7860dbb8eb7e406dfafd404c3cdbcaf3c2 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Wed, 20 May 2026 10:26:42 +0800 Subject: [PATCH] auto-sync: 2026-05-20 10:26:42 --- src/frontend/src/components/TaskModal.tsx | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/frontend/src/components/TaskModal.tsx b/src/frontend/src/components/TaskModal.tsx index 60d40b8..f5cab6c 100644 --- a/src/frontend/src/components/TaskModal.tsx +++ b/src/frontend/src/components/TaskModal.tsx @@ -434,6 +434,55 @@ export default function TaskModal() { )} + {/* 评论输入框 */} +
+ +
+ + { + if (e.key === 'Enter') { + const body = (e.target as HTMLInputElement).value.trim(); + const typeEl = document.getElementById('comment-type-select') as HTMLSelectElement; + if (!body || !task) return; + const pid = selectedProjectId; + if (!pid) return; + fetch(`/api/projects/${pid}/tasks/${task.id}/comments`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ author: 'user', body, comment_type: typeEl?.value || 'general' }), + }).then(r => r.json()).then(r => { + if (r.ok) { + (e.target as HTMLInputElement).value = ''; + loadV2TaskDetail(task.id); + toast('评论已发送', 'ok'); + } else { + toast(r.error || '评论失败', 'err'); + } + }).catch(() => toast('评论失败', 'err')); + } + }} + /> +
+
+ {/* 决策记录 */} {decisions.length > 0 && (