import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Card } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { format } from 'date-fns'; import { zhCN } from 'date-fns/locale'; import { MessageSendRecord } from '@/types/message'; interface MessagePreviewDialogProps { open: boolean; onOpenChange: (open: boolean) => void; record: MessageSendRecord | null; getTypeIcon: (type: string) => React.ReactNode; getTypeLabel: (type: string) => string; getTypeBadge: (type: string) => string; getStatusBadge: (status: string) => React.ReactNode; } export function MessagePreviewDialog({ open, onOpenChange, record, getTypeIcon, getTypeLabel, getTypeBadge, getStatusBadge }: MessagePreviewDialogProps) { if (!record) return null; return ( 消息详情 查看消息发送详情
{record.templateName}
{getTypeIcon(record.type)} {getTypeLabel(record.type)}
{record.sendType === 'immediate' ? '实时发送' : '定时发送'}
{getStatusBadge(record.status)}
{record.scheduledTime && (
{format(new Date(record.scheduledTime), 'yyyy-MM-dd HH:mm', { locale: zhCN })}
)}
{format(new Date(record.createdAt), 'yyyy-MM-dd HH:mm', { locale: zhCN })}
{record.subject && (
{record.subject}
)}
{record.recipients.map((recipient, index) => ( {recipient} ))}
                {record.content}
              
); }