'use client'; /** * ReviewCard — 单条待审笔记卡 * 通过(+5) / 打回(-3,必填原因) */ import { useState } from 'react'; import { ReviewQueueItem } from '@/types/index'; import { ImageLightbox } from '@/components/tasks/ImageLightbox'; import { ScoreDimBars } from '@/components/tasks/ScoreDimBars'; import { TextLightbox } from '@/components/tasks/TextLightbox'; interface ReviewCardProps { item: ReviewQueueItem; onApprove: () => void; onReject: () => void; } export function ReviewCard({ item, onApprove, onReject }: ReviewCardProps) { const sets = item.selected_sets?.filter((s) => s.selected_text || s.selected_images.length) ?? []; const [zoomText, setZoomText] = useState<{ content: string; label?: string; score?: number; } | null>(null); const [zoomImage, setZoomImage] = useState<{ url: string; caption?: string } | null>(null); return (
{item.product_name} · {item.operator_name}

{item.theme}

{sets.length === 0 && item.selected_text && ( )} {/* 质量分:审核可判断(C2)。合格线80=红线,不用组件默认85 */} {sets.length === 0 && item.selected_text?.score && ( )}
{sets.length === 0 && item.selected_image && ( )}
{sets.length > 0 && (
{sets.map((set) => (
套{set.strategy} {set.selected_images.length} 张图
{set.selected_text && ( <> {set.selected_text.score && ( )} )} {set.selected_images.length > 0 && (
{set.selected_images.filter(Boolean).map((img) => ( ))}
)}
))}
)} {/* 操作栏 — 飞轮最强信号 */}
setZoomText(null)} /> setZoomImage(null)} />
); } /** 审核列表骨架屏 */ export function ReviewSkeleton() { return (
{[1, 2, 3].map((i) => (
))}
); }