diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-27 09:43:55 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-27 09:43:55 +0000 |
| commit | daabc02e9ae54f216ada77aa826b349f37c3281a (patch) | |
| tree | 74c6f94e0c66ee31dfeac2f355c5156431cd42e3 /lib/bidding/vendor/partners-bidding-list-columns.tsx | |
| parent | 5870b73785715d1585531e655c06d8c068eb64ac (diff) | |
(최겸) 구매 입찰 피드백 반영(80%완)
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> + ) + }, }), // 사양설명회 |
