From 77b4ba01b458e05cf4b3f025d78b17f4d94e0853 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Thu, 18 Sep 2025 14:09:55 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=BC=EC=9E=AC=EC=9D=B4=EC=9A=A9=20?= =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=B6=94=EA=B0=80=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/coMatRvw/page.tsx | 13 +- .../ruseFcltMng/fcltReg/pbnstReg/page.tsx | 11 + .../ruseFcltMng/fcltReg/rainReg/page.tsx | 11 + .../ruseFcltMng/fcltReg/rswtReg/page.tsx | 9 + .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 19 +- .../ruseFcltMng/fcltReg/pbnstReg/index.tsx | 15 ++ .../ruseFcltMng/fcltReg/rainReg/index.tsx | 122 ++++++----- .../ruseFcltMng/fcltReg/rswtReg/index.tsx | 12 ++ .../ruseFcltMng/fcltSttn/pbnstSttn/index.tsx | 197 +++++++++++------- .../ui/form/coMat/conCostForm/conCostForm.tsx | 7 + .../ui/form/fcltReg/bdstReg/bdstReg.tsx | 29 ++- .../fcltReg/pbnstReg/buseReg/bugRegForm.tsx | 15 ++ .../fcltReg/pbnstReg/mngReg/mngRegForm.tsx | 12 ++ .../fcltReg/bdstRegModal/bdstRegModal.tsx | 83 ++++---- .../ruseMngTableForm/ruseMngTableForm.tsx | 15 ++ 15 files changed, 368 insertions(+), 202 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx index 8b3f5dfdb..472b8222f 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -40,6 +40,14 @@ import { useForm, useWatch } from "react-hook-form"; import toast, { Toaster } from "react-hot-toast"; import { z } from "zod"; + +/** + * πŸ“„ CoMatRvw μˆ˜μš”λ§€μΉ­ κ²€ν†  + * Next.js App Router (app/) 기반 νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈ μ˜ˆμ‹œ + * + * - λŒ€λ―Όμ—μ„œ μ‹ μ²­ν•˜λŠ” μˆ˜μš”μ²˜μ˜ μˆ˜μš”λ“±λ‘ 정보λ₯Ό μš΄μ˜λ‹΄λ‹Ήμžκ°€ μˆ˜μš” λ§€μΉ­ κ²€ν† λ₯Ό μ§„ν–‰ν•œλ‹€. + * - μ „μ²΄μ μœΌλ‘œ form을 λ§Œλ“€μ–΄μ„œ formμ•ˆμ— 데이터λ₯Ό λ„£κ³  apiλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ €μž₯ν•œλ‹€. + */ export default function CoMatRvw() { const { auth, code, coRvw, coMatRvwInit, coMatRvwSearch, coMatRvwInqua } = useWrStore((state) => state); @@ -70,6 +78,9 @@ export default function CoMatRvw() { ); const [selectionVersion, setSelectionVersion] = useState(0); + + + //μˆ˜μš” λ§€μΉ­ 검색 const getSearch = ( startYear: number, endYear: number, @@ -117,7 +128,7 @@ export default function CoMatRvw() { if (coMatRvwRes && coMatRvwRes.length > 0) { const data = coMatRvwRes?.map((item) => { let flag = ""; - + // μˆ˜μš”μ²˜μ˜ 맀칭된 정보λ₯Ό ν™•μΈν• μˆ˜ μžˆλ„λ‘ ν•œλ‹€. flag = getdmdMatFlag(item?.demandMatching?.splyFcltFlg || undefined); return { diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx index b5b3f37f9..d5d0e9b33 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -35,6 +35,17 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { createDefaultPbnstItem } from "./utilsZod"; import { useTranslation } from "react-i18next"; +/** + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€λ“±λ‘ + * + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * - ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ— ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€μ„ 등둝 ν•œλ‹€. + * - form으둜 μ‹œμ„€μ •λ³΄ 및 μ°¨μˆ˜λ³„ μ •λ³΄μ˜ μ»΄ν¬λ„ŒνŠΈ 데이터λ₯Ό κ΄€λ¦¬ν•œλ‹€ + * indexMng: μ‹œμ„€μ •λ³΄ + * indexBiz: μ°¨μˆ˜λ³„ 정보 + * 둜 ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€μ— λ“±λ‘λœ μ‹œμ„€ 및 μ°¨μˆ˜λ³„ 정보λ₯Ό κ΄€λ¦¬ν•œλ‹€. + * */ export default function PublicReuseFaciltyInsert() { const { diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx index 629263c31..f3567210d 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx @@ -22,6 +22,17 @@ import { Button } from "@common/components"; import { useEffect, useRef, useState } from "react"; import { Toaster } from "react-hot-toast"; + + +/** + * λ°§λ¬Όμ΄μš©μ‹œμ„€ 등둝 + * μž¬μ΄μš©μ‹œμ„€ 등둝 - λΉ—λ¬Όμ‹œμ„€ 등둝 + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * μ™Όμͺ½ ν…Œμ΄λΈ”μ—λŠ” 건좕물 리슀트 / 였λ₯Έμͺ½ νΌμ—λŠ” 건좕물에 ν•΄λ‹Ήν•˜λŠ” λΉ—λ¬Όμ΄μš©μ‹œμ„€ 데이터가 보인닀. + * μ‹ κ·œ 등둝 λ²„νŠΌμ„ 눌러 건좕물 정보뢀터 μž…λ ₯ν•œλ‹€. + * + * */ export default function Home() { const { auth, diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx index 619a3d0d7..27fe7456f 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx @@ -22,6 +22,15 @@ import { Button } from "@common/components"; import { useEffect, useRef, useState } from "react"; import { Toaster } from "react-hot-toast"; + +/** + * μ€‘μˆ˜λ„ μ‹œμ„€ 등둝 + * μž¬μ΄μš©μ‹œμ„€ 등둝 - μ€‘μˆ˜λ„μ‹œμ„€ 등둝 + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * μ™Όμͺ½ ν…Œμ΄λΈ”μ—λŠ” 건좕물 리슀트 / 였λ₯Έμͺ½ νΌμ—λŠ” 건좕물에 ν•΄λ‹Ήν•˜λŠ” μ€‘μˆ˜λ„μ‹œμ„€ 데이터가 보인닀. + * μ‹ κ·œ 등둝 λ²„νŠΌμ„ 눌러 건좕물 정보뢀터 μž…λ ₯ν•œλ‹€. + * */ export default function Home() { const { auth, diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index bbab4d9ce..ca0b04f31 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -24,6 +24,15 @@ import { useCallback, useEffect, useRef, useState } from "react"; import toast, { Toaster } from "react-hot-toast"; import { useTranslation } from "react-i18next"; +/** + * ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ ν˜„ν™© + * μž¬μ΄μš©μ‹œμ„€ ν˜„ν™© - ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ ν˜„ν™© + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€. ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ , ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ 싀적에 λŒ€ν•œ 정보λ₯Ό ν™•μΈν•œλ‹€. + * λͺ¨λ‹¬ : ν…Œμ΄λΈ”μ˜ 헀더λ₯Ό μ›ν•˜λŠ”λŒ€λ‘œ μ‘°μ ˆν•΄μ„œ 볼수 μžˆλ‹€. + * ν΄λ¦­μ‹œ ν•΄λ‹Ή μž¬μ΄μš©γ…‡ + * */ export default function PbnstSttn() { const { code, @@ -32,7 +41,7 @@ export default function PbnstSttn() { pbnSttnInit, getPbnStnDetail, getFlcts, - resetPbnstDetail + resetPbnstDetail, } = useWrStore((state) => state); const { pbnstSttnRes, fclts, pbnstSttnResCount } = pbnstSttn; @@ -50,7 +59,7 @@ export default function PbnstSttn() { }>({ isModal: false, data: {} as customPbnst }); const isDownloadTriggered = useRef(false); const [pbnRuseNm, setPbnRuseNm] = useState(""); - const { t } = useTranslation('base'); + const { t } = useTranslation("base"); const excelClick = useCallback(() => { isDownloadTriggered.current = true; pbnstSttnSearch( @@ -79,7 +88,6 @@ export default function PbnstSttn() { } }, [pbnstSttn.isInit]); useEffect(() => { - pbnSttnInit("1", "15", ref.current, searchYear, fclts); }, [fclts]); @@ -91,7 +99,6 @@ export default function PbnstSttn() { } }, [pbnstSttnRes]); - useEffect(() => { if (!isDownloadTriggered.current) { return; @@ -105,12 +112,11 @@ export default function PbnstSttn() { 3 ); } else { - toast.error(t('excelDownErrMsg')); + toast.error(t("excelDownErrMsg")); } isDownloadTriggered.current = false; }, [pbnstSttn.excelList]); - useEffect(() => { if (pbnstSttn.pbnstDetail.pbnstRuseFcltId) setPbnDetaileData({ @@ -211,7 +217,6 @@ export default function PbnstSttn() { ); setIsReset(false); }} - resetPageNo={isReset} > diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx index e5a1f7da2..b1e0daf82 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx @@ -26,6 +26,12 @@ import { import type { TableUpperProps } from "@/app/store/common/type/header"; import toast from "react-hot-toast"; +/** + * ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ 등둝 (μŠ€ν† μ–΄) + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ 등둝 + * ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ μ‚¬μš©ν•˜λŠ” api 및 νƒ€μž… 등을 κ΄€λ¦¬ν•œλ‹€. + * */ + const selectLabel: SelectDataType[] = [{ text: "test", val: "1" }]; const pubFacHeadList = pubFacHeadListExport; const pbnstMngUpHeadList = pbnstMngUpHeadListExport; @@ -167,6 +173,7 @@ export const writeRgtrAndMdfr = (data: customPbnst[]) => { }; export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { return { + // ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€(μš΄μ˜μ‹€νƒœ) pubHasuInit: async (page: string, sggOrCity: string) => { try { const pbnstHasuRes = await hasuListFetch(page, sggOrCity); @@ -182,6 +189,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.log(errorHasu); } }, + // ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€(μš΄μ˜μ‹€νƒœ) (μ²˜λ¦¬μ‹œμ„€λͺ… 포함) pubHasuSearch: async ( page: string, sggOrCity: string, @@ -201,6 +209,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.log(errorHasu); } }, + // ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€ pbnstRegClick: async (pubHasuRes: pubHasuType) => { try { const pbnstRes = await initFetch(pubHasuRes.bscFctCd); @@ -215,6 +224,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.log(errorHasu); } }, + // ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ λ“±λ‘ν•œλ‹€. pbnstInsert: async (pbnstRes: customPbnst) => { try { const response = await postFectch(`/reuseFc/pubFc`, pbnstRes); @@ -238,6 +248,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.error("Error updating pbnst:", error); } }, + // ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ—…λ°μ΄νŠΈν•œλ‹€.(μ‚¬μ—…μ œμ™Έ) λ‹€λ₯΄κ²Œν•˜λŠ” μ΄μœ λŠ” 객체가 λ„ˆλ¬΄μ»€μ„œ λΆ„ν™œ μ²˜λ¦¬ν•˜λ €κ³  pbnstRuseFcltUpdate: async (ruseRes: customPbnst[]) => { try { await putFectch(`/reuseFc/pubFc`, ruseRes); @@ -245,6 +256,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.error("Error pbnstRuseFcltUpdate:", error); } }, + // ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ—…λ°μ΄νŠΈν•œλ‹€.(사업포함) λ‹€λ₯΄κ²Œν•˜λŠ” μ΄μœ λŠ” 객체가 λ„ˆλ¬΄μ»€μ„œ λΆ„ν™œ μ²˜λ¦¬ν•˜λ €κ³  pbnstRuseBizUpdate: async (ruseRes: fcBizType[]) => { try { await putFectch(`/reuseFc/pubFcBiz`, ruseRes); @@ -252,6 +264,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.error("Error pbnstRuseFcltUpdate:", error); } }, + // νŒŒμΌμ‚­μ œ (attach-service) fileDelete: async (atflCd: string) => { try { const response = await deleteFectch( @@ -271,6 +284,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.error("Error deleting file:", error); } }, + // νŒŒμΌλ‹€μš΄λ‘œλ“œ (attach-service) fileDownLoad: async (atflCd: string) => { try { await getFetch( @@ -282,6 +296,7 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { throw new Error(`Error downloading file: ${error}`); } }, + //μ›μˆ˜μ·¨μˆ˜ νŒμ—…μ˜ ν•˜μˆ˜μ²˜λ¦¬ μ‹œμ„€ 리슀트 쑰회 getFcOrgwts: async (fcltPkList: string[], size: number) => { const fcOrgwtsNmList = await postFectch( `/prcsFclt/ruseInfo/1/${size}/A/0/0/1/SW`, diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx index ff263783a..565909a57 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx @@ -1,15 +1,31 @@ import type { TableUpperProps } from "@/app/store/common/type/header"; -import { fetchType, getFetchWithCount, postFectch, putFectch } from "@/components/lib/api"; +import { + fetchType, + getFetchWithCount, + postFectch, + putFectch, +} from "@/components/lib/api"; import toast from "react-hot-toast"; import { z } from "zod"; import { makeMdfr, makeRstr } from "../bdstReg"; -import { baseReuseBuildingSchema, chgBuildingSchema, validationMessages } from "./type"; +import { + baseReuseBuildingSchema, + chgBuildingSchema, + validationMessages, +} from "./type"; +export const TEST_UUID = "2d4b151d-1828-41e0-91d9-4cd28ea1cc7e"; +export const rainRegSize = 15; -export const TEST_UUID = '2d4b151d-1828-41e0-91d9-4cd28ea1cc7e' -export const rainRegSize =15 +/** + * λ°§λ¬Όμ΄μš©μ‹œμ„€ 등둝 (μŠ€ν† μ–΄) + * μž¬μ΄μš©μ‹œμ„€ 등둝 - λΉ—λ¬Όμ‹œμ„€ 등둝 + * λΉ—λ¬Όμ΄μš©μ‹œμ„€μ—μ„œ μ‚¬μš©ν•˜λŠ” api 및 νƒ€μž… 등을 κ΄€λ¦¬ν•œλ‹€. + * */ const rainyObjSchema = z.object({ bdstReuseFcltFk: z.number().nullish(), - pntfColKnd: z.string().min(1, { message: validationMessages.requiredSelect("μ’…λ₯˜") }), + pntfColKnd: z + .string() + .min(1, { message: validationMessages.requiredSelect("μ’…λ₯˜") }), pntfColArea: z.number().nullish(), dtfcltCpct: z.number().default(0), filtrTrtmfctYn: z.string().default("Y"), @@ -21,10 +37,9 @@ const rainyObjSchema = z.object({ mdfr: z.string().nullish(), }); - const rainBuildingSchema = baseReuseBuildingSchema.extend({ rainyObj: rainyObjSchema, -}) +}); export const rainZod = z.object({ bdstInfoSn: z.number().optional(), @@ -34,23 +49,23 @@ export const rainZod = z.object({ bdstNm: z.string().default(""), frstArchPrmsnDt: z.date().default(() => new Date()), archChgPrmsnDt: z.coerce.date().nullish().default(null), - archArea: z.string().default(''), + archArea: z.string().default(""), archChgArea: z.number().default(0), rgtr: z.string().nullish(), mdfr: z.string().nullish(), reuseBuilding: z.array(rainBuildingSchema).default([]), - chgBuilding: z.array(chgBuildingSchema).default([]) -}) + chgBuilding: z.array(chgBuildingSchema).default([]), +}); export type chgBuilding = { - bdstInfoSn?: number | null, - archChgPrmsnDt?: Date, - archChgArea?: string, - bdstChgNm?: string + bdstInfoSn?: number | null; + archChgPrmsnDt?: Date; + archChgArea?: string; + bdstChgNm?: string; rgtr?: string | null; mdfr?: string | null; -} -export type customRainBdst = z.infer +}; +export type customRainBdst = z.infer; export const upHeadList: TableUpperProps[] = [ { id: "cityText", title: "μ‹œλ„" }, @@ -66,7 +81,6 @@ export const upHeadList: TableUpperProps[] = [ const rainRes: customRainBdst[] = []; - export const selectClass = "w-full h-full !text-xl"; export type rainFacState = { @@ -79,10 +93,9 @@ export type rainFacState = { type rainFacSActions = { initRain: (code: string | number) => void; getRainData: (pageNation: number, code: string | number) => void; - rainSearch: (txt: string, pageNation: number, code: string ) => void; + rainSearch: (txt: string, pageNation: number, code: string) => void; rainBdstReg: (data: customRainBdst, code: string | number) => void; rainBdstUpdate: (data: customRainBdst, code: string | number) => void; - }; export type rainFacType = rainFacState & rainFacSActions; @@ -96,16 +109,23 @@ export const rainFacStateExport: rainFacState = { }; const initFetch = async (code: string | number) => { - const rainRes = await getFetchWithCount(fetchType.WR, `/reuseFc/rainyInfoList/1/${rainRegSize}/${code}`); + const rainRes = await getFetchWithCount( + fetchType.WR, + `/reuseFc/rainyInfoList/1/${rainRegSize}/${code}` + ); return rainRes; }; export const rainFacActionsExport: (set: any) => rainFacSActions = ( set: any ) => { return { + // λΉ—λ¬Ό μ΄μš©μ‹œμ„€ μ‘°νšŒν•œλ‹€. getRainData: async (pageNation: number, code: string | number) => { try { - const rainRes = await getFetchWithCount(fetchType.WR, `/reuseFc/rainyInfoList/${pageNation}/${rainRegSize}/${code}`); + const rainRes = await getFetchWithCount( + fetchType.WR, + `/reuseFc/rainyInfoList/${pageNation}/${rainRegSize}/${code}` + ); // μ—¬κΈ°μ„œ μƒνƒœ μ—…λ°μ΄νŠΈ return set((state: rainFacState) => ({ @@ -116,13 +136,11 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( rainResCount: rainRes.count, }, })); - } catch (e) { - console.log(e) - + console.log(e); } }, - + // λΉ—λ¬Ό μ΄μš©μ‹œμ„€ μ‘°νšŒν•œλ‹€. initRain: async (code: string | number) => { try { // νŒŒλΌμ΄ν„° μˆ˜μ • ν†΅ν•©κ΄€λ¦¬μž =0, μ‹œκ΄€λ¦¬μž=μ‹œμ½”λ“œ, μ‹œκ΅°κ΅¬ κ΄€λ¦¬μž= μ‹œκ΅°κ΅¬ μ½”λ“œ λ₯Ό μ„Έλ²ˆμ§Έ νŒŒλΌλ―Έν„°λ‘œ μ§€μ • / 건좕물 μ„œμΉ˜κ°€ μžˆμ„κ²½μš° 4번째 νŒŒλΌλ―Έν„°λ‘œ λ˜μ§€κΈ° 즉 1/20/42(μ„œμšΈμ‹œ)/μ˜ν˜„λΉŒλ”© μ΄λŸ°μ‹μœΌλ‘œ) @@ -140,12 +158,16 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( console.log("error", error); } }, - rainSearch: async (txt: string, pageNation: number ,code:string) => { + // λΉ—λ¬Ό μ΄μš©μ‹œμ„€ μ‘°νšŒν•œλ‹€. (건좕물 이름을 ν¬ν•¨ν•˜μ—¬) + rainSearch: async (txt: string, pageNation: number, code: string) => { try { - // const rainRes = await getFetch('wr' , `/reuseFc/rainyInfoList/${pageNation}/20/41` +(txt? `/${txt}`:'')) - const rainRes = await getFetchWithCount(fetchType.WR, `/reuseFc/rainyInfoList/${pageNation}/${rainRegSize}/${code}` + (txt ? `/${txt}` : '')) - console.log("rainRes", rainRes) + const rainRes = await getFetchWithCount( + fetchType.WR, + `/reuseFc/rainyInfoList/${pageNation}/${rainRegSize}/${code}` + + (txt ? `/${txt}` : "") + ); + console.log("rainRes", rainRes); set((state: rainFacState) => { return { rain: { @@ -154,27 +176,23 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( rainResCount: rainRes.count, }, }; - }) - } - catch (erTxt) { - console.log("error", erTxt) + }); + } catch (erTxt) { + console.log("error", erTxt); } }, + // λΉ—λ¬Ό μ΄μš©μ‹œμ„€μ„ λ“±λ‘ν•œλ‹€. rainBdstReg: async (data: customRainBdst, code: string | number) => { try { - const test = await makeRstr(data); const res = await postFectch("/reuseFc/rainyInfo", test); if (res.status === 200) { if (data.chgBuilding.length > 0) { - - const chPK = res?.data?.bdstInfoSn - const makeCh = res.data.chgBuilding.map((item: chgBuilding) => - ({ + const chPK = res?.data?.bdstInfoSn; + const makeCh = res.data.chgBuilding.map((item: chgBuilding) => ({ ...item, bdstInfoSn: chPK, - }) - ); + })); const chch = await postFectch("/reuseFc/chgBuilding", makeCh); if (chch.status === 200) { @@ -203,25 +221,20 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( } finally { } }, + // λΉ—λ¬Όμ΄μš©μ‹œμ„€ μ‹œμ„€μ— λŒ€ν•œ 사항을 μ—…λ°μ΄νŠΈν•œλ‹€ rainBdstUpdate: async (data: customRainBdst, code: string | number) => { try { const chData = await makeMdfr(data); const res = await putFectch("/reuseFc/rainyInfo", chData); - console.log("res", res) - console.log("data", data) if (res.status === 200) { if (data.chgBuilding.length > 0) { const chPK = data?.bdstInfoSn; - console.log("chPK", chPK) - const makeCh = data.chgBuilding.map((item: chgBuilding) => - ({ + console.log("chPK", chPK); + const makeCh = data.chgBuilding.map((item: chgBuilding) => ({ ...item, bdstInfoSn: chPK, - }) - ); - console.log("makeCh", makeCh) + })); const chch = await postFectch("/reuseFc/chgBuilding", makeCh); - console.log("chch", chch) if (chch.status === 200) { toast.success("건좕물 μˆ˜μ •μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); @@ -235,10 +248,6 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( toast.error("건좕물 μˆ˜μ •μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); } - // } - // toast.success("μˆ˜μ •μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); - - // } const rainRes = await initFetch(code); set((state: rainFacState) => ({ ...state, @@ -253,7 +262,6 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( toast.error("μˆ˜μ •μ‹œ 였λ₯˜κ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€."); } finally { } - } - } -} - + }, + }; +}; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx index d324f3332..7fa3595fc 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx @@ -8,6 +8,13 @@ import { makeMdfr, makeRstr } from "../bdstReg"; import { baseReuseBuildingSchema, chgBuildingSchema, validationMessages } from "../rainReg/type"; + + +/** + * μ€‘μˆ˜λ„μ‹œμ„€ 등둝 (μŠ€ν† μ–΄) + * μž¬μ΄μš©μ‹œμ„€ 등둝 - μ€‘μˆ˜λ„μ‹œμ„€ 등둝 + * μ€‘μˆ˜λ„μ‹œμ„€μ—μ„œ μ‚¬μš©ν•˜λŠ” api 및 νƒ€μž… 등을 κ΄€λ¦¬ν•œλ‹€. + * */ export const rswtRegSize =15; const rswtrObjSchema = z.object({ bdstRuseFcltSn: z.number().nullish(), @@ -87,6 +94,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( set: any ) => { return { + // μ€‘μˆ˜λ„ μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€ (μ‹œμ„€μ΄λ¦„ 포함) rswtBdstSearch: async ( txt: string, pageNation: number, @@ -112,6 +120,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( console.log("error", erTxt); } }, + // μ€‘μˆ˜λ„ μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€ getRswtBdstData: async (pageNation: number, code: string | number) => { try { const rswtRes = await getFetchWithCount( @@ -132,6 +141,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( console.log(e); } }, + // μ€‘μˆ˜λ„ μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€ initRswt: async (code: string | number) => { try { const rswtRes = await initFetch(code); @@ -147,6 +157,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( console.log(error); } }, + // μ€‘μˆ˜λ„ μ‹œμ„€μ— λŒ€ν•œ 사항을 μ—…λ°μ΄νŠΈν•œλ‹€ rswtBdstUpdate: async (data: customRswtBdst, code: string | number) => { try { const chData = await makeMdfr(data); @@ -189,6 +200,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( } finally { } }, + // μ€‘μˆ˜λ„ μ‹œμ„€μ„ λ“±λ‘ν•œλ‹€. rswtBdstReg: async (data: customRswtBdst, code: string | number) => { try { const chData = await makeRstr(data); diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx index f14101626..28743ab26 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx @@ -1,4 +1,7 @@ -import type { CommonTableProps, TableUpperProps } from "@/app/store/common/type/header"; +import type { + CommonTableProps, + TableUpperProps, +} from "@/app/store/common/type/header"; import type { FcPrfType } from "@/app/store/prfmncReg/pbnstPrfmncReg/type"; import { fetchType, getFetch, postFectch } from "@/components/lib/api"; import type { ReturnType } from "@common/business_components/ui"; @@ -8,9 +11,23 @@ import type { customPbnst, pubHasuType } from "../../fcltReg/pbnstReg/type"; import { controlHeadView } from "../rainSttn"; import type { sttnHeadListType } from "../rainSttn/headList"; import { excelPbnstSttnParsing } from "./excel"; -import { pbnSttHeadListExport, pbnstSttNodeListExport, ruseDmdHeadListExport, ruseFcltHeadListExport, ruseFcltNodeListExport, ruseGuranteeHeadListExport, rusePplHeadListExport, ruseSplyHeadListExport } from "./headList"; +import { + pbnSttHeadListExport, + pbnstSttNodeListExport, + ruseDmdHeadListExport, + ruseFcltHeadListExport, + ruseFcltNodeListExport, + ruseGuranteeHeadListExport, + rusePplHeadListExport, + ruseSplyHeadListExport, +} from "./headList"; import type { WaterReuseFacility } from "./type"; +/** + * ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ ν˜„ν™© (μŠ€ν† μ–΄) + * ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ ν˜„ν™© + * λΉ—λ¬Όμ΄μš©μ‹œμ„€μ—μ„œ μ‚¬μš©ν•˜λŠ” api 및 νƒ€μž… 등을 κ΄€λ¦¬ν•œλ‹€. + * */ const pbnstSttHeadList = pbnSttHeadListExport; const pbnstSttNodeList = pbnstSttNodeListExport; @@ -21,15 +38,15 @@ export type pbnstSttnState = { pbnstSttHeadList: CommonTableProps[]; pbnstSttNodeList: CommonTableProps[]; pbnstDetail: customPbnst; - ruseFcltNodeList: TableUpperProps[] - ruseSplyHeadList: TableUpperProps[] - rusePplHeadList: TableUpperProps[] - ruseGuranteeHeadList: TableUpperProps[] - ruseDmdHeadList: TableUpperProps[] - ruseFcltHeadList: TableUpperProps[] + ruseFcltNodeList: TableUpperProps[]; + ruseSplyHeadList: TableUpperProps[]; + rusePplHeadList: TableUpperProps[]; + ruseGuranteeHeadList: TableUpperProps[]; + ruseDmdHeadList: TableUpperProps[]; + ruseFcltHeadList: TableUpperProps[]; pbnstSttnResCount: number; excelList: []; - fclts: string[] + fclts: string[]; isInit: boolean; }; }; @@ -97,49 +114,65 @@ export const hasuListFetch = async ( ) => { let url = ``; let filteredFclt = flcts; - const filterData = reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue + const filterData = + reurnValue.sigunValue !== "0" + ? reurnValue.sigunValue + : reurnValue.sidoValue; - - if(filterData !== '0') - filteredFclt= flcts.filter((fclt: string) => { - return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData - }) + if (filterData !== "0") + filteredFclt = flcts.filter((fclt: string) => { + return filterData.length == 2 + ? fclt.slice(0, 2) === filterData + : fclt.slice(0, 5) === filterData; + }); if (reurnValue.partValue === "A") { url += `${reurnValue.partValue}/${ // reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue - reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue - }/0/1/SW` - - if(filterData !== '0') - filteredFclt= flcts.filter((fclt: string) => { - return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData - }) + reurnValue.sigunValue !== "0" + ? reurnValue.sigunValue + : reurnValue.sidoValue + }/0/1/SW`; + + if (filterData !== "0") + filteredFclt = flcts.filter((fclt: string) => { + return filterData.length == 2 + ? fclt.slice(0, 2) === filterData + : fclt.slice(0, 5) === filterData; + }); } else if (reurnValue.partValue === "R") { - url += `${reurnValue.partValue}/${reurnValue.regionValue - ? reurnValue.regionValue - : reurnValue.unitWaterShedValue - ? reurnValue.unitWaterShedValue - : reurnValue.middleRegionValue - }/0/1/SW` - } else if (reurnValue.partValue === 'G') { - url += `${reurnValue.envPartValue}/${reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW` - if(filterData !== '0') - filteredFclt= flcts.filter((fclt: string) => { - return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData - }) - + url += `${reurnValue.partValue}/${ + reurnValue.regionValue + ? reurnValue.regionValue + : reurnValue.unitWaterShedValue + ? reurnValue.unitWaterShedValue + : reurnValue.middleRegionValue + }/0/1/SW`; + } else if (reurnValue.partValue === "G") { + url += `${reurnValue.envPartValue}/${reurnValue.sigunValue !== "0" ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW`; + if (filterData !== "0") + filteredFclt = flcts.filter((fclt: string) => { + return filterData.length == 2 + ? fclt.slice(0, 2) === filterData + : fclt.slice(0, 5) === filterData; + }); } else { - url += `A/0/0/1/SW` + url += `A/0/0/1/SW`; } if (searchNm && searchNm?.length > 0) { - url += "/" + searchNm + url += "/" + searchNm; } - const pbnList = await postFectch( `/prcsFclt/ruseInfo/1/${filteredFclt.length}/`+url, filteredFclt, fetchType.COMMON); + const pbnList = await postFectch( + `/prcsFclt/ruseInfo/1/${filteredFclt.length}/` + url, + filteredFclt, + fetchType.COMMON + ); - - const checkRuseFcltList = searchNm && searchNm?.length > 0?pbnList.data.map((item)=> item.bscFctCd ):filteredFclt + const checkRuseFcltList = + searchNm && searchNm?.length > 0 + ? pbnList.data.map((item) => item.bscFctCd) + : filteredFclt; const getRuseList = await postFectch( `/reuseFc/pubDetailList/${year}/${filterData}/${page}/${total}`, checkRuseFcltList, @@ -147,9 +180,8 @@ export const hasuListFetch = async ( ); const checkWrRegListRes = getRuseList.data; - - const data: WaterReuseFacility[] = checkWrRegListRes.map( - (item: FcPrfType) => { + const data: WaterReuseFacility[] = checkWrRegListRes + .map((item: FcPrfType) => { const findData = pbnList.data.find( (fclt: pubHasuType) => fclt.bscFctCd === item.pbnstRuseFcltId.substring(0, 11) @@ -182,57 +214,54 @@ export const hasuListFetch = async ( { total: 0, inUsage: 0, outUsage: 0 } ); return { - rvbsn: findData?.rvbsn || '-', - lgbsn: findData?.lgbsn || '-', - mdmbsn: findData?.mdmbsn || '-', - rgnNm: findData?.rgnNm || '-', - sido: findData?.sido || '-', - gugun: findData?.gugun || '-', - bscFctNm: findData?.bscFctNm || '-', - efflWqltStndrdNm: findData?.efflWqltStndrdNm || '-', + rvbsn: findData?.rvbsn || "-", + lgbsn: findData?.lgbsn || "-", + mdmbsn: findData?.mdmbsn || "-", + rgnNm: findData?.rgnNm || "-", + sido: findData?.sido || "-", + gugun: findData?.gugun || "-", + bscFctNm: findData?.bscFctNm || "-", + efflWqltStndrdNm: findData?.efflWqltStndrdNm || "-", fctCpc: Number(findData?.fctCpc) || 0, tel: findData?.tel ?? "-", - ruseUtztnFcltNm: item?.ruseUtztnFcltNm || '-', - fcltCpct: item?.fcltCpct || '-', - splyExtraCpct: item?.splyExtraCpct || '-', - ruseCpct: item?.ruseCpct || '-', - pbnstRuseFcltId: item.pbnstRuseFcltId || '-', + ruseUtztnFcltNm: item?.ruseUtztnFcltNm || "-", + fcltCpct: item?.fcltCpct || "-", + splyExtraCpct: item?.splyExtraCpct || "-", + ruseCpct: item?.ruseCpct || "-", + pbnstRuseFcltId: item.pbnstRuseFcltId || "-", usageTotal: usage?.total, inUsage: usage?.inUsage, outUsage: usage?.outUsage, - operMthd: item.operList[0]?.operMthd || '-', + operMthd: item.operList[0]?.operMthd || "-", rprtvBzenty: item.operList[0]?.rprtvBzenty, bgngDt: moment(item.operList[0]?.bgngDt).format("YYYY-MM-DD") ?? "", endDt: moment(item.operList[0]?.endDt).format("YYYY-MM-DD") ?? "", - searchNm: findData?.bscFctNm || '-', - searchPk: findData?.bscFctCd || '-', - prfList: item?.prfList ?? [] + searchNm: findData?.bscFctNm || "-", + searchPk: findData?.bscFctCd || "-", + prfList: item?.prfList ?? [], }; } + }) + .filter(Boolean); - } - ).filter(Boolean); - - - - - return {data:data, count:getRuseList.count}; + return { data: data, count: getRuseList.count }; }; export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( set: any ) => { return { + //λ“±λ‘λœ ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€. getFlcts: async () => { - const fclts = await getFetch(fetchType.WR, '/reuseFc/pubFc') - + const fclts = await getFetch(fetchType.WR, "/reuseFc/pubFc"); return set((state: pbnstSttnState) => ({ pbnstSttn: { ...state.pbnstSttn, - fclts: fclts + fclts: fclts, }, })); }, + //ν…Œμ΄λΈ” ν—€λ“œλ₯Ό μ‘°μ •ν•œλ‹€. pbnstChSttnHead: async ( headList: z.infer ): Promise => { @@ -246,6 +275,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( }, })); }, + //ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ„ μ‘°νšŒν•˜μ—¬ ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ ν™•μΈν•œλ‹€. pbnstSttnSearch: async ( isExcel: boolean, page: string, @@ -256,14 +286,13 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( fclts: string[] ) => { try { - const pbnstSttnRes = await hasuListFetch( page, total, reurnValue, searchNm, year, - fclts, + fclts ); // if (Number(total) > 9000) { @@ -279,14 +308,13 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( }; }); } else { - set((state: pbnstSttnState) => { return { ...state, pbnstSttn: { ...state.pbnstSttn, pbnstSttnRes: pbnstSttnRes.data, - pbnstSttnResCount: pbnstSttnRes.count + pbnstSttnResCount: pbnstSttnRes.count, // isInit: false, }, }; @@ -296,6 +324,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( console.log("error", erTxt); } }, + //ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ„ μ‘°νšŒν•˜μ—¬ ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€. pbnSttnInit: async ( page: string, total: string, @@ -313,7 +342,6 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( fclts ); - set((state: pbnstSttnState) => { return { ...state, @@ -322,7 +350,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( pbnstSttnRes: pbnstSttnRes.data, pbnstSttnResCount: pbnstSttnRes.count, isInit: false, - pbnstDetail: {} as customPbnst + pbnstDetail: {} as customPbnst, }, }; }); @@ -330,22 +358,29 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( console.log("error", erTxt); } }, + // νŒμ—…μ— μžˆλŠ” 데이터λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€. resetPbnstDetail: async () => { set((state: pbnstSttnState) => { return { ...state, pbnstSttn: { ...state.pbnstSttn, - pbnstDetail: {} as customPbnst + pbnstDetail: {} as customPbnst, }, }; - }) + }); }, + //ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ„ μ‘°νšŒν•˜μ—¬ ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€μ„ μ‘°νšŒν•œλ‹€. getPbnStnDetail: async (pbnstRuseFcltId: string) => { try { - let pbnstDetail = await getFetch("wr", `/reuseFc/pubFc/${pbnstRuseFcltId}`); + let pbnstDetail = await getFetch( + "wr", + `/reuseFc/pubFc/${pbnstRuseFcltId}` + ); if (pbnstDetail.length >= 0) { - pbnstDetail = pbnstDetail.find((item: customPbnst) => item.pbnstRuseFcltId === pbnstRuseFcltId) + pbnstDetail = pbnstDetail.find( + (item: customPbnst) => item.pbnstRuseFcltId === pbnstRuseFcltId + ); } set((state: pbnstSttnState) => { return { @@ -360,6 +395,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( console.log(errorHasu); } }, + //ν•˜μˆ˜μž¬μ΄μš©μ‹œμ„€ 싀적 ν˜„ν™© μ—μ„œ μ‚¬μš©ν•˜λŠ” 쑰회 pbnNmSearch: async ( page: string, total: string, @@ -369,7 +405,6 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( flcts: string[] ) => { try { - const pbnstSttnRes = await hasuListFetch( page, total, diff --git a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx index 1ad310465..dcb0f0b65 100644 --- a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx +++ b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx @@ -26,6 +26,13 @@ import { Button, Checkbox, Input, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; import { type UseFormReturn } from "react-hook-form"; import toast from "react-hot-toast"; +/** + * ConCostForm + * 호좜: (with-layout)/matMng/coMat/coMatRvw μ—μ„œ 호좜 + * + * 곡사비λ₯Ό μ‚°μ •ν•˜κ³  + * + * */ export default function ConCostForm({ form, diff --git a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx index 91a2c5379..3e9f444f6 100644 --- a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx +++ b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx @@ -13,19 +13,18 @@ import { Input } from "@common/components"; import { useEffect, useState } from "react"; export default function BdstReg({ form, type }: { form: any; type?: string }) { - const { code, returnCodeText } = useWrStore((state) => { + const { code, auth, returnCodeText } = useWrStore((state) => { return state; }); - const { userSiSggCd } = code; + const { laeSeCd } = auth; + const [useCityCd, setUserCityCd] = useState([]); const [useSggCd, setUserSggCd] = useState([]); useEffect(() => { - if (userSiSggCd.length === 2 && code.cityCd.length > 0) { - const city = code.cityCd.filter((item) => item.val === userSiSggCd); - const sgg = code.sggCd.filter( - (item) => item.val.slice(0, 2) === userSiSggCd - ); + if (laeSeCd.length === 2 && code.cityCd.length > 0) { + const city = code.cityCd.filter((item) => item.val === laeSeCd); + const sgg = code.sggCd.filter((item) => item.val.slice(0, 2) === laeSeCd); sgg.unshift({ text: "전체", val: "0" }); setUserCityCd(city); // Fix: Ensure city is of type SelectDataType[] setUserSggCd(sgg); @@ -40,20 +39,20 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { }); } } else if ( - userSiSggCd.length === 5 && + laeSeCd.length === 5 && code.cityCd.length > 0 && code.sggCd.length > 0 ) { const city = code.cityCd.filter( - (item) => item.val === userSiSggCd.slice(0, 2) + (item) => item.val === laeSeCd.slice(0, 2) ); - const sgg = code.sggCd.filter((item) => item.val === userSiSggCd); + const sgg = code.sggCd.filter((item) => item.val === laeSeCd); setUserSggCd(sgg); setUserCityCd(city); form.setValue("ctpvCd", Number(city[0]?.val)); form.setValue("sggCd", Number(sgg[0]?.val)); } - }, [form, userSiSggCd, code.cityCd, code.sggCd]); + }, [form, laeSeCd, code.cityCd, code.sggCd]); useEffect(() => { const subscription = form.form?.watch((value: any) => { @@ -63,10 +62,6 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { return () => subscription?.unsubscribe(); }, [form.form]); - // useEffect(() => { - // console.log("form ", form.watch()); - // }, [form.formState]); - useEffect(() => { const bdstInfoSn = form.getValues("bdstInfoSn"); if (bdstInfoSn && bdstInfoSn > 0) form.setValue("daddr", bdstInfoSn); @@ -238,7 +233,9 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { className={""} selectClass={selectClass} label={""} - selectArray={ type ==='RNB'?code.bdstUsgCd:code.rswtBdstType} + selectArray={ + type === "RNB" ? code.bdstUsgCd : code.rswtBdstType + } onSelectValue={(val) => { field.onChange(val); }} diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx index 33dd417af..e669a85f7 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx @@ -43,6 +43,21 @@ import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; //import { useTranslation } from "react-i18next"; + + +/** + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€λ“±λ‘ + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ν˜„ν™© + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * - ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ— ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ μ°¨μˆ˜λ³„ 정보λ₯Ό λ“±λ‘ν•œλ‹€. + * - form으둜 μ‹œμ„€μ •λ³΄ 및 μ°¨μˆ˜λ³„ μ •λ³΄μ˜ μ»΄ν¬λ„ŒνŠΈ 데이터λ₯Ό κ΄€λ¦¬ν•œλ‹€ + * indexMng: μ‹œμ„€μ •λ³΄ + * indexBiz: μ°¨μˆ˜λ³„ 정보 + * 둜 ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€μ— λ“±λ‘λœ μ‹œμ„€ 및 μ°¨μˆ˜λ³„ 정보λ₯Ό κ΄€λ¦¬ν•œλ‹€. + * + * MngRegFormDetail μ‚¬μ—…ν˜„ν™©, 사업비, μž¬μ²˜λ¦¬μ‹œμ„€, λ†μΆ•μˆ˜κ΄€λ¦¬, νμˆ˜μ‹œμ„€ 정보 에 λŒ€ν•œ 데이터λ₯Ό κΈ°μž…ν•˜λ„λ‘ ν•œλ‹€ + * */ export function PbnstBuseForm({ indexMng = 0, indexBiz = 0, diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx index 5b4d93d94..334f9567d 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx @@ -35,6 +35,18 @@ export type FilesType = { file: File; }; + +/** + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€λ“±λ‘ + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ν˜„ν™© + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * - ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ— ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ μ‹œμ„€ 정보λ₯Ό λ“±λ‘ν•œλ‹€. + * - form으둜 μ‹œμ„€μ •λ³΄ 및 μ°¨μˆ˜λ³„ μ •λ³΄μ˜ μ»΄ν¬λ„ŒνŠΈ 데이터λ₯Ό κ΄€λ¦¬ν•œλ‹€ + * indexMng: μ‹œμ„€μ •λ³΄ + * indexBiz: μ°¨μˆ˜λ³„ 정보 + * 둜 ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€μ— λ“±λ‘λœ μ‹œμ„€ 및 μ°¨μˆ˜λ³„ 정보λ₯Ό κ΄€λ¦¬ν•œλ‹€. + * */ export function PbnstMngForm({ form, formType, diff --git a/apps/wr/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal.tsx b/apps/wr/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal.tsx index a692553af..6947224e1 100644 --- a/apps/wr/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal.tsx +++ b/apps/wr/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal.tsx @@ -43,11 +43,11 @@ export function BdstReg({ setIsModal, isModal, }: BdstRegProps) { - const { code, bdst, findBdst } = useWrStore((state) => { + const { code, bdst, auth, findBdst } = useWrStore((state) => { return state; }); - const { userSiSggCd } = code; + const { laeSeCd } = auth; const [bdstTable, setBdstTable] = useState(); const [bdstForm, setBdstForm] = useState( @@ -88,29 +88,32 @@ export function BdstReg({ }, [bdst]); useEffect(() => { - if (userSiSggCd.length === 2 && code.cityCd.length > 0) { - const city = code.cityCd.filter((item) => item.val === userSiSggCd); - const sgg = code.sggCd.filter( - (item) => item.val.slice(0, 2) === userSiSggCd - ); + if (laeSeCd.length === 2 && code.cityCd.length > 0) { + const city = code.cityCd.filter((item) => item.val === laeSeCd); + const sgg = code.sggCd.filter((item) => item.val.slice(0, 2) === laeSeCd); sgg.unshift({ text: "전체", val: "0" }); setUserCityCd(city); // Fix: Ensure city is of type SelectDataType[] setObjSearch({ ...objSearch, city: String(city[0]?.val) }); setUserSggCd(sgg); } else if ( - userSiSggCd.length === 5 && + laeSeCd.length === 5 && code.cityCd.length > 0 && code.sggCd.length > 0 ) { const city = code.cityCd.filter( - (item) => item.val === userSiSggCd.slice(0, 2) + (item) => item.val === laeSeCd.slice(0, 2) ); setUserCityCd(city); - const sgg = code.sggCd.filter((item) => item.val === userSiSggCd); + const sgg = code.sggCd.filter((item) => item.val === laeSeCd); setUserSggCd(sgg); setObjSearch({ city: String(city[0]?.val), sgg: String(sgg[0]?.val) }); + } else if ( + laeSeCd === "0" && + code.cityCd.length > 0 && + code.sggCd.length > 0 + ) { } - }, [userSiSggCd, code.cityCd, code.sggCd]); + }, [laeSeCd, code.cityCd, code.sggCd]); const tableClick: (val: number | undefined, headId: string) => void = ( val @@ -197,35 +200,35 @@ export function BdstReg({
-
- {moType === "RNB" ? ( - - ) : moType === "RST" ? ( - { - if (setIsModal && open) { - setIsModal(open); - } - }} - > - ) : ( - { - if (setIsModal && open) { - setIsModal(open); - } - }} - > - )} -
+
+ {moType === "RNB" ? ( + + ) : moType === "RST" ? ( + { + if (setIsModal && open) { + setIsModal(open); + } + }} + > + ) : ( + { + if (setIsModal && open) { + setIsModal(open); + } + }} + > + )} +
diff --git a/apps/wr/components/ui/table/pbnstReg/ruseMngTableForm/ruseMngTableForm.tsx b/apps/wr/components/ui/table/pbnstReg/ruseMngTableForm/ruseMngTableForm.tsx index 0f919a603..fb243010e 100644 --- a/apps/wr/components/ui/table/pbnstReg/ruseMngTableForm/ruseMngTableForm.tsx +++ b/apps/wr/components/ui/table/pbnstReg/ruseMngTableForm/ruseMngTableForm.tsx @@ -39,6 +39,21 @@ type RuseMngTableProps = { readonly?: boolean; }; + +/** + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€λ“±λ‘ + * μž¬μ΄μš©μ‹œμ„€ 등둝 - ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ν˜„ν™© + * - layout.tsx에 μ˜ν•΄ 곡톡 λ ˆμ΄μ•„μ›ƒμ΄ 적용됨 + * - with-layout 적용 + * - ν•˜μˆ˜μ²˜λ¦¬μ‹œμ„€μ— ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€ μ‹œμ„€ 정보λ₯Ό λ“±λ‘ν•œλ‹€. + * - form으둜 μ‹œμ„€μ •λ³΄ 및 μ°¨μˆ˜λ³„ μ •λ³΄μ˜ μ»΄ν¬λ„ŒνŠΈ 데이터λ₯Ό κ΄€λ¦¬ν•œλ‹€ + * indexMng: μ‹œμ„€μ •λ³΄ + * indexBiz: μ°¨μˆ˜λ³„ 정보 + * 둜 ν•˜μˆ˜μž¬μ΄μš© μ‹œμ„€μ— λ“±λ‘λœ μ‹œμ„€ 및 μ°¨μˆ˜λ³„ 정보λ₯Ό κ΄€λ¦¬ν•œλ‹€. + * + * μ‹œμ„€μ •λ³΄λ° μ°¨μˆ˜λ³„μ •λ³΄μ˜ ν…Œμ΄λΈ” 데이터λ₯Ό λ§Œλ“€κ³  μƒμ„±ν•œλ‹€. + * */ + const RuseMngTableForm = React.forwardRef( ( {