'use client' import { Level } from '@/types' import { Button } from '@/components/ui/button' import { Pencil, Trash2 } from 'lucide-react' import Image from 'next/image' // 列宽定义,header 和 row 必须保持一致。用 grid-template-columns 统一控制。 // 序号 | 图片 | 答案 | 谐音梗 | 提示 | 创建时间 | 操作 export const GRID_TEMPLATE = 'minmax(60px,60px) minmax(120px,120px) minmax(80px,1fr) minmax(100px,1fr) minmax(160px,2fr) minmax(100px,100px) minmax(100px,100px)' interface LevelRowProps { level: Level index: number onEdit: (level: Level) => void onDelete: (id: string) => void } export function LevelRow({ level, index, onEdit, onDelete }: LevelRowProps) { return (
{/* 序号:用数组 index + 1,而不是 DB 里已弃用的 sortOrder */} {index + 1} {/* 图片 */}
{level.image1Url ? ( 图片1 ) : (
)}
{level.image2Url ? ( 图片2 ) : (
)}
{/* 答案 */} {level.answer} {/* 谐音梗 */} {level.punchline ? ( {level.punchline} ) : ( )} {/* 提示 */} {(() => { const hints = [level.hint1, level.hint2, level.hint3].filter(Boolean) return hints.length > 0 ? hints.join('、') : '—' })()} {/* 创建时间 */} {new Date(level.createdAt).toLocaleDateString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', })} {/* 操作 */}
) }