diff --git a/frontend/web/src/components/intelligent_eval/ConfigSnapshots.tsx b/frontend/web/src/components/intelligent_eval/ConfigSnapshots.tsx index 8337b3f..36e4466 100644 --- a/frontend/web/src/components/intelligent_eval/ConfigSnapshots.tsx +++ b/frontend/web/src/components/intelligent_eval/ConfigSnapshots.tsx @@ -132,7 +132,7 @@ export default function ConfigSnapshots({ evalId, onBack }: ConfigSnapshotsProps if (selectedSnapshot) { return ( -
+
快照详情 @@ -182,7 +182,7 @@ export default function ConfigSnapshots({ evalId, onBack }: ConfigSnapshotsProps if (compareMode && comparison) { return ( -
+
setCompareMode(false)} /> @@ -238,7 +238,7 @@ export default function ConfigSnapshots({ evalId, onBack }: ConfigSnapshotsProps } return ( -
+
+
): string { if (typeof persona.name === 'string' && persona.name) return persona.name if (typeof persona.background === 'string' && persona.background) return persona.background return JSON.stringify(persona) } +function InfoRow({ items }: { items: [string, React.ReactNode][] }) { + return ( +
+ {items.map(([k, v]) => ( +
+ {k} + {v} +
+ ))} +
+ ) +} + function FieldBlock({ label, content }: { label: string; content: string }) { return ( -
+
{label}
{content || '—'}
@@ -33,18 +44,20 @@ function PlanView({ ev }: { ev: IntelligentEval }) { if (!plan) return return (
- - {plan.estimated_sessions} - {plan.budget?.max_turns_per_session ?? '—'} - {plan.budget?.total_max_turns ?? '—'} - + + {[ + ['预估会话数', plan.estimated_sessions], + ['单会话最大轮数', plan.budget?.max_turns_per_session ?? '—'], + ['总轮数上限', plan.budget?.total_max_turns ?? '—'], + ].map(([k, v]) => ( + +
+
{k}
+
{v}
+
+ + ))} +
评测维度
@@ -97,7 +110,8 @@ interface EvalOverviewProps { } /** - * 评估详情"概览"子视图(纯展示):核心信息、用户输入、会话进度。 + * 评估详情"概览"子视图(纯展示,单列布局): + * 基本信息 → 粗计划 → 用户输入(种子集独立列)→ 会话进度。 * 审批/取消等动作由评估列表页的详情抽屉头部统一管理。 */ export default function EvalOverview({ ev, targetName }: EvalOverviewProps) { @@ -109,79 +123,76 @@ export default function EvalOverview({ ev, targetName }: EvalOverviewProps) { return (
- {/* 第一行:核心信息(基本信息 + 粗计划) */} - - - - - {targetName} - - {meta.label} - - {ev.time_window_hours} 小时 - {formatDateTime(ev.created_at)} - {formatDateTime(ev.started_at)} - {formatDateTime(ev.completed_at)} - {ev.completed_sessions}/{estimated} - + {/* 基本信息:两行横向描述,label 定宽右对齐 */} + + {meta.label}], + ['时间窗口', `${ev.time_window_hours} 小时`], + ['会话进度', `${ev.completed_sessions}/${estimated}`], + ]} /> +
+ +
+
+ + {/* 粗计划 */} + {ev.status === 'planning' && ( + ev.plan_feedback ? ( + + ) : ( + + + + OpenClaw 正在规划,产出粗计划后会自动进入待审批… + - + ) + )} - - {ev.status === 'planning' && ( - ev.plan_feedback ? ( - - ) : ( - - - - OpenClaw 正在规划,产出粗计划后会自动进入待审批… - - - ) - )} + {(ev.status === 'pending_approval' || ev.status === 'executing' || ev.status === 'completed') && ( + + + + )} - {(ev.status === 'pending_approval' || ev.status === 'executing' || ev.status === 'completed') && ( - - - - )} - -
- - {/* 第二行:用户输入(种子集独立放大区) */} + {/* 用户输入:左列目标/意图/角色堆叠,右列种子集固定高度 */} - - - - + +
+ + + +
+ +
种子集
{hasSeeds ? (
                 {JSON.stringify(ev.seeds, null, 2)}
               
) : ( -
- — -
+
)}
- {/* 第三行:会话进度(全宽) */} + {/* 会话进度(全宽) */} {showSessions && ( )} + + {/* 收尾标识:明确内容已到底,避免"看起来没显示完" */} +
+ + 已显示全部内容 + +
) } diff --git a/frontend/web/src/components/intelligent_eval/EvalReport.tsx b/frontend/web/src/components/intelligent_eval/EvalReport.tsx index aa1be6a..197a800 100644 --- a/frontend/web/src/components/intelligent_eval/EvalReport.tsx +++ b/frontend/web/src/components/intelligent_eval/EvalReport.tsx @@ -168,7 +168,7 @@ export default function EvalReport({ ev, onBack }: EvalReportProps) { }) return ( -
+
+
+
),