diff --git a/apps/as/app/(main)/(with-base-layout)/design-cnstn/page.tsx b/apps/as/app/(main)/(with-base-layout)/design-cnstn/page.tsx index cced4a877..ec03c3be7 100644 --- a/apps/as/app/(main)/(with-base-layout)/design-cnstn/page.tsx +++ b/apps/as/app/(main)/(with-base-layout)/design-cnstn/page.tsx @@ -1,3 +1,11 @@ +import { Suspense } from "react"; + import { DesignListPage } from "@/pages/design-cnstn"; -export default DesignListPage; +export default function Page() { + return ( + + + + ); +} diff --git a/apps/as/app/(main)/(with-base-layout)/fnrs-cnsltn/page.tsx b/apps/as/app/(main)/(with-base-layout)/fnrs-cnsltn/page.tsx index 734a0afd9..bf6029a76 100644 --- a/apps/as/app/(main)/(with-base-layout)/fnrs-cnsltn/page.tsx +++ b/apps/as/app/(main)/(with-base-layout)/fnrs-cnsltn/page.tsx @@ -1,3 +1,11 @@ +import { Suspense } from "react"; + import { FnrsListPage } from "@/pages/fnrs-cnsltn"; -export default FnrsListPage; +export default function Page() { + return ( + + + + ); +} diff --git a/apps/as/app/(main)/(with-base-layout)/instl-sncn/page.tsx b/apps/as/app/(main)/(with-base-layout)/instl-sncn/page.tsx index a3d6e05ac..413df0c3d 100644 --- a/apps/as/app/(main)/(with-base-layout)/instl-sncn/page.tsx +++ b/apps/as/app/(main)/(with-base-layout)/instl-sncn/page.tsx @@ -1,3 +1,11 @@ +import { Suspense } from "react"; + import { InstlListPage } from "@/pages/instl-sncn"; -export default InstlListPage; +export default function Page() { + return ( + + + + ); +} diff --git a/apps/as/app/(main)/(with-base-layout)/sewer-bsc-plan/page.tsx b/apps/as/app/(main)/(with-base-layout)/sewer-bsc-plan/page.tsx index d07ca4b43..b7b96e246 100644 --- a/apps/as/app/(main)/(with-base-layout)/sewer-bsc-plan/page.tsx +++ b/apps/as/app/(main)/(with-base-layout)/sewer-bsc-plan/page.tsx @@ -1,3 +1,11 @@ +import { Suspense } from "react"; + import { SewerBscPlanListPage } from "@/pages/sewer-bsc-plan"; -export default SewerBscPlanListPage; +export default function Page() { + return ( + + + + ); +} diff --git a/apps/as/src/pages/design-cnstn/model/columns.tsx b/apps/as/src/pages/design-cnstn/model/columns.tsx index 429c209aa..93a453314 100644 --- a/apps/as/src/pages/design-cnstn/model/columns.tsx +++ b/apps/as/src/pages/design-cnstn/model/columns.tsx @@ -61,6 +61,13 @@ function buildProgressBadges(prgrsSttsComCd: string): ProgressBadge[] { ]; } +function getProgressStatusBadge(prgrsSttsComCd?: string | null) { + if (prgrsSttsComCd === "SL") { + return 보완요청; + } + return null; +} + function getBadgeColor(state: BadgeState) { switch (state) { case "completed": @@ -110,7 +117,11 @@ export function createDesignCnstnColumns() { columnHelper.accessor("bizNm", { header: "사업명", meta: { align: "left" }, - cell: ({ getValue }) => formatOptional(getValue()), + cell: ({ row, getValue }) => ( + <> + {getProgressStatusBadge(row.original.prgrsSttsComCd)} {formatOptional(getValue())} + + ), }), columnHelper.accessor("taskSeCdNm", { header: "업무구분", diff --git a/apps/as/src/pages/design-cnstn/ui/components/floating-action-buttons.tsx b/apps/as/src/pages/design-cnstn/ui/components/floating-action-buttons.tsx index 37af44b48..94088f228 100644 --- a/apps/as/src/pages/design-cnstn/ui/components/floating-action-buttons.tsx +++ b/apps/as/src/pages/design-cnstn/ui/components/floating-action-buttons.tsx @@ -8,7 +8,7 @@ import { useQueryClient } from "@tanstack/react-query"; import { AxiosError } from "axios"; import { ENDPOINT } from "@/shared/config"; -import { useAlertStore, useUserStore } from "@/shared/lib"; +import { getListHref, useAlertStore, useUserStore, withListQs } from "@/shared/lib"; import { type DesignCnstnApplySaveRequestDto, designCnstnKeys, @@ -103,11 +103,11 @@ function FloatingActionButtons({ isRegister && actionButtons.some((button) => button === DESIGN_CNSTN_VIEW_BUTTON_ACTION.strg); function handleGoToList() { - router.push("/design-cnstn"); + router.push(getListHref("/design-cnstn")); } function handleEdit() { - router.push(`/design-cnstn/${designCnstnDocNo}/edit`); + router.push(withListQs(`/design-cnstn/${designCnstnDocNo}/edit`)); } function shouldShowButton(action: DesignCnstnViewButtonAction) { @@ -177,7 +177,7 @@ function FloatingActionButtons({ action: DESIGN_CNSTN_VIEW_BUTTON_ACTION.del, successMessage: "삭제되었습니다.", }); - router.push("/design-cnstn"); + router.push(getListHref("/design-cnstn")); } function getReviewOpinionFormData() { diff --git a/apps/as/src/pages/design-cnstn/ui/design-form-page.tsx b/apps/as/src/pages/design-cnstn/ui/design-form-page.tsx index 254a7a010..276073307 100644 --- a/apps/as/src/pages/design-cnstn/ui/design-form-page.tsx +++ b/apps/as/src/pages/design-cnstn/ui/design-form-page.tsx @@ -8,7 +8,7 @@ import { useConfirm } from "@frontend-opensource/use-react-hooks"; import { zodResolver } from "@hookform/resolvers/zod"; import { useQueryClient } from "@tanstack/react-query"; -import { useAlertStore, useUserStore } from "@/shared/lib"; +import { getListHref, useAlertStore, useUserStore, withListQs } from "@/shared/lib"; import { RhfDevTool, SectionCollapsibleGroup, SectionCollapsibleToggle } from "@/shared/ui"; import { designCnstnKeys, @@ -91,7 +91,7 @@ function DesignFormPage({ mode, initialData, createDefaults }: DesignFormPagePro alert("저장되었습니다."); queryClient.invalidateQueries({ queryKey: designCnstnKeys.all }); - router.push(`/design-cnstn/${designCnstnDocNo}/edit`); + router.push(withListQs(`/design-cnstn/${designCnstnDocNo}/edit`)); } catch (error) { console.error("저장 실패:", error); alert("저장 중 오류가 발생했습니다."); @@ -115,7 +115,7 @@ function DesignFormPage({ mode, initialData, createDefaults }: DesignFormPagePro alert("신청 완료되었습니다."); queryClient.invalidateQueries({ queryKey: designCnstnKeys.all }); - router.push(`/design-cnstn/${designCnstnDocNo}`); + router.push(withListQs(`/design-cnstn/${designCnstnDocNo}`)); } catch (error) { console.error("신청 실패:", error); alert("신청 중 오류가 발생했습니다."); @@ -144,7 +144,7 @@ function DesignFormPage({ mode, initialData, createDefaults }: DesignFormPagePro await designCnstnMngService.delete(docNo); alert("삭제되었습니다."); queryClient.invalidateQueries({ queryKey: designCnstnKeys.list() }); - router.push("/design-cnstn"); + router.push(getListHref("/design-cnstn")); } catch (error) { console.error("삭제 실패:", error); alert("삭제 중 오류가 발생했습니다."); @@ -184,7 +184,7 @@ function DesignFormPage({ mode, initialData, createDefaults }: DesignFormPagePro