auto-sync: 2026-05-19 13:59:12
This commit is contained in:
@@ -192,16 +192,10 @@ function VerifyCheckpoint({
|
||||
// ── Action Checkpoint ──
|
||||
|
||||
function ActionCheckpoint({
|
||||
taskId,
|
||||
info,
|
||||
onDone,
|
||||
}: {
|
||||
taskId: string;
|
||||
info: CheckpointInfo;
|
||||
onDone: () => void;
|
||||
}) {
|
||||
const cp = info.checkpoint;
|
||||
const steps = cp.actionSteps || [];
|
||||
taskId, cp, onDone,
|
||||
}: { taskId: string; cp: Checkpoint; onDone: () => void }) {
|
||||
const payload: ActionPayload = JSON.parse(cp.payload || '{}');
|
||||
const steps = payload.steps || [];
|
||||
const [completedSteps, setCompletedSteps] = useState<Set<string>>(new Set());
|
||||
const [note, setNote] = useState('');
|
||||
const [loading, setLoading] = useState(false);
|
||||
@@ -221,12 +215,11 @@ function ActionCheckpoint({
|
||||
if (!allDone) return;
|
||||
setLoading(true);
|
||||
try {
|
||||
const r = await api.humanInputRespond(taskId, {
|
||||
node_id: info.node_id,
|
||||
action: 'complete',
|
||||
completed_steps: Array.from(completedSteps),
|
||||
verification_note: note,
|
||||
const res = await fetch(`/api/projects/${api._getProjectId()}/tasks/${taskId}/checkpoints/${cp.id}/approve`, {
|
||||
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ resolved_by: 'user', note }),
|
||||
});
|
||||
const r = await res.json();
|
||||
if (r.ok) { toast('✅ 已确认', 'ok'); onDone(); }
|
||||
else toast(r.error || '操作失败', 'err');
|
||||
} catch { toast('服务器连接失败', 'err'); }
|
||||
|
||||
Reference in New Issue
Block a user