From 4e9770e197becabced38597e876d7bac76a70c5e Mon Sep 17 00:00:00 2001 From: JIeunhuh Date: Mon, 7 Jul 2025 15:53:57 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A8=EB=B0=B0=EC=88=98=EC=8B=9C=EC=84=A4?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=EC=A0=95=EB=B3=B4=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/map/newWindowPopup.tsx | 33 ++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/wr/app/map/newWindowPopup.tsx b/apps/wr/app/map/newWindowPopup.tsx index 747f53971..d2b44bbb3 100644 --- a/apps/wr/app/map/newWindowPopup.tsx +++ b/apps/wr/app/map/newWindowPopup.tsx @@ -105,6 +105,7 @@ const NewWindowPopup: React.FC = ({ const [htdflTable, setHtdflTable] = useState(); const [htdflDetailModal, setHtdflDetailModal] = useState<{ isOpen: boolean, data: customHtdflBdst | undefined }>({ data: undefined, isOpen: false }); const [bdstChgProps, setBdstChgProps] = useState<{ isOpen: boolean, chBuilding: chgBuilding[] }>({ isOpen: false, chBuilding: [] }); + const [htdflPage,setHtdflPage] = useState(1) if(!featureData) return ; ///////////////////////////////////////////// 피쳐데이터 선택 시 각 시설별 데이터 처리 /////////////////////////////////////////////// useEffect(() => { @@ -132,6 +133,12 @@ const NewWindowPopup: React.FC = ({ rswtSttnSearch(1, '20', '', featureCd, code.cityCd, code.sggCd); setRswtrDetailModal({ isOpen: true, data: rswtSttnRes[0] }); } + else if(layerId == '온배수시설'){ + featureCd = selectedVal?.bdst_nm; + setFcltPk(featureCd) + htdflSttnSearch(1, '20', '', featureCd, code.cityCd, code.sggCd); + setHtdflDetailModal({ isOpen: true, data: htdflSttnRes[0] }); + } setViewMode("detail") } } else if (seletectedLayerNm) { setViewMode("list") } @@ -363,9 +370,31 @@ const NewWindowPopup: React.FC = ({ htdflTable !== undefined ) { setHtdflDetailModal({ isOpen: true, data: htdflTable[index] }); + setViewMode('detail') } }; - + useEffect(() => { + if (!htdflSttn.isInit) { + initHtdfl(1, "20", "0", '', code.cityCd, code.sggCd); + } + }, [htdflSttn.isInit, initHtdfl]); + + useEffect(() => { + const data = tableData(htdflSttnRes, { code }); + const chData = data + .map((item: any) => ({ + ...item, + ...item.reuseBuilding[0], + ...item.reuseBuilding[0].htdflObj, + chBuildingYn: item.chgBuilding[0]?.bdstChgNm !== null ? "Y" : "N", + })) + .filter((item: any) => item.htdflObj !== undefined); + setHtdflTable(chData); + }, [code, htdflSttnRes, htdflSttn.htdflSttHeadList]); + + useEffect(() => { + htdflSttnSearch(htdflPage, "20", '', '', code.cityCd, code.sggCd); + }, [htdflPage]); ///////////////////////////////////////////// 온배수 시설 ////////////////////////////////////////////////// // 체크된 레이어에 따른 조건부 컴포넌트 렌더링 함수 @@ -555,7 +584,7 @@ const NewWindowPopup: React.FC = ({ cellClick={(index: number | undefined, headId: string) => { htdflCellClick(index ?? undefined, headId); }} - onPageChange={() => { }} + onPageChange={setHtdflPage} /> );