This commit is contained in:
2026-03-08 03:11:28 +08:00
parent c79190e319
commit 6775bbcc62
3 changed files with 83 additions and 0 deletions
+1
View File
@@ -708,6 +708,7 @@ async def process_file_core(
tasks[task_id]["cavity_data"] = detailed_cavity_json tasks[task_id]["cavity_data"] = detailed_cavity_json
tasks[task_id]["key_info"] = detailed_cavity_json # 传递完整数据给前端 tasks[task_id]["key_info"] = detailed_cavity_json # 传递完整数据给前端
tasks[task_id]["html_file"] = f"/html/{Path(html_file_path).name}" # 只使用文件名 tasks[task_id]["html_file"] = f"/html/{Path(html_file_path).name}" # 只使用文件名
tasks[task_id]["verification"] = verification_result # 添加验证结果
tasks[task_id]["status"] = ProcessingStatus.COMPLETED tasks[task_id]["status"] = ProcessingStatus.COMPLETED
tasks[task_id]["completed_at"] = str(datetime.now()) tasks[task_id]["completed_at"] = str(datetime.now())
+54
View File
@@ -613,6 +613,60 @@ body {
transform: rotate(180deg); transform: rotate(180deg);
} }
.verification-section {
margin-bottom: var(--space-6);
padding: var(--space-4);
background: var(--bg-secondary);
border-radius: var(--radius-lg);
border: 1px solid var(--border-light);
}
.verification-summary .summary-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--space-3);
}
.verification-details {
padding-top: var(--space-3);
border-top: 1px solid var(--border-light);
}
.comparison-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: var(--space-4);
}
.comparison-item {
display: flex;
flex-direction: column;
gap: var(--space-1);
}
.comparison-label {
font-size: var(--text-sm);
color: var(--text-secondary);
}
.comparison-value {
font-size: var(--text-lg);
font-weight: var(--font-semibold);
}
.text-success {
color: var(--success);
}
.text-error {
color: var(--error);
}
.text-warning {
color: var(--warning);
}
.btn-sm.btn-primary { .btn-sm.btn-primary {
background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%); background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);
color: white; color: white;
+28
View File
@@ -1199,6 +1199,34 @@ const ResultView = {
<div v-if="state.task.analysis_result" class="viewer-section"> <div v-if="state.task.analysis_result" class="viewer-section">
<h3>分析结果详情</h3> <h3>分析结果详情</h3>
<!-- FreeCAD 验证结果 -->
<div v-if="state.task.verification" class="verification-section">
<div class="verification-summary">
<div class="summary-header">
<h4>FreeCAD 几何验证</h4>
<span :class="['badge', state.task.verification.status === 'passed' ? 'badge-success' : state.task.verification.status === 'failed' ? 'badge-error' : state.task.verification.status === 'error' ? 'badge-warning' : 'badge-info']">
{{ state.task.verification.status === 'passed' ? '验证通过' : state.task.verification.status === 'failed' ? '验证失败' : state.task.verification.status === 'error' ? '验证错误' : state.task.verification.status === 'skipped' ? '已跳过' : '未知' }}
</span>
</div>
<div class="verification-details" v-if="state.task.verification.comparison">
<div class="comparison-grid">
<div class="comparison-item">
<span class="comparison-label">体积差异</span>
<span class="comparison-value" :class="{'text-error': state.task.verification.comparison.volume.difference_percent > 1, 'text-success': state.task.verification.comparison.volume.difference_percent <= 1}">
{{ state.task.verification.comparison.volume.difference_percent?.toFixed(4) || 0 }}%
</span>
</div>
<div class="comparison-item">
<span class="comparison-label">表面积差异</span>
<span class="comparison-value" :class="{'text-error': state.task.verification.comparison.surface_area.difference_percent > 2, 'text-success': state.task.verification.comparison.surface_area.difference_percent <= 2}">
{{ state.task.verification.comparison.surface_area.difference_percent?.toFixed(4) || 0 }}%
</span>
</div>
</div>
</div>
</div>
</div>
<!-- 分析摘要 --> <!-- 分析摘要 -->
<div class="analysis-summary" v-if="state.task.analysis_result.analysis_summary"> <div class="analysis-summary" v-if="state.task.analysis_result.analysis_summary">
<div class="summary-header"> <div class="summary-header">