"use client" import React from 'react' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Button } from "@/components/ui/button" import { ScrollArea } from "@/components/ui/scroll-area" import { CheckCircle2, XCircle, AlertCircle, RefreshCw, FileText } from "lucide-react" import { Separator } from "@/components/ui/separator" import { Badge } from "@/components/ui/badge" export interface ImportResultItem { rowNumber: number status: 'success' | 'error' | 'duplicate' | 'warning' message: string data?: { vendorName?: string materialGroupName?: string designCategory?: string } } export interface ImportResult { totalRows: number successCount: number errorCount: number duplicateCount: number items: ImportResultItem[] // 실패한 건만 포함 } interface ImportResultDialogProps { open: boolean onOpenChange: (open: boolean) => void result: ImportResult | null } export function ImportResultDialog({ open, onOpenChange, result }: ImportResultDialogProps) { if (!result) return null const getStatusIcon = (status: ImportResultItem['status']) => { switch (status) { case 'success': return case 'error': return case 'duplicate': return case 'warning': return } } const getStatusBadge = (status: ImportResultItem['status']) => { switch (status) { case 'success': return 성공 case 'error': return 실패 case 'duplicate': return 중복 case 'warning': return 경고 } } return ( 엑셀 Import 결과 총 {result.totalRows}건의 데이터를 처리했습니다. {/* 요약 정보 */}
{result.successCount}
성공
{result.duplicateCount}
중복
{result.errorCount}
실패
{/* 상세 정보 - 실패한 건만 표시 */} {result.errorCount > 0 && ( <>

실패한 항목 ({result.errorCount}건)

{result.items.map((item, index) => (
{getStatusIcon(item.status)}
행 {item.rowNumber} {getStatusBadge(item.status)}

{item.message}

{item.data && (
{item.data.vendorName && (
• 협력업체: {item.data.vendorName}
)} {item.data.materialGroupName && (
• 자재그룹: {item.data.materialGroupName}
)} {item.data.designCategory && (
• 설계기능: {item.data.designCategory}
)}
)}
))} {result.items.length === 0 && (
모든 항목이 정상적으로 처리되었습니다.
)}
)} {/* 하단 버튼 */}
) }