} onClick={() => setSelectedSnapshot(null)}>返回
快照详情
@@ -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]) => (
+
+
+
+ ))}
+
评测维度
@@ -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 (
-