From bcbcca9900778079ab5f2822f91abba817e2de2f Mon Sep 17 00:00:00 2001 From: jyha00 Date: Wed, 11 Jun 2025 13:46:45 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=A4=EC=B9=AD=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=ED=8F=B4=EB=8D=94=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD,=20?= =?UTF-8?q?=EC=88=98=EC=9A=94=EC=B2=98=20=EB=A7=A4=EC=B9=AD=20=EA=B2=80?= =?UTF-8?q?=ED=86=A0=20=EB=B0=8F=20=EC=9E=AC=EC=9D=B4=EC=9A=A9=20=EA=B2=80?= =?UTF-8?q?=ED=86=A0=EC=9D=B4=EB=A0=A5=20=ED=8C=9D=EC=97=85=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{matDmd => coMat}/coMatRvw/page.tsx | 56 +++++-- .../{matDmd => coMat}/ruseCaseMng/page.tsx | 0 .../{matDmd => coMat}/ruseRvwHstry/page.tsx | 103 ++++++++++--- .../matMng/{matDmd => coMng}/coReg/page.tsx | 0 .../matMng/{matDmd => coMng}/coSttn/page.tsx | 0 .../matMng/{matDmd => coMng}/dmdReg/page.tsx | 0 .../{matDmd => coMng}/drgtSttn/page.tsx | 0 .../{matDmd => coMng}/ldrmntCoSttn/page.tsx | 0 apps/wr/app/page.tsx | 14 +- .../wr/app/store/matDmd/coMatRvw/headList.tsx | 145 +++++++++++++++++- .../components/ui/modal/coMat/cmpttnModal.tsx | 36 +++++ .../components/ui/modal/coMat/coMatModal.tsx | 32 ++++ 12 files changed, 348 insertions(+), 38 deletions(-) rename apps/wr/app/matMng/{matDmd => coMat}/coMatRvw/page.tsx (95%) rename apps/wr/app/matMng/{matDmd => coMat}/ruseCaseMng/page.tsx (100%) rename apps/wr/app/matMng/{matDmd => coMat}/ruseRvwHstry/page.tsx (80%) rename apps/wr/app/matMng/{matDmd => coMng}/coReg/page.tsx (100%) rename apps/wr/app/matMng/{matDmd => coMng}/coSttn/page.tsx (100%) rename apps/wr/app/matMng/{matDmd => coMng}/dmdReg/page.tsx (100%) rename apps/wr/app/matMng/{matDmd => coMng}/drgtSttn/page.tsx (100%) rename apps/wr/app/matMng/{matDmd => coMng}/ldrmntCoSttn/page.tsx (100%) create mode 100644 apps/wr/components/ui/modal/coMat/cmpttnModal.tsx create mode 100644 apps/wr/components/ui/modal/coMat/coMatModal.tsx diff --git a/apps/wr/app/matMng/matDmd/coMatRvw/page.tsx b/apps/wr/app/matMng/coMat/coMatRvw/page.tsx similarity index 95% rename from apps/wr/app/matMng/matDmd/coMatRvw/page.tsx rename to apps/wr/app/matMng/coMat/coMatRvw/page.tsx index 01f3cef8a..248a45484 100644 --- a/apps/wr/app/matMng/matDmd/coMatRvw/page.tsx +++ b/apps/wr/app/matMng/coMat/coMatRvw/page.tsx @@ -3,10 +3,13 @@ import { useWrStore } from "@/app/store"; import { formH1Class, formTableName } from "@/components/lib/class/comClass"; import { getCity } from "@/components/lib/func/commom"; +import { CmpttnModal } from "@/components/ui/modal/coMat/cmpttnModal"; +import { CoMatModal } from "@/components/ui/modal/coMat/coMatModal"; import type { objSearchType } from "@/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal"; import { ContentsDiv, Form, FormField, FormUi, ScrollArea, SearchDiv, SearchFormLeft, SearchFormRight, SearchInput, SelectBox, Title, UiModal, UiTable, type SelectDataType } from "@common/business_components/ui"; import ListDiv from "@common/business_components/ui/list_div"; import { Button, DatePicker, Input, Label } from "@common/components/ui"; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@common/components/ui/tooltip"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect, useState } from "react"; import { useFieldArray, useForm } from "react-hook-form"; @@ -23,6 +26,12 @@ export default function CoMatRvw() { const [isPrcsMo, setIsPrcsMo] = useState<{ isModal: boolean; }>({ isModal: false }); + const [isTrfMo, setIsTrfMo] = useState<{ + isModal: boolean; + }>({ isModal: false, }); + const [isCmpttnMo, setIsCmpttnMo] = useState<{ + isModal: boolean; + }>({ isModal: false, }); const schema = z.object({ @@ -48,15 +57,6 @@ export default function CoMatRvw() { setObjSearch({ ...objSearch, sgg: String(val) }) }; - const { - fields: [], - append, - remove, - } = useFieldArray({ - control: form.control, - name: "", - }); - useEffect(() => { if (fromDate > toDate) { const newFromDate = new Date(toDate); @@ -613,7 +613,7 @@ export default function CoMatRvw() { @@ -667,7 +667,19 @@ export default function CoMatRvw() {
- + + + } + bodyClass="w-[40vw] max-w-none h-[70vh]" + open={isTrfMo.isModal} + onOpenChange={(open) => { + setIsTrfMo({ isModal: open }); + }} + /> + + } + bodyClass="w-[70vw] max-w-none h-[50vh]" + open={isCmpttnMo.isModal} + onOpenChange={(open) => { + setIsCmpttnMo({ isModal: open }); + }} + />
diff --git a/apps/wr/app/matMng/matDmd/ruseCaseMng/page.tsx b/apps/wr/app/matMng/coMat/ruseCaseMng/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/ruseCaseMng/page.tsx rename to apps/wr/app/matMng/coMat/ruseCaseMng/page.tsx diff --git a/apps/wr/app/matMng/matDmd/ruseRvwHstry/page.tsx b/apps/wr/app/matMng/coMat/ruseRvwHstry/page.tsx similarity index 80% rename from apps/wr/app/matMng/matDmd/ruseRvwHstry/page.tsx rename to apps/wr/app/matMng/coMat/ruseRvwHstry/page.tsx index d6a2b47ac..70d57d0b9 100644 --- a/apps/wr/app/matMng/matDmd/ruseRvwHstry/page.tsx +++ b/apps/wr/app/matMng/coMat/ruseRvwHstry/page.tsx @@ -3,10 +3,13 @@ import { useWrStore } from "@/app/store"; import { formTableName } from "@/components/lib/class/comClass"; import { getCity } from "@/components/lib/func/commom"; +import { CmpttnModal } from "@/components/ui/modal/coMat/cmpttnModal"; +import { CoMatModal } from "@/components/ui/modal/coMat/coMatModal"; import type { objSearchType } from "@/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal"; -import { ContentsDiv, Form, FormField, FormUi, ScrollArea, SearchDiv, SearchFormLeft, SearchFormRight, SearchInput, SelectBox, Title, UiTable, type SelectDataType } from "@common/business_components/ui"; +import { ContentsDiv, Form, FormField, FormUi, ScrollArea, SearchDiv, SearchFormLeft, SearchFormRight, SearchInput, SelectBox, Title, UiModal, UiTable, type SelectDataType } from "@common/business_components/ui"; import ListDiv from "@common/business_components/ui/list_div"; import { Button, DatePicker, Input, Label } from "@common/components/ui"; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@common/components/ui/tooltip"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect, useState } from "react"; import { useFieldArray, useForm } from "react-hook-form"; @@ -40,18 +43,17 @@ export default function RuseRvwHstry() { fcltCpct: 0, } }); + const [isPrcsMo, setIsPrcsMo] = useState<{ + isModal: boolean; + }>({ isModal: false }); + const [isTrfMo, setIsTrfMo] = useState<{ + isModal: boolean; + }>({ isModal: false, }); + const [isCmpttnMo, setIsCmpttnMo] = useState<{ + isModal: boolean; + }>({ isModal: false, }); - const { - fields: [], - append, - remove, - } = useFieldArray({ - control: form.control, - name: "", - }); - -return ( - <> + return (
@@ -204,7 +206,7 @@ return ( />
- + 처리시설용량에 따른 공사비(백만원) @@ -302,7 +304,19 @@ return (
- +
+ + { }} + onPageChange={() => { }} + /> + + } + bodyClass="w-[25vw] max-w-none h-[60vh]" + open={isPrcsMo.isModal} + onOpenChange={(open) => { + setIsPrcsMo({ isModal: open }); + }} + /> + + } + bodyClass="w-[40vw] max-w-none h-[70vh]" + open={isTrfMo.isModal} + onOpenChange={(open) => { + setIsTrfMo({ isModal: open }); + }} + /> + + } + bodyClass="w-[70vw] max-w-none h-[50vh]" + open={isCmpttnMo.isModal} + onOpenChange={(open) => { + setIsCmpttnMo({ isModal: open }); + }} + />
- -) + ) } \ No newline at end of file diff --git a/apps/wr/app/matMng/matDmd/coReg/page.tsx b/apps/wr/app/matMng/coMng/coReg/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/coReg/page.tsx rename to apps/wr/app/matMng/coMng/coReg/page.tsx diff --git a/apps/wr/app/matMng/matDmd/coSttn/page.tsx b/apps/wr/app/matMng/coMng/coSttn/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/coSttn/page.tsx rename to apps/wr/app/matMng/coMng/coSttn/page.tsx diff --git a/apps/wr/app/matMng/matDmd/dmdReg/page.tsx b/apps/wr/app/matMng/coMng/dmdReg/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/dmdReg/page.tsx rename to apps/wr/app/matMng/coMng/dmdReg/page.tsx diff --git a/apps/wr/app/matMng/matDmd/drgtSttn/page.tsx b/apps/wr/app/matMng/coMng/drgtSttn/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/drgtSttn/page.tsx rename to apps/wr/app/matMng/coMng/drgtSttn/page.tsx diff --git a/apps/wr/app/matMng/matDmd/ldrmntCoSttn/page.tsx b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx similarity index 100% rename from apps/wr/app/matMng/matDmd/ldrmntCoSttn/page.tsx rename to apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx diff --git a/apps/wr/app/page.tsx b/apps/wr/app/page.tsx index dde060704..af9ef6950 100644 --- a/apps/wr/app/page.tsx +++ b/apps/wr/app/page.tsx @@ -111,22 +111,22 @@ export default function Home() {
@@ -138,17 +138,17 @@ export default function Home() {
diff --git a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx index d77dff8c9..8caf7e1b2 100644 --- a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx +++ b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx @@ -106,4 +106,147 @@ export const coRvwNodeListExport: CommonTableProps[] = [ colSpan: 1, }, -]; \ No newline at end of file +]; + +export const cmpttnHeadListExport: CommonTableProps[] = [ + { + id: "ctpv", + title: "구분", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "sgg", + title: "처리시설 용량(m³)", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "500", + title: "500", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "1000", + title: "1,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + },{ + id: "2000", + title: "2,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "3000", //바꾸기 + title: "3,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "5000", //바꾸기 + title: "5,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "10000", //바꾸기 + title: "10,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "20000", //바꾸기 + title: "20,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "30000", //바꾸기 + title: "30,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "50000", //바꾸기 + title: "50,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "100000", //바꾸기 + title: "100,000", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + +]; + + +export const coModalHeadListExport: CommonTableProps[] = [ + { + id: "gubun", + title: "공사비/구분", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "a", + title: "기본조사설계비", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "aa", + title: "실시설계비", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "aaa", + title: "공사감리비", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, + { + id: "aaaa", + title: "시설부대비", + visible: true, + row: 1, + rowSpan: 1, + colSpan: 1, + }, +] \ No newline at end of file diff --git a/apps/wr/components/ui/modal/coMat/cmpttnModal.tsx b/apps/wr/components/ui/modal/coMat/cmpttnModal.tsx new file mode 100644 index 000000000..ab18e3542 --- /dev/null +++ b/apps/wr/components/ui/modal/coMat/cmpttnModal.tsx @@ -0,0 +1,36 @@ +"use client" + +import { cmpttnHeadListExport } from "@/app/store/matDmd/coMatRvw/headList"; +import { yearOptions } from "@/components/lib/func/commom" +import { SelectBox, UiTable } from "@common/business_components/ui" +import { Label } from "@common/components/ui" +import { useState } from "react"; + +export function CmpttnModal({ data }: { data: [] }) { + const [year, setYear] = useState(String(new Date().getFullYear())); + return ( + <> +

공사비 산정표 보기

+
+
+ + setYear(String(val))} /> +
+ { }} + onPageChange={() => { }} + /> + + ) +} \ No newline at end of file diff --git a/apps/wr/components/ui/modal/coMat/coMatModal.tsx b/apps/wr/components/ui/modal/coMat/coMatModal.tsx new file mode 100644 index 000000000..4717a89a3 --- /dev/null +++ b/apps/wr/components/ui/modal/coMat/coMatModal.tsx @@ -0,0 +1,32 @@ +"use client" + +import { coModalHeadListExport } from "@/app/store/matDmd/coMatRvw/headList"; +import { yearOptions } from "@/components/lib/func/commom" +import { SelectBox, UiTable } from "@common/business_components/ui" +import { Label } from "@common/components/ui" +import { useState } from "react"; + +export function CoMatModal({ data }: { data: [] }) { + const [year, setYear] = useState(String(new Date().getFullYear())); + return ( + <> +

요율표 보기

+
+
+ + setYear(String(val))} /> +
+ { }} pageSize={0} total={0} cellClick={undefined} /> + + ) +} \ No newline at end of file