summaryrefslogtreecommitdiff
path: root/lib/bidding/vendor/partners-bidding-list-columns.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-27 09:43:55 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-27 09:43:55 +0000
commitdaabc02e9ae54f216ada77aa826b349f37c3281a (patch)
tree74c6f94e0c66ee31dfeac2f355c5156431cd42e3 /lib/bidding/vendor/partners-bidding-list-columns.tsx
parent5870b73785715d1585531e655c06d8c068eb64ac (diff)
(최겸) 구매 입찰 피드백 반영(80%완)
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-list-columns.tsx')
-rw-r--r--lib/bidding/vendor/partners-bidding-list-columns.tsx52
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>
+ )
+ },
}),
// 사양설명회