feat(reviews): add not-applicable count display in evaluation statistics

- Add notApplicable field to Statistics interface
- Show blue "未涉及" badge when count > 0 (display only, no filter)
- Map backend not_applicable_count to frontend statistics

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-20 18:27:41 +08:00
parent 60d7d9a33b
commit 48f605a5c4
2 changed files with 16 additions and 0 deletions
@@ -665,6 +665,7 @@ export function ReviewPointsList({
success: 0,
warning: 0,
error: 0,
notApplicable: 0,
score: 0
};
@@ -686,6 +687,7 @@ export function ReviewPointsList({
const successToShow = successCount || statsToUse.success;
const warningToShow = warningCount || statsToUse.warning;
const errorToShow = errorCount || statsToUse.error;
const notApplicableToShow = statsToUse.notApplicable || 0;
return (
<div className="review-statistics bg-white border-b border-gray-100 py-3 px-4">
@@ -744,6 +746,18 @@ export function ReviewPointsList({
<span className="text-xs text-gray-500 ml-2"></span>
</button>
</div>
{/* 未涉及数量(仅在有未涉及评查点时显示,仅统计展示不支持过滤) */}
{notApplicableToShow > 0 && (
<>
<div className="h-8 border-r border-gray-200"></div>
<div className="flex items-center">
<div className="px-3 h-7 bg-blue-50 rounded-md flex items-center justify-center">
<span className="text-sm font-semibold text-blue-500">{notApplicableToShow}</span>
<span className="text-xs text-gray-500 ml-2"></span>
</div>
</div>
</>
)}
</div>
</div>
);
+2
View File
@@ -72,6 +72,7 @@ interface Statistics {
success: number;
warning: number;
error: number;
notApplicable: number;
score: number;
}
@@ -239,6 +240,7 @@ export async function loader({ request }: LoaderFunctionArgs) {
success: unifiedData.summary?.passed_count || 0,
error: unifiedData.summary?.failed_count || 0,
warning: 0,
notApplicable: unifiedData.summary?.not_applicable_count || 0,
score: unifiedData.summary?.total_score || 0
},
comparison_document: ('comparison_document' in reviewData && !('error' in reviewData)) ? reviewData.comparison_document : null,