|
|
|
@@ -75,7 +75,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
const { rainSttn, rainSttnSearch, rainSttnInit } = useWrStore(
|
|
|
|
|
(state) => state
|
|
|
|
|
);
|
|
|
|
|
const { rainSttnRes } = rainSttn;
|
|
|
|
|
let { rainSttnRes } = rainSttn;
|
|
|
|
|
const [rainTable, setRainTable] = useState<customRainBdst[]>();
|
|
|
|
|
const [rainBdstChgProps, setRainBdstChgProps] = useState<{
|
|
|
|
|
isOpen: boolean;
|
|
|
|
@@ -88,7 +88,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
const { rswtSttn, rswtSttnSearch, rswtSttnInit } = useWrStore(
|
|
|
|
|
(state) => state
|
|
|
|
|
);
|
|
|
|
|
const { rswtSttnRes } = rswtSttn;
|
|
|
|
|
let { rswtSttnRes } = rswtSttn;
|
|
|
|
|
const [rswtrTable, setRswtrTable] = useState<customRswtBdst[]>();
|
|
|
|
|
const [rswtrDetailModal, setRswtrDetailModal] = useState<{ isOpen: boolean, data: customRswtBdst | undefined }>({ data: undefined, isOpen: false });
|
|
|
|
|
const [rswtrBdstChgProps, setRswtrBdstChgProps] = useState<{
|
|
|
|
@@ -99,7 +99,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
|
|
|
|
|
// 온배수시설 변수
|
|
|
|
|
const { htdflSttn, htdflSttnSearch, initHtdfl } = useWrStore((state) => state);
|
|
|
|
|
const { htdflSttnRes } = htdflSttn;
|
|
|
|
|
let { htdflSttnRes } = htdflSttn;
|
|
|
|
|
const [htdflTable, setHtdflTable] = useState<customHtdflBdst[]>();
|
|
|
|
|
const [htdflDetailModal, setHtdflDetailModal] = useState<{ isOpen: boolean, data: customHtdflBdst | undefined }>({ data: undefined, isOpen: false });
|
|
|
|
|
const [bdstChgProps, setBdstChgProps] = useState<{ isOpen: boolean, chBuilding: chgBuilding[] }>({ isOpen: false, chBuilding: [] });
|
|
|
|
@@ -113,7 +113,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
} = useWrStore((state) => state);
|
|
|
|
|
let { pubFacHeadList, pbnstHasuRes, pbnstRes } = pbnst;
|
|
|
|
|
const [isRuseReg, setIsRuseReg] = useState<{
|
|
|
|
|
data:any | undefined;
|
|
|
|
|
data: any | undefined;
|
|
|
|
|
}>({ data: undefined });
|
|
|
|
|
const [hasuTable, setHasuTable] = useState<pubHasuType[]>();
|
|
|
|
|
const [hasuPage, setHasuPage] = useState<number>(1);
|
|
|
|
@@ -131,31 +131,17 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
setActiveTab(featureCd)
|
|
|
|
|
fetchpbnstDetail(featureCd); // 상세정보
|
|
|
|
|
}
|
|
|
|
|
else if (layerId == '빗물이용시설') {
|
|
|
|
|
featureCd = selectedVal?.bdst_nm;
|
|
|
|
|
setFcltPk(featureCd)
|
|
|
|
|
rainSttnSearch(1, '20', '', featureCd, code.cityCd, code.sggCd);
|
|
|
|
|
setRainDetailModal({ isOpen: true, data: rainSttn.rainSttnRes[0] });
|
|
|
|
|
}
|
|
|
|
|
else if (layerId == '중수도시설') {
|
|
|
|
|
featureCd = selectedVal?.bdst_nm;
|
|
|
|
|
setFcltPk(featureCd)
|
|
|
|
|
rswtSttnSearch(true,1, '20', '', featureCd, code.cityCd, code.sggCd);
|
|
|
|
|
setRswtrDetailModal({ isOpen: true, data: rswtSttnRes[0] });
|
|
|
|
|
}
|
|
|
|
|
else if (layerId == '온배수시설') {
|
|
|
|
|
featureCd = selectedVal?.bdst_nm;
|
|
|
|
|
setFcltPk(featureCd)
|
|
|
|
|
htdflSttnSearch(true,1, '20', '', featureCd, code.cityCd, code.sggCd);
|
|
|
|
|
setHtdflDetailModal({ isOpen: true, data: htdflSttnRes[0] });
|
|
|
|
|
}
|
|
|
|
|
else if (layerId == '하수처리시설') {
|
|
|
|
|
featureCd = selectedVal?.swtrmt_fclt_nm;
|
|
|
|
|
setFcltPk(featureCd); // 현재 호출된 featureCd 저장
|
|
|
|
|
fetchHasuDetail(featureCd,selectedVal?.swtrmt_fclt_cd);
|
|
|
|
|
};
|
|
|
|
|
fetchHasuDetail(featureCd, selectedVal?.swtrmt_fclt_cd);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
featureCd = selectedVal?.bdst_nm;
|
|
|
|
|
setFcltPk(featureCd)
|
|
|
|
|
detainSttn(featureCd,layerId)
|
|
|
|
|
}
|
|
|
|
|
setViewMode("detail")
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} else if (layerId === null && seletectedLayerNm) { setViewMode("list") }
|
|
|
|
|
}, [featureData]);
|
|
|
|
@@ -170,10 +156,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
pbnstSttn.pbnstSttnRes[index]
|
|
|
|
|
) {
|
|
|
|
|
setFcltPk(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk);
|
|
|
|
|
// fetchpbnstDetail(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk)
|
|
|
|
|
onFeatureSelect(pbnstSttn.pbnstSttnRes[index]);
|
|
|
|
|
// setActiveTab(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk)
|
|
|
|
|
// setViewMode("detail")
|
|
|
|
|
onClose()
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
@@ -281,6 +264,24 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
setRainBdstChgProps({ isOpen: true, chBuilding: rainTable[index].chgBuilding });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const detainSttn = async (featureCd: string, layerNm: string) => {
|
|
|
|
|
if (layerNm == '빗물이용시설') {
|
|
|
|
|
const res = await getFetch(fetchType.WR, `/reuseFc/rainyInfoList/1/20/0/${featureCd}`)
|
|
|
|
|
rainSttnRes = res
|
|
|
|
|
setRainDetailModal({ isOpen: true, data: rainSttnRes[0] });
|
|
|
|
|
}
|
|
|
|
|
else if(layerNm == '중수도시설'){
|
|
|
|
|
const res = await getFetch(fetchType.WR,`/reuseFc/waterreuseFc/1/20/0/${featureCd}`)
|
|
|
|
|
rswtSttnRes = res
|
|
|
|
|
console.log('중수도', res, featureCd)
|
|
|
|
|
setRswtrDetailModal({isOpen:true,data:rswtSttnRes[0]})
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
const res = await getFetch(fetchType.WR, `/drain/facilityList/1/20/0/${featureCd}`)
|
|
|
|
|
htdflSttnRes = res
|
|
|
|
|
setHtdflDetailModal({ isOpen: true, data: htdflSttnRes[0] });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (!rainSttn.isInit) {
|
|
|
|
@@ -340,8 +341,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
}
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (!rswtSttn.isInit) {
|
|
|
|
|
rswtSttnInit(false,1, "20", "0", '', code.cityCd, code.sggCd);
|
|
|
|
|
console.log('rswtSttnInit', rswtSttnRes);
|
|
|
|
|
rswtSttnInit(false, 1, "20", "0", '', code.cityCd, code.sggCd);
|
|
|
|
|
}
|
|
|
|
|
}, [rswtSttn.isInit, rswtSttnInit]);
|
|
|
|
|
|
|
|
|
@@ -363,7 +363,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
(item: customRswtBdst) =>
|
|
|
|
|
item.reuseBuilding[0]?.rswtrObj !== undefined
|
|
|
|
|
);
|
|
|
|
|
setRswtrTable(chData);
|
|
|
|
|
setRswtrTable(chData);
|
|
|
|
|
}, [code, rswtSttnRes]);
|
|
|
|
|
// 엑셀 관련
|
|
|
|
|
const rswtSttnExcelDownload = useCallback(() => {
|
|
|
|
@@ -379,7 +379,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
}, [rswtSttn.excelList])
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
rswtSttnSearch(false,rswtrPage, "20", '', '', code.cityCd, code.sggCd);
|
|
|
|
|
rswtSttnSearch(false, rswtrPage, "20", '', '', code.cityCd, code.sggCd);
|
|
|
|
|
}, [rswtrPage]);
|
|
|
|
|
///////////////////////////////////////////// 중수도 시설 //////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
@@ -387,8 +387,6 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
// 온배수시설 cellClick 이벤트 (상세정보)
|
|
|
|
|
const htdflCellClick = (index: number | undefined, headId: string) => {
|
|
|
|
|
if (index !== undefined && htdflTable !== undefined) {
|
|
|
|
|
// setHtdflDetailModal({ isOpen: true, data: htdflTable[index] });
|
|
|
|
|
// setViewMode('detail')
|
|
|
|
|
onFeatureSelect(htdflTable[index]);
|
|
|
|
|
onClose();
|
|
|
|
|
}
|
|
|
|
@@ -413,7 +411,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
}, [code, htdflSttnRes, htdflSttn.htdflSttHeadList]);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
htdflSttnSearch(true,htdflPage, "20", '', '', code.cityCd, code.sggCd);
|
|
|
|
|
htdflSttnSearch(true, htdflPage, "20", '', '', code.cityCd, code.sggCd);
|
|
|
|
|
}, [htdflPage]);
|
|
|
|
|
///////////////////////////////////////////// 온배수 시설 //////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
@@ -431,19 +429,19 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
pubHasuInit(String(hasuPage), "0");
|
|
|
|
|
}, [hasuPage]);
|
|
|
|
|
const fetchHasuDetail = async (featureCd: string,data:string) => {
|
|
|
|
|
const fetchHasuDetail = async (featureCd: string, data: string) => {
|
|
|
|
|
try {
|
|
|
|
|
const rainRes = await postFectch(`/prcsFclt/ruseInfo/1/10/A/0/0/1/SW/${featureCd}`,[data],fetchType.COMMON);
|
|
|
|
|
const hasuList = rainRes.data.map((item: any) => {
|
|
|
|
|
return {
|
|
|
|
|
...item,
|
|
|
|
|
fctCpc: Number(item.fctCpc) || 0,
|
|
|
|
|
ruse: item.ruse === false ? "N" : "Y",
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
pbnstHasuRes = hasuList
|
|
|
|
|
if(pbnstHasuRes.length >0)setIsRuseReg({ data:[pbnstHasuRes[0]] });
|
|
|
|
|
|
|
|
|
|
const rainRes = await postFectch(`/prcsFclt/ruseInfo/1/10/A/0/0/1/SW/${featureCd}`, [data], fetchType.COMMON);
|
|
|
|
|
const hasuList = rainRes.data.map((item: any) => {
|
|
|
|
|
return {
|
|
|
|
|
...item,
|
|
|
|
|
fctCpc: Number(item.fctCpc) || 0,
|
|
|
|
|
ruse: item.ruse === false ? "N" : "Y",
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
pbnstHasuRes = hasuList
|
|
|
|
|
if (pbnstHasuRes.length > 0) setIsRuseReg({ data: [pbnstHasuRes[0]] });
|
|
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error("Error fetching data:", error);
|
|
|
|
|
}
|
|
|
|
@@ -454,7 +452,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
onClose();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
///////////////////////////////////////////// 하수처리 시설 //////////////////////////////////////////////////
|
|
|
|
|
///////////////////////////////////////////// 하수처리 시설 //////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// 체크된 레이어에 따른 조건부 컴포넌트 렌더링 함수
|
|
|
|
|
const renderConditionalContent = () => {
|
|
|
|
@@ -502,7 +500,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
|
|
|
|
|
{/* 높이 조정 */}
|
|
|
|
|
<UiTable
|
|
|
|
|
tableData={isRuseReg?.data || []}
|
|
|
|
|
headlist={pubFacHeadList.slice(0,4)}
|
|
|
|
|
headlist={pubFacHeadList.slice(0, 4)}
|
|
|
|
|
pageSize={1}
|
|
|
|
|
total={null}
|
|
|
|
|
headName={"위치정보"}
|
|
|
|
|