fix: 修复处理流程和后台任务问题
- 步骤简要数值显示在每个步骤圆圈下方 - 处理流程抓取网页后保存到内容库 - 修复后台任务结果解析错误
This commit is contained in:
+18
-65
@@ -149,9 +149,26 @@ function renderStepsProgress(steps, currentStep) {
|
||||
|
||||
const stepNames = ['搜索内容库', '搜索互联网', '抓取网页', '提取数据', '填充字段', '提交审核'];
|
||||
|
||||
// 获取每个步骤的简要数值
|
||||
function getStepValue(stepNum) {
|
||||
const data = stepDataMap[stepNum];
|
||||
if (!data) return '';
|
||||
|
||||
switch (stepNum) {
|
||||
case 1: return data.count !== undefined ? `${data.count}篇` : '';
|
||||
case 2: return data.count !== undefined ? `${data.count}条` : '';
|
||||
case 3: return data.count !== undefined ? `${data.count}个` : '';
|
||||
case 4: return data.has_data !== undefined ? (data.has_data ? '✓' : '✗') : (data.extracted ? '✓' : '');
|
||||
case 5: return data.filled !== undefined ? (data.filled ? '✓' : '✗') : '';
|
||||
case 6: return data.review_id ? '✓' : '';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
let html = '<div class="steps-progress">';
|
||||
for (let i = 1; i <= totalSteps; i++) {
|
||||
const status = stepStatuses[i] || (i > currentStep ? 'pending' : '');
|
||||
const stepValue = getStepValue(i);
|
||||
let className = '';
|
||||
|
||||
if (status === 'completed') className = 'completed';
|
||||
@@ -163,76 +180,12 @@ function renderStepsProgress(steps, currentStep) {
|
||||
<div class="step-node ${className}">
|
||||
<div class="step-circle">${i}</div>
|
||||
<div class="step-label">${stepNames[i-1]}</div>
|
||||
${stepValue ? `<div class="step-value">${stepValue}</div>` : ''}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
html += '</div>';
|
||||
|
||||
// 添加简要数值显示
|
||||
html += '<div class="steps-summary">';
|
||||
|
||||
// 步骤1:内容库搜索结果数
|
||||
if (stepDataMap[1]) {
|
||||
const count = stepDataMap[1].count || 0;
|
||||
const status = stepStatuses[1];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">内容库:</span>
|
||||
<span class="step-summary-value">${count} 篇</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// 步骤2:互联网搜索结果数
|
||||
if (stepDataMap[2]) {
|
||||
const count = stepDataMap[2].count || 0;
|
||||
const status = stepStatuses[2];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">互联网:</span>
|
||||
<span class="step-summary-value">${count} 条</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// 步骤3:抓取成功数
|
||||
if (stepDataMap[3]) {
|
||||
const count = stepDataMap[3].count || 0;
|
||||
const status = stepStatuses[3];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">抓取成功:</span>
|
||||
<span class="step-summary-value">${count} 个</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// 步骤4:提取状态
|
||||
if (stepDataMap[4]) {
|
||||
const hasData = stepDataMap[4].has_data || stepDataMap[4].extracted;
|
||||
const status = stepStatuses[4];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">数据提取:</span>
|
||||
<span class="step-summary-value">${hasData ? '成功' : '无数据'}</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// 步骤5:填充状态
|
||||
if (stepDataMap[5]) {
|
||||
const filled = stepDataMap[5].filled;
|
||||
const status = stepStatuses[5];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">字段填充:</span>
|
||||
<span class="step-summary-value">${filled ? '完成' : '失败'}</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// 步骤6:审核ID
|
||||
if (stepDataMap[6]) {
|
||||
const reviewId = stepDataMap[6].review_id;
|
||||
const status = stepStatuses[6];
|
||||
html += `<div class="step-summary-item ${status || ''}">
|
||||
<span class="step-summary-label">审核ID:</span>
|
||||
<span class="step-summary-value">${reviewId || '-'}</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
|
||||
+6
-1
@@ -773,7 +773,12 @@ async function loadBackgroundTasks() {
|
||||
const progressPercent = task.total > 0 ?
|
||||
Math.round((task.progress / task.total) * 100) : 0;
|
||||
|
||||
const result = task.result ? JSON.parse(task.result) : {};
|
||||
let result = {};
|
||||
try {
|
||||
result = task.result ? JSON.parse(task.result) : {};
|
||||
} catch (e) {
|
||||
result = {};
|
||||
}
|
||||
|
||||
return `
|
||||
<div class="background-task-item ${statusClass}">
|
||||
|
||||
Reference in New Issue
Block a user