diff options
Diffstat (limited to 'lib/bidding/detail/table/bidding-detail-vendor-columns.tsx')
| -rw-r--r-- | lib/bidding/detail/table/bidding-detail-vendor-columns.tsx | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-columns.tsx b/lib/bidding/detail/table/bidding-detail-vendor-columns.tsx index 5368b287..05c1a93d 100644 --- a/lib/bidding/detail/table/bidding-detail-vendor-columns.tsx +++ b/lib/bidding/detail/table/bidding-detail-vendor-columns.tsx @@ -31,6 +31,7 @@ interface GetVendorColumnsProps { } export function getBiddingDetailVendorColumns({ + onViewPriceAdjustment, onViewItemDetails, onSendBidding, onUpdateParticipation, @@ -239,6 +240,83 @@ export function getBiddingDetailVendorColumns({ ), }, { + accessorKey: 'priceAdjustmentResponse', + header: '연동제 응답', + cell: ({ row }) => { + const vendor = row.original + const response = vendor.priceAdjustmentResponse + + // 버튼 형태로 표시, 클릭 시 상세 다이얼로그 열기 + const getBadgeVariant = () => { + if (response === null || response === undefined) return 'outline' + return response ? 'default' : 'secondary' + } + + const getBadgeClass = () => { + if (response === true) return 'bg-green-600 hover:bg-green-700 cursor-pointer' + if (response === false) return 'hover:bg-gray-300 cursor-pointer' + return '' + } + + const getLabel = () => { + if (response === null || response === undefined) return '해당없음' + return response ? '예' : '아니오' + } + + return ( + <Badge + variant={getBadgeVariant()} + className={getBadgeClass()} + onClick={() => onViewPriceAdjustment?.(vendor)} + > + {getLabel()} + </Badge> + ) + }, + }, + { + accessorKey: 'shiPriceAdjustmentApplied', + header: 'SHI연동제적용', + cell: ({ row }) => { + const applied = row.original.shiPriceAdjustmentApplied + if (applied === null || applied === undefined) { + return <Badge variant="outline">미정</Badge> + } + return ( + <Badge variant={applied ? 'default' : 'secondary'} className={applied ? 'bg-green-600' : ''}> + {applied ? '적용' : '미적용'} + </Badge> + ) + }, + }, + { + accessorKey: 'priceAdjustmentNote', + header: '연동제 Note', + cell: ({ row }) => { + const note = row.original.priceAdjustmentNote + return ( + <div className="text-sm max-w-[150px] truncate" title={note || ''}> + {note || '-'} + </div> + ) + }, + }, + { + accessorKey: 'hasChemicalSubstance', + header: '화학물질', + cell: ({ row }) => { + const hasChemical = row.original.hasChemicalSubstance + if (hasChemical === null || hasChemical === undefined) { + return <Badge variant="outline">미정</Badge> + } + return ( + <Badge variant={hasChemical ? 'destructive' : 'secondary'}> + {hasChemical ? '해당' : '해당없음'} + </Badge> + ) + }, + }, + { id: 'actions', header: '작업', cell: ({ row }) => { |
