x
This commit is contained in:
@@ -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())
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user