import React, { useState, useEffect } from "react"; import { Card, Descriptions, Button, message, Tag, Spin } from "antd"; import { ArrowLeftOutlined, CopyOutlined } from "@ant-design/icons"; import { useParams, useNavigate } from "react-router-dom"; import { toolsCallLogApi } from "../services/api"; import dayjs from "dayjs"; const ToolsCallLogDetail = () => { const { id } = useParams(); const navigate = useNavigate(); const [loading, setLoading] = useState(false); const [data, setData] = useState(null); // 格式化时间戳为 YYYY-MM-DD HH:mm:ss const formatTimestamp = (timestamp) => { if (!timestamp) return "-"; return dayjs(timestamp).format("YYYY-MM-DD HH:mm:ss"); }; // 计算耗时(秒) const calculateDuration = (callTime, finishTime) => { if (!callTime || !finishTime) return "-"; return ((finishTime - callTime) / 1000).toFixed(2) + "s"; }; // 复制到剪贴板 const copyToClipboard = async (text) => { try { await navigator.clipboard.writeText(text); message.success("复制成功"); } catch (error) { message.error("复制失败"); } }; // 获取详情数据 const fetchDetail = async () => { setLoading(true); try { const response = await toolsCallLogApi.getDetail(id); setData(response.data); } catch (error) { message.error("获取详情失败"); console.error("获取工具调用日志详情失败:", error); } finally { setLoading(false); } }; // 返回列表 const handleBack = () => { navigate("/tools-call-log"); }; useEffect(() => { if (id) { fetchDetail(); } }, [id]); if (loading) { return (
未找到相关数据
{data.request_params || "无请求参数"}
{data.response || "无响应数据"}