Files
frontend/apps/fo/app/pages/(with-layout)/dashboardMain/page.tsx
T
2025-09-18 14:02:00 +09:00

62 lines
2.1 KiB
TypeScript

/**
* 대시보드 - 표로보기 상단구역 페에지
*
* - 대시보드 - 표로보기의 3개의 탭 상단에 조회년도, 행정정보, 시설명의 구역을 컴포넌트
*/
"use client"
import { useFoStore } from "@/app/store";
import { useEffect, useState } from "react";
import SearchInput from "../../../components/common/SearchInput";
export default function DashBoardFclty({ onFacilityChange, sidoSigun, facilityNm, }: { onFacilityChange?: (facility: { bscFctCd: string, bscFctNm: string, fcltyCpc: number | '', trtFrfNm: string | '', efflWqltStndrdNm: string | '' }) => void, sidoSigun?: string, facilityNm?: string }) {
// 입력값 상태 관리
const { Common, initializeCommonData } = useFoStore((state) => state);
const {
isInit,
} = Common;
// 시설명
const [bscFctNm, setFcltyName] = useState<string>(facilityNm || '난지');
const [bscFctCd, setbscFctCd] = useState<string>('11000SW001R');
const [fcltyCpc, setFcltyCpc] = useState<number | ''>(860000);
const [trtFrfNm, setTrtFrfNm] = useState<string | ''>('표준활성슬러지법, MLE, A2O');
const [efflWqltStndrdNm, setEfflWqltStndrdNm] = useState<string | ''>('500톤 이상(Ⅲ지역)');
useEffect(() => {
if (!isInit) {
initializeCommonData();
}
}, [isInit, initializeCommonData ]);
useEffect(() => {
if (facilityNm) {
setFcltyName(facilityNm);
}
}, [facilityNm]);
const fncNextPage = (bscFctCd?: string, bscFctNm?: string, fcltyCpc?: number | '', trtFrfNm?: string | '', efflWqltStndrdNm?: string | '') => {
setbscFctCd(bscFctCd || '');
setFcltyName(bscFctNm || '');
setFcltyCpc(fcltyCpc || '');
setTrtFrfNm(trtFrfNm || '');
setEfflWqltStndrdNm(efflWqltStndrdNm || '');
if (bscFctCd && onFacilityChange) {
onFacilityChange({
bscFctCd: bscFctCd || '',
bscFctNm: bscFctNm || '',
fcltyCpc: fcltyCpc || '',
trtFrfNm: trtFrfNm || '',
efflWqltStndrdNm: efflWqltStndrdNm || ''
});
}
}
return (
<div className="z-50">
<SearchInput label={'시설명'} setValue={fncNextPage} sidoSigun={sidoSigun} fcltyName={bscFctNm}/>
</div>
);
}