diff options
Diffstat (limited to 'lib/vendor-pool/table/vendor-pool-table.tsx')
| -rw-r--r-- | lib/vendor-pool/table/vendor-pool-table.tsx | 75 |
1 files changed, 10 insertions, 65 deletions
diff --git a/lib/vendor-pool/table/vendor-pool-table.tsx b/lib/vendor-pool/table/vendor-pool-table.tsx index 336c93f5..e41c0fd5 100644 --- a/lib/vendor-pool/table/vendor-pool-table.tsx +++ b/lib/vendor-pool/table/vendor-pool-table.tsx @@ -12,7 +12,7 @@ import { DataTable } from "@/components/data-table/data-table" import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar" import { Button } from "@/components/ui/button" import { toast } from "sonner" -import { BulkImportDialog } from "./bulk-import-dialog" +import { BulkInsertDialog } from "./bulk-insert-dialog" import { columns, type VendorPoolItem } from "./vendor-pool-table-columns" import { createVendorPool, updateVendorPool, deleteVendorPool } from "../service" @@ -45,50 +45,22 @@ const createEmptyVendorPoolBase = (): Omit<VendorPool, 'id'> & { id?: string | n designCategoryCode: "", designCategory: "", equipBulkDivision: "", - packageCode: null, - packageName: null, materialGroupCode: null, materialGroupName: null, - smCode: null, similarMaterialNamePurchase: null, - similarMaterialNameOther: null, vendorCode: null, vendorName: "", taxId: null, faTarget: false, faStatus: null, - faRemark: null, tier: null, - isAgent: false, - contractSignerCode: null, - contractSignerName: "", headquarterLocation: "", manufacturingLocation: "", avlVendorName: null, similarVendorName: null, - hasAvl: false, isBlacklist: false, isBcc: false, purchaseOpinion: null, - shipTypeCommon: false, - shipTypeAmax: false, - shipTypeSmax: false, - shipTypeVlcc: false, - shipTypeLngc: false, - shipTypeCont: false, - offshoreTypeCommon: false, - offshoreTypeFpso: false, - offshoreTypeFlng: false, - offshoreTypeFpu: false, - offshoreTypePlatform: false, - offshoreTypeWtiv: false, - offshoreTypeGom: false, - picName: null, - picEmail: null, - picPhone: null, - agentName: null, - agentEmail: null, - agentPhone: null, recentQuoteDate: null, recentQuoteNumber: null, recentOrderDate: null, @@ -111,7 +83,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP const [isCreating, setIsCreating] = React.useState(false) // 일괄입력 다이얼로그 상태 - const [bulkImportDialogOpen, setBulkImportDialogOpen] = React.useState(false) + const [bulkInsertDialogOpen, setBulkInsertDialogOpen] = React.useState(false) @@ -309,7 +281,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP const finalData = { ...rowData, ...changes } // 필수 필드 검증 (최종 데이터 기준) - const requiredFields = ['constructionSector', 'htDivision', 'designCategory', 'vendorName', 'materialGroupCode', 'materialGroupName', 'tier', 'contractSignerName', 'headquarterLocation', 'manufacturingLocation', 'avlVendorName'] + const requiredFields = ['constructionSector', 'htDivision', 'designCategory', 'vendorName', 'materialGroupCode', 'materialGroupName', 'tier', 'headquarterLocation', 'manufacturingLocation', 'avlVendorName'] // 필드명과 한국어 레이블 매핑 const fieldLabels: Record<string, string> = { @@ -320,7 +292,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP materialGroupCode: '자재그룹코드', materialGroupName: '자재그룹명', tier: '등급(Tier)', - contractSignerName: '계약서명주체명', headquarterLocation: '위치(국가)', manufacturingLocation: '제작/선적지(국가)', avlVendorName: 'AVL등재업체명' @@ -436,22 +407,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP ] }, { - id: "isAgent", - label: "Agent 여부", - options: [ - { label: "Agent", value: "true" }, - { label: "일반", value: "false" }, - ] - }, - { - id: "hasAvl", - label: "AVL 존재", - options: [ - { label: "있음", value: "true" }, - { label: "없음", value: "false" }, - ] - }, - { id: "isBlacklist", label: "Blacklist", options: [ @@ -500,16 +455,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP type: "text", }, { - id: "packageCode", - label: "패키지 코드", - type: "text", - }, - { - id: "packageName", - label: "패키지 명", - type: "text", - }, - { id: "materialGroupCode", label: "자재그룹 코드", type: "text", @@ -638,7 +583,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP break case 'bulk-import': - setBulkImportDialogOpen(true) + setBulkInsertDialogOpen(true) break case 'save': @@ -698,7 +643,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP }, [table, onRefresh]) // 일괄입력 핸들러 - const handleBulkImport = React.useCallback(async (bulkData: Record<string, any>) => { + const handleBulkInsert = React.useCallback(async (bulkData: Record<string, any>) => { const selectedRows = table.getFilteredSelectedRowModel().rows if (selectedRows.length === 0) { @@ -720,7 +665,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP } toast.success(`${selectedRows.length}개 행에 일괄 입력이 적용되었습니다.`) - setBulkImportDialogOpen(false) + setBulkInsertDialogOpen(false) } catch (error) { console.error('일괄입력 처리 실패:', error) toast.error('일괄입력 처리 중 오류가 발생했습니다.') @@ -821,10 +766,10 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP </DataTableAdvancedToolbar> </DataTable> - <BulkImportDialog - open={bulkImportDialogOpen} - onOpenChange={setBulkImportDialogOpen} - onSubmit={handleBulkImport} + <BulkInsertDialog + open={bulkInsertDialogOpen} + onOpenChange={setBulkInsertDialogOpen} + onSubmit={handleBulkInsert} /> </> ) |
