diff --git a/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts b/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts index 55ec0e0ae..6fdba8073 100644 --- a/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts +++ b/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts @@ -2,7 +2,6 @@ export const FNRS_CNSLTN_VIEW_BUTTON_ACTION = { strg: "strg", aply: "aply", del: "del", - splmntCmptn: "splmntCmptn", fnrsCnsltnAncmnt: "fnrsCnsltnAncmnt", envoSbmsn: "envoSbmsn", rjct: "rjct", @@ -32,7 +31,6 @@ const ROLE_STATUS_BUTTON_ACTIONS: Record ({ + splmntDmndSn: item.splmntDmndSn, + splmntArtclComCd: item.splmntArtclComCd, + splmntArtclCdNm: item.splmntArtclCdNm, + splmntDmndCn: item.splmntDmndCn, + splmntDmndDt: item.splmntDmndDt, + splmntDmndAtchFileGroupId: item.splmntDmndAtchFileGroupId ?? "", + splmntDmndAtchFileNm: item.splmntDmndAtchFileInfo?.orgnlFileNm ?? "", + splmntCn: item.splmntCn ?? "", + splmntPicNm: item.splmntPicNm ?? "", + splmntCmptnDt: item.splmntCmptnDt ?? "", + splmntAtchFileGroupId: item.splmntAtchFileGroupId ?? "", + splmntAtchFileNm: item.splmntAtchFileInfo?.orgnlFileNm ?? "", + splmntAtchFileAtflId: item.splmntAtchFileInfo?.atflId ?? "", + cmptnYn: item.cmptnYn, + })) ?? [], privacyConsent: "Y", }; } @@ -130,6 +148,7 @@ export function getCreateDefaultValues( fnrsSharList: [], cklstResultList: [], esntlAtchFileList: [], + splmntDmndList: [], privacyConsent: "N", }; } diff --git a/apps/as/src/pages/fnrs-cnsltn/lib/save-payload-utils.ts b/apps/as/src/pages/fnrs-cnsltn/lib/save-payload-utils.ts index 7c4782dbb..fb34d7d0e 100644 --- a/apps/as/src/pages/fnrs-cnsltn/lib/save-payload-utils.ts +++ b/apps/as/src/pages/fnrs-cnsltn/lib/save-payload-utils.ts @@ -112,8 +112,7 @@ export function buildSupplementReqPayload( toSplmntDmndSaveItem(item), ); - const nextSn = - existingItems.reduce((max, item) => Math.max(max, item.splmntDmndSn ?? 0), 0) + 1; + const nextSn = existingItems.reduce((max, item) => Math.max(max, item.splmntDmndSn ?? 0), 0) + 1; const newItems: FnrsCnsltnSplmntDmndItem[] = payload.items.map((item, index) => ({ splmntDmndSn: nextSn + index, @@ -129,7 +128,7 @@ export function buildSupplementReqPayload( }; } -function toSplmntDmndSaveItem(item: FnrsCnsltnSplmntDmndItem): FnrsCnsltnSplmntDmndItem { +export function toSplmntDmndSaveItem(item: FnrsCnsltnSplmntDmndItem): FnrsCnsltnSplmntDmndItem { return { splmntDmndSn: item.splmntDmndSn, splmntArtclComCd: item.splmntArtclComCd, diff --git a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx index 46d8f9eee..d55333763 100644 --- a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx +++ b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx @@ -40,8 +40,8 @@ import { computeReviewStepChecklistProgress } from "../../lib/checklist-utils"; import { buildSavePayload, buildSupplementReqPayload, - buildSupplementSubmitPayload, buildTechReviewReplyPayload, + toSplmntDmndSaveItem, } from "../../lib/save-payload-utils"; import { type ChecklistFormState } from "../../model/view-types"; import type { TechReviewOpinionSectionHandle } from "../sections/tech-review-opinion-section"; @@ -219,15 +219,6 @@ function FloatingActionButtons({ router.push("/fnrs-cnsltn"); } - async function handleSplmntCmptnClick() { - const payload = buildSupplementSubmitPayload(data, checklistFormState); - await executeAction({ - action: FNRS_CNSLTN_VIEW_BUTTON_ACTION.splmntCmptn, - request: payload, - successMessage: "보완완료 처리되었습니다.", - }); - } - async function handleFnrsCnsltnAncmntClick() { const payload: DocPrgrsUpdateRequestDto = { docNo, @@ -380,15 +371,18 @@ function FloatingActionButtons({ return; } - const payload = buildTechReviewReplyPayload( - data, - checklistFormState, - "KECO", - "TE", - "SV", - getReviewOpinionFormData(), - opnrNm, - ); + const payload = { + ...buildTechReviewReplyPayload( + data, + checklistFormState, + "KECO", + "TE", + "SV", + getReviewOpinionFormData(), + opnrNm, + ), + splmntDmndList: (data.splmntDmndList ?? []).map(toSplmntDmndSaveItem), + }; await executeAction({ action: FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwCmptn, @@ -439,11 +433,6 @@ function FloatingActionButtons({ 삭제 )} - {shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.splmntCmptn) && ( - - )} {shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.fnrsCnsltnAncmnt) && ( - - {isEditMode && ( + {!isSplmntPrgrsStts ? ( <> - - + {isEditMode && ( + <> + + + + )} + ) : ( + )} diff --git a/apps/as/src/pages/fnrs-cnsltn/ui/fnrs-view-page.tsx b/apps/as/src/pages/fnrs-cnsltn/ui/fnrs-view-page.tsx index d4f110f0a..2423e1ead 100644 --- a/apps/as/src/pages/fnrs-cnsltn/ui/fnrs-view-page.tsx +++ b/apps/as/src/pages/fnrs-cnsltn/ui/fnrs-view-page.tsx @@ -5,7 +5,7 @@ import { useRef } from "react"; import { useUserStore } from "@/shared/lib"; import { ElaprDocPrgrsStatus } from "@/entities/elapr"; import { useFnrsCnsltnMng } from "@/entities/fnrs-cnsltn"; -import { SectionCollapsible } from "@/widgets/pbadms-sprt"; +import { SectionCollapsible, SupplementDemandSection } from "@/widgets/pbadms-sprt"; import { Skeleton } from "@common/components"; import { getEditableReviewStep } from "../lib/review-step-utils"; @@ -19,7 +19,6 @@ import { BusinessScaleSection } from "./sections/business-scale-section"; import { ChecklistSection } from "./sections/checklist-section"; import { ContactInfoSection } from "./sections/contact-info-section"; import { FnrsSharSection } from "./sections/fnrs-shar-section"; -import { SupplementDemandSection } from "./sections/supplement-demand-section"; import { TechReviewOpinionSection, type TechReviewOpinionSectionHandle, diff --git a/apps/as/src/pages/fnrs-cnsltn/ui/sections/supplement-demand-section.tsx b/apps/as/src/pages/fnrs-cnsltn/ui/sections/supplement-demand-section.tsx deleted file mode 100644 index 339b803b1..000000000 --- a/apps/as/src/pages/fnrs-cnsltn/ui/sections/supplement-demand-section.tsx +++ /dev/null @@ -1,57 +0,0 @@ -"use client"; - -import { dayjs } from "@/shared/lib"; -import type { FnrsCnsltnSplmntDmndResponseDto } from "@/entities/fnrs-cnsltn"; -import { SectionCollapsible } from "@/widgets/pbadms-sprt"; -import { - Badge, - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@common/components"; - -interface SupplementDemandSectionProps { - splmntDmndList: FnrsCnsltnSplmntDmndResponseDto[]; -} - -function SupplementDemandSection({ splmntDmndList }: SupplementDemandSectionProps) { - if (splmntDmndList.length === 0) return null; - - return ( - - - - - 항목 - 보완요청 내용 - 보완 내용 - 완료여부 - 요청일시 - - - - {splmntDmndList.map((item) => ( - - {item.splmntArtclCdNm || "-"} - {item.splmntDmndCn || "-"} - {item.splmntCn || "-"} - - - {item.cmptnYn === "Y" ? "완료" : "미완료"} - - - - {item.splmntDmndDt ? dayjs(item.splmntDmndDt).format("YYYY-MM-DD HH:mm") : "-"} - - - ))} - -
-
- ); -} - -export { SupplementDemandSection }; diff --git a/apps/as/src/pages/instl-sncn/lib/button-config.ts b/apps/as/src/pages/instl-sncn/lib/button-config.ts index 28ce89f9e..8dafefd31 100644 --- a/apps/as/src/pages/instl-sncn/lib/button-config.ts +++ b/apps/as/src/pages/instl-sncn/lib/button-config.ts @@ -2,7 +2,6 @@ export const INSTL_SNCN_VIEW_BUTTON_ACTION = { strg: "strg", aply: "aply", del: "del", - splmntCmptn: "splmntCmptn", instlSncnAncmnt: "instlSncnAncmnt", envoSbmsn: "envoSbmsn", rjct: "rjct", @@ -32,7 +31,6 @@ const ROLE_STATUS_BUTTON_ACTIONS: Record; - supplementDemandRef?: React.RefObject; opnrNm?: string; } @@ -69,7 +67,6 @@ function FloatingActionButtons({ dtlInstCd, checklistFormState, techReviewOpinionRef, - supplementDemandRef, opnrNm, }: FloatingActionButtonsProps) { const router = useRouter(); @@ -397,9 +394,7 @@ function FloatingActionButtons({ getReviewOpinionFormData(), opnrNm, ), - splmntDmndList: - supplementDemandRef?.current?.getSplmntDmndList() ?? - (data.splmntDmndList ?? []).map(toSplmntDmndSaveItem), + splmntDmndList: (data.splmntDmndList ?? []).map(toSplmntDmndSaveItem), }; await executeAction({ @@ -451,16 +446,6 @@ function FloatingActionButtons({ 삭제 )} - {shouldShowButton(INSTL_SNCN_VIEW_BUTTON_ACTION.splmntCmptn) && ( - - )} {shouldShowButton(INSTL_SNCN_VIEW_BUTTON_ACTION.instlSncnAncmnt) && (