From 748f68bb7b5d02450664651ae5025c9a38fb71a5 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 28 Nov 2025 11:11:39 +0000 Subject: (임수민) 준법, gtc 코멘트 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic-contracts-detail-columns.tsx | 39 ++++++++++++++--- .../status-detail/basic-contracts-detail-table.tsx | 51 +--------------------- 2 files changed, 34 insertions(+), 56 deletions(-) (limited to 'lib') diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx index 047866f7..8783894c 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx @@ -172,12 +172,6 @@ export function getDetailColumns({ 재발송 - { - setRowAction({ type: "view", row }); - }}> - - 상세 정보 - ) @@ -305,6 +299,7 @@ export function getDetailColumns({ const isComplianceContract = contract.templateName?.includes('준법') const contractGtcData = gtcData[contract.id] const complianceNegotiation = agreementCommentData[contract.id] + const hasComplianceRedFlag = !!redFlagData[contract.id] const isNegotiationCompleted = !!contract.negotiationCompletedAt const handleOpenGTC = (e: React.MouseEvent) => { @@ -312,6 +307,7 @@ export function getDetailColumns({ // 상세보기와 동일하게 contract.id를 경로 파라미터로 사용 const params = new URLSearchParams(); + params.set("contractId", contract.id.toString()); if (contract.templateId) { params.set("templateId", contract.templateId.toString()); } @@ -394,7 +390,36 @@ export function getDetailColumns({ 협의 진행중 ({complianceNegotiation.commentCount}) - ) : null} + ) : ( + hasComplianceRedFlag && !isNegotiationCompleted && ( + { + event.stopPropagation() + if (typeof window === "undefined") return + const params = new URLSearchParams() + if (contract.templateId) { + params.set("templateId", contract.templateId.toString()) + } + if (contract.vendorId) { + params.set("vendorId", contract.vendorId.toString()) + } + if (contract.vendorName) { + params.set("vendorName", contract.vendorName) + } + const query = params.toString() + const complianceUrl = `/evcp/basic-contract/compliance-comments/${contract.id}${query ? `?${query}` : ""}` + window.open(complianceUrl, "_blank", "noopener,noreferrer") + }} + style={{ cursor: "pointer" }} + > + + 협의 코멘트 작성 + + ) + )} )} diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx index 9c5da894..cface6b3 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx @@ -16,7 +16,6 @@ import { checkRedFlagsForContracts } from "@/lib/basic-contract/actions/check-re import { checkRedFlagResolutionForContracts } from "@/lib/basic-contract/actions/check-red-flag-resolution" import { BasicContractView } from "@/db/schema" import { BasicContractDetailTableToolbarActions } from "./basic-contract-detail-table-toolbar-actions" -import { toast } from "sonner" import { useRouter } from "next/navigation" interface BasicContractsDetailTableProps { @@ -227,57 +226,11 @@ type RedFlagResolutionState = { clearOnDefault: true, }) - // rowAction 처리 로직 추가 React.useEffect(() => { if (rowAction) { - switch (rowAction.type) { - case "view": - // GTC 템플릿인 경우 GTC 협의 페이지로 이동 - const contract = rowAction.row.original; - if (contract.templateName?.includes('GTC')) { - // GTC 템플릿인 경우 GTC 협의 페이지로 이동 - // 준법과 동일하게 contract.id를 경로 파라미터로 사용 - const params = new URLSearchParams(); - if (contract.templateId) { - params.set("templateId", contract.templateId.toString()); - } - if (contract.vendorId) { - params.set("vendorId", contract.vendorId.toString()); - } - if (contract.vendorName) { - params.set("vendorName", contract.vendorName); - } - const query = params.toString(); - const gtcUrl = `/evcp/basic-contract/vendor-gtc/${contract.id}${query ? `?${query}` : ""}`; - router.push(gtcUrl); - } else if (contract.templateName?.includes('준법')) { - // 준법 템플릿인 경우 준법 코멘트 페이지로 이동 - const params = new URLSearchParams(); - if (contract.templateId) { - params.set("templateId", contract.templateId.toString()); - } - if (contract.vendorId) { - params.set("vendorId", contract.vendorId.toString()); - } - if (contract.vendorName) { - params.set("vendorName", contract.vendorName); - } - const query = params.toString(); - const complianceUrl = `/evcp/basic-contract/compliance-comments/${contract.id}${query ? `?${query}` : ""}`; - router.push(complianceUrl); - } else { - // 일반 계약서인 경우: 상세 정보를 보여주는 기능 - // 현재는 준비 중이지만, 향후 다이얼로그나 시트를 열 수 있음 - toast.info("상세 정보 기능은 준비 중입니다."); - } - setRowAction(null); - break; - default: - setRowAction(null); - break; - } + setRowAction(null) } - }, [rowAction, router, gtcData]); + }, [rowAction]); return ( -- cgit v1.2.3