diff --git a/static/css/process.css b/static/css/process.css index 3fe97f4..98e8ce3 100644 --- a/static/css/process.css +++ b/static/css/process.css @@ -180,6 +180,52 @@ 50% { transform: scale(1.1); } } +/* 步骤简要数值 */ +.steps-summary { + display: flex; + flex-wrap: wrap; + gap: 10px; + padding: 12px 15px; + background: #f8f9fa; + border-radius: 8px; + margin-top: 10px; +} + +.step-summary-item { + display: flex; + align-items: center; + gap: 5px; + padding: 4px 10px; + background: white; + border-radius: 4px; + font-size: 13px; +} + +.step-summary-item.completed { + background: #d1fae5; +} + +.step-summary-item.running { + background: #e0e7ff; +} + +.step-summary-item.failed { + background: #fee2e2; +} + +.step-summary-item.skipped { + background: #f3f4f6; +} + +.step-summary-label { + color: #666; +} + +.step-summary-value { + font-weight: 600; + color: #333; +} + /* 操作按钮 */ .process-actions { display: flex; diff --git a/static/js/process.js b/static/js/process.js index 0e63ee7..e3e3d1d 100644 --- a/static/js/process.js +++ b/static/js/process.js @@ -133,15 +133,23 @@ function displayActiveProcesses(sessions) { function renderStepsProgress(steps, currentStep) { const totalSteps = 6; const stepStatuses = {}; + const stepDataMap = {}; - // 构建步骤状态映射 + // 构建步骤状态和数据映射 steps.forEach(s => { stepStatuses[s.step_number] = s.step_status; + if (s.step_data) { + try { + stepDataMap[s.step_number] = typeof s.step_data === 'string' ? JSON.parse(s.step_data) : s.step_data; + } catch (e) { + stepDataMap[s.step_number] = s.step_data; + } + } }); const stepNames = ['搜索内容库', '搜索互联网', '抓取网页', '提取数据', '填充字段', '提交审核']; - let html = ''; + let html = '