import type { EpisodeMappingPreviewItem } from "@umt/contracts"; import { ArrowRight } from "lucide-react"; import { StatusBadge } from "~/components/console/status-badge.tsx"; import { cn, formatDateTime } from "~/lib/utils.ts"; import { canonicalText, methodText, sourceText, VALIDATION } from "./model.ts"; // 模拟预览表格:原始季集 → 当前结果 → 套用草稿后的结果、方式(命中的作品识别词行、全局识别词)、校验; // 与当前不同的行高亮并标「有变化」。 export function PreviewTable({ items, hasDraft, empty = "这部作品还没有绑定的资源。", }: { items: EpisodeMappingPreviewItem[]; /** 有草稿时列名写「套用后」,否则写「重算」 */ hasDraft: boolean; empty?: string; }) { if (!items.length) return
{empty}
; return (| 资源 | 原始 | 当前 | {hasDraft ? "套用后" : "重算"} | 方式 | 校验 |
|---|---|---|---|---|---|
|
{it.title}
{[it.releaseGroup, formatDateTime(it.publishedAt)].filter(Boolean).join(" · ")}
|
{sourceText(it.preview)} |
{canonicalText(it.current)}
{methodText(it.current)}
|
{it.changed ?
{it.changed ? 有变化 : null}
|
{methodText(it.preview)}
{it.preview.ruleText ? (
{it.preview.ruleLine ? `第 ${it.preview.ruleLine} 行 ` : ""}
{it.preview.ruleText}
) : null}
{it.words.length ? (
命中识别词:{it.words.join(";")}
) : null}
|
|