From 8642ee064ddf96f1db2b948b4cc8bbbd6cfee820 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 12 Nov 2025 10:42:36 +0000 Subject: (최겸) 구매 일반계약, 입찰 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evcp/(evcp)/(procurement)/bid-failure/page.tsx | 4 +- .../evcp/(evcp)/(procurement)/bid-receive/page.tsx | 4 +- .../bid-selection/[id]/detail/page.tsx | 69 ++++++++++++++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 app/[lng]/evcp/(evcp)/(procurement)/bid-selection/[id]/detail/page.tsx (limited to 'app') diff --git a/app/[lng]/evcp/(evcp)/(procurement)/bid-failure/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/bid-failure/page.tsx index f460f570..b6c181dc 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/bid-failure/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/bid-failure/page.tsx @@ -4,7 +4,7 @@ import { GetBiddingsSchema, searchParamsCache } from '@/lib/bidding/validation' import { BiddingsFailureTable } from '@/lib/bidding/failure/biddings-failure-table' export const metadata: Metadata = { - title: '유찰입찰', + title: '폐찰 및 재입찰', description: '유찰된 입찰 내역을 확인하고 재입찰을 진행할 수 있습니다.', } @@ -26,7 +26,7 @@ export default async function BiddingFailurePage({
-

유찰입찰

+

폐찰 및 재입찰

유찰된 입찰 내역을 확인하고 재입찰을 진행할 수 있습니다.

diff --git a/app/[lng]/evcp/(evcp)/(procurement)/bid-receive/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/bid-receive/page.tsx index 0d725bbf..4f6e9715 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/bid-receive/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/bid-receive/page.tsx @@ -4,7 +4,7 @@ import { GetBiddingsSchema, searchParamsCache } from '@/lib/bidding/validation' import { BiddingsReceiveTable } from '@/lib/bidding/receive/biddings-receive-table' export const metadata: Metadata = { - title: '입찰서접수및마감', + title: '입찰서 접수 및 마감', description: '입찰서 접수 및 마감 현황을 확인하고 개찰을 진행할 수 있습니다.', } @@ -26,7 +26,7 @@ export default async function BiddingReceivePage({
-

입찰서접수및마감

+

입찰서 접수 및 마감

입찰서 접수 현황을 확인하고 개찰을 진행할 수 있습니다.

diff --git a/app/[lng]/evcp/(evcp)/(procurement)/bid-selection/[id]/detail/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/bid-selection/[id]/detail/page.tsx new file mode 100644 index 00000000..1456564f --- /dev/null +++ b/app/[lng]/evcp/(evcp)/(procurement)/bid-selection/[id]/detail/page.tsx @@ -0,0 +1,69 @@ +import { notFound } from 'next/navigation' +import { getBiddingById } from "@/lib/bidding/service" +import { Bidding } from "@/db/schema/bidding" +import { Button } from "@/components/ui/button" +import { ArrowLeft } from "lucide-react" +import Link from "next/link" +import { BiddingSelectionDetailContent } from "@/lib/bidding/selection/bidding-selection-detail-content" + +// 메타데이터 생성 +export async function generateMetadata({ params }: { params: Promise<{ lng: string; id: string }> }) { + const { lng, id } = await params + const parsedId = parseInt(id) + if (isNaN(parsedId)) return { title: '입찰선정 상세보기' } + + try { + const bidding = await getBiddingById(parsedId) + return { + title: bidding ? `${bidding.title} - 입찰선정 상세보기` : '입찰선정 상세보기', + } + } catch { + return { title: '입찰선정 상세보기' } + } +} + +interface PageProps { + params: Promise<{ lng: string; id: string }> +} + +export default async function BiddingSelectionDetailPage({ params }: PageProps) { + const { lng, id } = await params + const parsedId = parseInt(id) + + if (isNaN(parsedId)) { + notFound() + } + + const bidding: Bidding | null = await getBiddingById(parsedId) + + if (!bidding) { + notFound() + } + + return ( +
+ {/* 헤더 */} +
+
+
+

+ 입찰선정 상세보기 +

+

+ 입찰 No. {bidding.biddingNumber ?? ""} - {bidding.title} +

+
+
+ + + +
+ + {/* 입찰선정 상세 콘텐츠 */} + +
+ ) +} -- cgit v1.2.3