From c72d0897f7b37843109c86f61d97eba05ba3ca0d Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 13 Jun 2025 07:08:01 +0000 Subject: (대표님) 20250613 16시 08분 b-rfq, document 등 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ship/enhanced-doc-table-toolbar-actions.tsx | 147 +++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 lib/vendor-document-list/ship/enhanced-doc-table-toolbar-actions.tsx (limited to 'lib/vendor-document-list/ship/enhanced-doc-table-toolbar-actions.tsx') diff --git a/lib/vendor-document-list/ship/enhanced-doc-table-toolbar-actions.tsx b/lib/vendor-document-list/ship/enhanced-doc-table-toolbar-actions.tsx new file mode 100644 index 00000000..3960bbce --- /dev/null +++ b/lib/vendor-document-list/ship/enhanced-doc-table-toolbar-actions.tsx @@ -0,0 +1,147 @@ +"use client" +import * as React from "react" +import { type Table } from "@tanstack/react-table" +import { Download, Upload, Plus, Files, RefreshCw } from "lucide-react" +import { toast } from "sonner" + +import { exportTableToExcel } from "@/lib/export" +import { Button } from "@/components/ui/button" +import { EnhancedDocumentsView } from "@/db/schema/vendorDocu" +import { AddDocumentListDialog } from "./add-doc-dialog" +import { DeleteDocumentsDialog } from "./delete-docs-dialog" +import { BulkUploadDialog } from "./bulk-upload-dialog" +import type { EnhancedDocument } from "@/types/enhanced-documents" +import { SendToSHIButton } from "./send-to-shi-button" +import { ImportFromDOLCEButton } from "./import-from-dolce-button" +import { SWPWorkflowPanel } from "./swp-workflow-panel" + +interface EnhancedDocTableToolbarActionsProps { + table: Table + projectType: "ship" | "plant" + selectedPackageId: number + onNewDocument: () => void + onBulkAction: (action: string, selectedRows: any[]) => Promise +} + +export function EnhancedDocTableToolbarActions({ + table, + projectType, + selectedPackageId, + onNewDocument, + onBulkAction +}: EnhancedDocTableToolbarActionsProps) { + const [bulkUploadDialogOpen, setBulkUploadDialogOpen] = React.useState(false) + + // 현재 테이블의 모든 데이터 (필터링된 상태) + const allDocuments = table.getFilteredRowModel().rows.map(row => row.original) + + const handleSyncComplete = () => { + // 동기화 완료 후 테이블 새로고침 + table.resetRowSelection() + // 필요시 추가 액션 수행 + } + + const handleDocumentAdded = () => { + // 테이블 새로고침 + table.resetRowSelection() + + // 추가적인 새로고침 시도 + setTimeout(() => { + window.location.reload() // 강제 새로고침 + }, 500) + } + + const handleImportComplete = () => { + // 가져오기 완료 후 테이블 새로고침 + table.resetRowSelection() + setTimeout(() => { + window.location.reload() + }, 500) + } + + return ( +
+ {/* 삭제 버튼 */} + {table.getFilteredSelectedRowModel().rows.length > 0 ? ( + row.original)} + onSuccess={() => table.toggleAllRowsSelected(false)} + /> + ) : null} + + {/* projectType에 따른 조건부 렌더링 */} + {projectType === "ship" ? ( + <> + {/* SHIP: DOLCE에서 목록 가져오기 */} + + + ) : ( + <> + {/* PLANT: 수동 문서 추가 */} + + + )} + + {/* 일괄 업로드 버튼 (공통) */} + + + {/* Export 버튼 (공통) */} + + + {/* Send to SHI 버튼 (공통) - 내부 → 외부로 보내기 */} + + + {/* SWP 전용 워크플로우 패널 */} + {projectType === "plant" && ( + + )} + + {/* 일괄 업로드 다이얼로그 */} + +
+ ) +} \ No newline at end of file -- cgit v1.2.3