diff options
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-list-columns.tsx')
| -rw-r--r-- | lib/bidding/vendor/partners-bidding-list-columns.tsx | 52 |
1 files changed, 47 insertions, 5 deletions
diff --git a/lib/bidding/vendor/partners-bidding-list-columns.tsx b/lib/bidding/vendor/partners-bidding-list-columns.tsx index a090c3fe..64b4bebf 100644 --- a/lib/bidding/vendor/partners-bidding-list-columns.tsx +++ b/lib/bidding/vendor/partners-bidding-list-columns.tsx @@ -230,11 +230,53 @@ export function getPartnersBiddingListColumns({ setRowAction }: PartnersBiddingL // 입찰명 columnHelper.accessor('title', { header: '입찰명', - cell: ({ row }) => ( - <div className="max-w-48 truncate" title={row.original.title}> - {row.original.title} - </div> - ), + cell: ({ row }) => { + const handleTitleClick = (e: React.MouseEvent) => { + e.stopPropagation() + + // 사양설명회 참석여부 체크 + const hasSpecMeeting = row.original.hasSpecificationMeeting + const isAttending = row.original.isAttendingMeeting + + // 사양설명회가 있고, 참석여부가 아직 설정되지 않은 경우 + if (hasSpecMeeting && isAttending === null) { + toast.warning('사양설명회 참석여부 필요', { + description: '사전견적 또는 입찰을 진행하기 전에 사양설명회 참석여부를 먼저 설정해주세요.', + duration: 5000, + }) + return + } + + // 입찰기간 체크 (현 시간 기준으로 입찰기간 시작 전이면 접근 불가) + const now = new Date() + const startDate = row.original.submissionStartDate ? new Date(row.original.submissionStartDate) : null + + if (startDate && now < startDate) { + toast.warning('입찰기간 전 접근 제한', { + description: `입찰기간이 아직 시작되지 않았습니다`, + duration: 5000, + }) + return + } + + if (setRowAction) { + setRowAction({ + type: 'view', + row: { original: row.original } + }) + } + } + + return ( + <div + className="max-w-48 truncate cursor-pointer underline font-bold hover:text-blue-600" + title={row.original.title} + onClick={handleTitleClick} + > + {row.original.title} + </div> + ) + }, }), // 사양설명회 |
