89 lines
3.2 KiB
TypeScript
89 lines
3.2 KiB
TypeScript
import { useWrStore } from "@/app/store";
|
|
import type { pubHasuType } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
|
|
import { tableData } from "@/components/lib/func/commom";
|
|
import { Title, UiTable } from "@common/business_components/ui";
|
|
import { useEffect, useState } from "react";
|
|
interface Props {
|
|
seletectedLayerNm: string;
|
|
viewMode: 'list' | 'detail' | 'nothing';
|
|
onFeatureSelect: (feature: any) => void;
|
|
onClose: () => void;
|
|
isRuseReg: { data: any | undefined };
|
|
}
|
|
const HasuFacility = ({ seletectedLayerNm, viewMode, onClose, onFeatureSelect, isRuseReg }: Props) => {
|
|
const {
|
|
code,
|
|
pbnst,
|
|
pubHasuInit,
|
|
} = useWrStore((state) => state);
|
|
const { pubFacHeadList, pbnstHasuRes, pbnstHasuResCount } = pbnst;
|
|
const [hasuTable, setHasuTable] = useState<pubHasuType[]>();
|
|
const [hasuPage, setHasuPage] = useState<number>(1);
|
|
useEffect(() => {
|
|
if (code.sggCd.length && pbnstHasuRes.length > 0) {
|
|
setHasuTable(tableData(pbnstHasuRes, { code }));
|
|
}
|
|
}, [code, pbnstHasuRes]);
|
|
useEffect(() => {
|
|
if (seletectedLayerNm !== '하수처리시설' || viewMode != 'list') return;
|
|
if (!pbnst.isInit) {
|
|
pubHasuInit("1", "0");
|
|
}
|
|
}, [pbnst.isInit, pubHasuInit]);
|
|
useEffect(() => {
|
|
if (seletectedLayerNm !== '하수처리시설' || viewMode != 'list') return;
|
|
pubHasuInit(String(hasuPage), "0");
|
|
}, [hasuPage, pubHasuInit]);
|
|
|
|
const hasuCellClick = (index: number | undefined) => {
|
|
if (index !== undefined && pbnstHasuRes !== undefined) {
|
|
onFeatureSelect(pbnstHasuRes[index]);
|
|
onClose();
|
|
}
|
|
};
|
|
return (viewMode == 'list' ? (
|
|
<div style={{ overflowY: 'auto' }}>
|
|
<div className="flex justify-between items-center mb-4">
|
|
<Title title="하수처리시설 현황" />
|
|
</div>
|
|
{/* 높이 조정 */}
|
|
<UiTable
|
|
tableData={hasuTable || []}
|
|
headlist={pubFacHeadList}
|
|
pageSize={11}
|
|
total={pbnstHasuResCount || 0}
|
|
headName={""}
|
|
cellClick={hasuCellClick}
|
|
onPageChange={setHasuPage}
|
|
/>
|
|
</div>
|
|
) :
|
|
(
|
|
<div style={{ overflowX: 'hidden' }}>
|
|
<div className="flex justify-between items-center mb-4">
|
|
<Title title="하수처리시설 상세정보" />
|
|
</div>
|
|
{/* 높이 조정 */}
|
|
<UiTable
|
|
tableData={isRuseReg?.data || []}
|
|
headlist={pubFacHeadList.slice(0, 4)}
|
|
pageSize={1}
|
|
total={0}
|
|
headName={"위치정보"}
|
|
cellClick={() => { }}
|
|
onPageChange={() => { }}
|
|
/>
|
|
<UiTable
|
|
tableData={isRuseReg?.data || []}
|
|
headlist={pubFacHeadList.slice(4)}
|
|
pageSize={1}
|
|
total={0}
|
|
headName={"기본정보"}
|
|
cellClick={() => { }}
|
|
onPageChange={() => { }}
|
|
/>
|
|
</div>
|
|
)
|
|
)
|
|
}
|
|
export default HasuFacility; |