From 49047576af757706cfc02c021a756849ab71c20f Mon Sep 17 00:00:00 2001 From: JIeunhuh Date: Wed, 9 Jul 2025 18:12:31 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=AC=EC=9D=B4=EC=9A=A9=EC=8B=9C=EC=84=A4?= =?UTF-8?q?=20=ED=8C=9D=EC=97=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/map/newWindowPopup.tsx | 69 ++++++++++++++++-------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/apps/wr/app/map/newWindowPopup.tsx b/apps/wr/app/map/newWindowPopup.tsx index e98c84aea..90b9a140c 100644 --- a/apps/wr/app/map/newWindowPopup.tsx +++ b/apps/wr/app/map/newWindowPopup.tsx @@ -68,7 +68,9 @@ const NewWindowPopup: React.FC = ({ pbnstSttn, pbnstSttnSearch, pbnSttnInit, + getFlcts } = useWrStore((state) => state); + const { fclts, pbnstSttnResCount} = pbnstSttn const [bdstTable, setBdstTable] = useState() // 빗물재이용시설 변수 @@ -104,12 +106,12 @@ const NewWindowPopup: React.FC = ({ 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) + const [htdflResetPage, isHtdflResetPage] = useState(false); //하수처리시설 변수 const { pbnst, pubHasuInit, - pubHasuSearch, } = useWrStore((state) => state); let { pubFacHeadList, pbnstHasuRes, pbnstRes } = pbnst; const [isRuseReg, setIsRuseReg] = useState<{ @@ -119,6 +121,21 @@ const NewWindowPopup: React.FC = ({ const [hasuPage, setHasuPage] = useState(1); if (!featureData) return; ///////////////////////////////////////////// 피쳐데이터 선택 시 각 시설별 데이터 처리 /////////////////////////////////////////////// + const getSelectedLayers = () => { + let result = null; + const layers = gisMap ? gisMap.getLayers().getArray().filter((l: any) => l.getVisible()) : []; // gisMap이 null인지 확인 후 레이어 가져오기 + let featureLayer: { get: (key: string) => any } = { get: (key: string) => null }; // 피처가 속한 레이어를 찾기 위한 변수 + layers.forEach((layer: any) => { + const source = layer.getSource(); + if (source && source.hasFeature && featureData + && typeof featureData.getId === 'function' && source.hasFeature(featureData)) { + featureLayer = layer; // 피처가 속한 레이어 찾기) + } + }); + result = featureLayer.get('lyrNm'); + + return result; + }; useEffect(() => { const layerId = getSelectedLayers(); if (featureData && typeof featureData.getProperties === "function") { @@ -160,38 +177,26 @@ const NewWindowPopup: React.FC = ({ onClose() } }; - const getSelectedLayers = () => { - let result = null; - const layers = gisMap ? gisMap.getLayers().getArray().filter((l: any) => l.getVisible()) : []; // gisMap이 null인지 확인 후 레이어 가져오기 - let featureLayer: { get: (key: string) => any } = { get: (key: string) => null }; // 피처가 속한 레이어를 찾기 위한 변수 - layers.forEach((layer: any) => { - const source = layer.getSource(); - if (source && source.hasFeature && featureData - && typeof featureData.getId === 'function' && source.hasFeature(featureData)) { - featureLayer = layer; // 피처가 속한 레이어 찾기) - } - }); - result = featureLayer.get('lyrNm'); - - return result; - }; + // 재이용 현황 초기값 useEffect(() => { if (!pbnstSttn.isInit) { - pbnSttnInit("1", "13", { - partValue: "A", - sidoValue: '0', - sigunValue: "0", - regionValue: "", - unitWaterShedValue: "", - middleRegionValue: "", - envPartValue: "", - sidoText: "", - sigunText: "" - }, String(new Date().getFullYear())); + getFlcts() } }, [seletectedLayerNm, pbnstSttn.isInit]); - + useEffect(()=>{ + pbnSttnInit("1", "15", { + partValue: "A", + sidoValue: '0', + sigunValue: "0", + regionValue: "", + unitWaterShedValue: "", + middleRegionValue: "", + envPartValue: "", + sidoText: "", + sigunText: "" + }, String(new Date().getFullYear()), pbnstSttn.fclts); + },[fclts]) useEffect(() => { setBdstTable(pbnstSttn.pbnstSttnRes); }, [seletectedLayerNm, pbnstSttn.pbnstSttnRes]); @@ -233,7 +238,7 @@ const NewWindowPopup: React.FC = ({ sigunText: "", }, "", - String(new Date().getFullYear()) + String(new Date().getFullYear()),fclts ); }, []); const excelClick = useCallback(() => { @@ -285,7 +290,7 @@ const NewWindowPopup: React.FC = ({ useEffect(() => { if (!rainSttn.isInit) { - rainSttnInit(1, "20", "0", '', code.cityCd, code.sggCd); + rainSttnInit(false,1, "20", "0", '', code.cityCd, code.sggCd); } }, [rainSttn.isInit, rainSttnInit]); @@ -321,7 +326,7 @@ const NewWindowPopup: React.FC = ({ }, [code, rainSttnRes, rainSttn.rainSttHeadList]); useEffect(() => { - rainSttnSearch(rainPage, "20", '', '', code.cityCd, code.sggCd); + rainSttnSearch(false,rainPage, "20", '', '', code.cityCd, code.sggCd); }, [rainPage]); ///////////////////////////////////////////// 빗물 재이용 ////////////////////////////////////////////////// @@ -393,7 +398,7 @@ const NewWindowPopup: React.FC = ({ }; useEffect(() => { if (!htdflSttn.isInit) { - initHtdfl(1, "20", "0", '', code.cityCd, code.sggCd); + initHtdfl(false,1, "20", "0", '', code.cityCd, code.sggCd); } }, [htdflSttn.isInit, initHtdfl]);