From ba8cd44a0ed2c613a5f2cee06bfc9bd0f61f21c7 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 7 Nov 2025 08:39:04 +0000 Subject: (최겸) 입찰/견적 수정사항 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/bidding/bidding-info-header.tsx | 217 ++++++++++++++++++----------- 1 file changed, 135 insertions(+), 82 deletions(-) (limited to 'components/bidding/bidding-info-header.tsx') diff --git a/components/bidding/bidding-info-header.tsx b/components/bidding/bidding-info-header.tsx index b897187d..0b2d2b47 100644 --- a/components/bidding/bidding-info-header.tsx +++ b/components/bidding/bidding-info-header.tsx @@ -1,6 +1,6 @@ import { Bidding } from '@/db/schema/bidding' -import { Building2, Package, User, DollarSign, Calendar } from 'lucide-react' -import { contractTypeLabels, biddingTypeLabels } from '@/db/schema/bidding' +import { Building2, User, DollarSign, Calendar, FileText } from 'lucide-react' +import { contractTypeLabels, biddingTypeLabels, awardCountLabels } from '@/db/schema/bidding' import { formatDate } from '@/lib/utils' interface BiddingInfoHeaderProps { @@ -18,122 +18,175 @@ export function BiddingInfoHeader({ bidding }: BiddingInfoHeaderProps) { return (
- {/* 3개 섹션을 Grid로 배치 - 각 섹션이 동일한 width로 꽉 채움 */} -
- {/* 왼쪽 섹션: 프로젝트, 품목, 담당자 정보 */} + {/* 4개 섹션을 Grid로 배치 */} +
+ {/* 1. 프로젝트 및 품목 정보 */}
- {/* 프로젝트 정보 */} +
+ + 기본 정보 +
+ {bidding.projectName && ( -
-
- - 프로젝트 -
-
{bidding.projectName}
+
+
프로젝트
+
{bidding.projectName}
)} - {/* 품목 정보 */} {bidding.itemName && ( -
-
- - 품목 -
-
{bidding.itemName}
+
+
품목
+
{bidding.itemName}
+
+ )} + + {bidding.prNumber && ( +
+
PR No.
+
{bidding.prNumber}
+
+ )} + + {bidding.purchasingOrganization && ( +
+
구매조직
+
{bidding.purchasingOrganization}
)} +
- {/* 담당자 정보 */} - {bidding.managerName && ( -
-
- - 담당자 + {/* 2. 담당자 및 예산 정보 */} +
+
+ + 담당자 정보 +
+ + {bidding.bidPicName && ( +
+
입찰담당자
+
+ {bidding.bidPicName} + {bidding.bidPicCode && ( + ({bidding.bidPicCode}) + )}
-
{bidding.managerName}
)} - {/* 예산 정보 */} + {bidding.supplyPicName && ( +
+
조달담당자
+
+ {bidding.supplyPicName} + {bidding.supplyPicCode && ( + ({bidding.supplyPicCode}) + )} +
+
+ )} + {bidding.budget && ( -
-
- +
+
+ 예산
-
+
{new Intl.NumberFormat('ko-KR', { style: 'currency', currency: bidding.currency || 'KRW', + minimumFractionDigits: 0, + maximumFractionDigits: 0, }).format(Number(bidding.budget))}
)}
- {/* 가운데 섹션: 계약 정보 */} -
-
-
- 계약 - {contractTypeLabels[bidding.contractType]} + {/* 3. 계약 정보 */} +
+
+ + 계약 정보 +
+ +
+
+
계약구분
+
{contractTypeLabels[bidding.contractType]}
-
- 유형 - {biddingTypeLabels[bidding.biddingType]} +
+
입찰유형
+
{biddingTypeLabels[bidding.biddingType]}
-
- 낙찰 - {bidding.awardCount === 'single' ? '단수' : '복수'} +
+
낙찰수
+
+ {bidding.awardCount ? awardCountLabels[bidding.awardCount] : '-'} +
-
- 통화 - {bidding.currency} +
+
통화
+
{bidding.currency}
+ + {(bidding.contractStartDate || bidding.contractEndDate) && ( +
+
계약기간
+
+ {bidding.contractStartDate && formatDate(bidding.contractStartDate, 'KR')} + {bidding.contractStartDate && bidding.contractEndDate && ' ~ '} + {bidding.contractEndDate && formatDate(bidding.contractEndDate, 'KR')} +
+
+ )}
- {/* 오른쪽 섹션: 일정 정보 */} - {(bidding.submissionStartDate || bidding.evaluationDate || bidding.preQuoteDate || bidding.biddingRegistrationDate) && ( -
-
- - 일정 정보 -
-
- {bidding.submissionStartDate && bidding.submissionEndDate && ( -
- 제출기간 -
- {formatDate(bidding.submissionStartDate, 'KR')} ~ {formatDate(bidding.submissionEndDate, 'KR')} -
-
- )} - {bidding.biddingRegistrationDate && ( -
- 입찰등록일 -
{formatDate(bidding.biddingRegistrationDate, 'KR')}
-
- )} - {bidding.preQuoteDate && ( -
- 사전견적일 -
{formatDate(bidding.preQuoteDate, 'KR')}
-
- )} - {bidding.evaluationDate && ( -
- 평가일 -
{formatDate(bidding.evaluationDate, 'KR')}
-
- )} -
+ {/* 4. 일정 정보 */} +
+
+ + 일정 정보
- )} + + {bidding.biddingRegistrationDate && ( +
+
입찰등록일
+
{formatDate(bidding.biddingRegistrationDate, 'KR')}
+
+ )} + + {bidding.preQuoteDate && ( +
+
사전견적일
+
{formatDate(bidding.preQuoteDate, 'KR')}
+
+ )} + + {bidding.submissionStartDate && bidding.submissionEndDate && ( +
+
제출기간
+
+ {formatDate(bidding.submissionStartDate, 'KR')} +
~
+ {formatDate(bidding.submissionEndDate, 'KR')} +
+
+ )} + + {bidding.evaluationDate && ( +
+
평가일
+
{formatDate(bidding.evaluationDate, 'KR')}
+
+ )} +
) -- cgit v1.2.3