From f9044077415f08306e993cc43c9053578d46ba64 Mon Sep 17 00:00:00 2001 From: 666ghj <670939375@qq.com> Date: Sat, 13 Dec 2025 21:49:34 +0800 Subject: [PATCH] Implement report generation features and UI enhancements - Added a new API for generating reports, including functions to retrieve report status, agent logs, console logs, and report details. - Enhanced the Step3Simulation component to manage report generation with loading indicators and improved user feedback during the process. - Introduced a new Step4Report component to display report details and logs, providing a comprehensive view of the report generation workflow. - Updated routing to include a dedicated report view, improving navigation and user experience in the application. --- frontend/src/api/report.js | 43 + frontend/src/components/Step3Simulation.vue | 59 +- frontend/src/components/Step4Report.vue | 1292 +++++++++++++++++++ frontend/src/router/index.js | 7 + frontend/src/views/ReportView.vue | 348 +++++ frontend/src/views/SimulationRunView.vue | 4 +- 6 files changed, 1747 insertions(+), 6 deletions(-) create mode 100644 frontend/src/api/report.js create mode 100644 frontend/src/components/Step4Report.vue create mode 100644 frontend/src/views/ReportView.vue diff --git a/frontend/src/api/report.js b/frontend/src/api/report.js new file mode 100644 index 0000000..e4eefa2 --- /dev/null +++ b/frontend/src/api/report.js @@ -0,0 +1,43 @@ +import service, { requestWithRetry } from './index' + +/** + * 开始报告生成 + * @param {Object} data - { simulation_id, force_regenerate? } + */ +export const generateReport = (data) => { + return requestWithRetry(() => service.post('/api/report/generate', data), 3, 1000) +} + +/** + * 获取报告生成状态 + * @param {string} reportId + */ +export const getReportStatus = (reportId) => { + return service.get(`/api/report/generate/status`, { params: { report_id: reportId } }) +} + +/** + * 获取 Agent 日志(增量) + * @param {string} reportId + * @param {number} fromLine - 从第几行开始获取 + */ +export const getAgentLog = (reportId, fromLine = 0) => { + return service.get(`/api/report/${reportId}/agent-log`, { params: { from_line: fromLine } }) +} + +/** + * 获取控制台日志(增量) + * @param {string} reportId + * @param {number} fromLine - 从第几行开始获取 + */ +export const getConsoleLog = (reportId, fromLine = 0) => { + return service.get(`/api/report/${reportId}/console-log`, { params: { from_line: fromLine } }) +} + +/** + * 获取报告详情 + * @param {string} reportId + */ +export const getReport = (reportId) => { + return service.get(`/api/report/${reportId}`) +} diff --git a/frontend/src/components/Step3Simulation.vue b/frontend/src/components/Step3Simulation.vue index cbaeab6..a692442 100644 --- a/frontend/src/components/Step3Simulation.vue +++ b/frontend/src/components/Step3Simulation.vue @@ -93,10 +93,12 @@