"use client"; import { useEffect, useState } from "react"; import { api, formatDateTime } from "@/lib/api"; import type { AuditLog, TaskRun } from "@/lib/types"; import StatusBadge from "@/components/StatusBadge"; export default function LogsPage() { const [tasks, setTasks] = useState([]); const [audit, setAudit] = useState([]); useEffect(() => { Promise.all([api.get("/logs/tasks"), api.get("/logs/audit")]).then(([taskRows, auditRows]) => { setTasks(taskRows); setAudit(auditRows); }); }, []); return (

运行日志

{tasks.map((task) => ( ))}
任务 ID 开始时间 结束时间 状态 场次 问答 失败 错误 重试
{task.id} {formatDateTime(task.started_at)} {formatDateTime(task.ended_at)} {task.sessions_processed}/{task.sessions_scanned} {task.qa_created} {task.qa_failed} {task.error_message ?? "-"} {task.retry_count}
{audit.map((log) => ( ))}
日志 ID 对象 动作 前状态 后状态 备注 时间
{log.id} {log.target_type} #{log.target_id} {log.action} {log.before_status ?? "-"} {log.after_status ?? "-"} {log.comment ?? "-"} {formatDateTime(log.created_at)}
); }