diff --git a/apps/fo/app/pages/(with-layout)/sewageOccur/modal/page.tsx b/apps/fo/app/pages/(with-layout)/sewageOccur/modal/page.tsx index 06ca11cc1..c9c883041 100644 --- a/apps/fo/app/pages/(with-layout)/sewageOccur/modal/page.tsx +++ b/apps/fo/app/pages/(with-layout)/sewageOccur/modal/page.tsx @@ -5,6 +5,7 @@ import { DateMonthPicker, UiTable } from "@common/business_components/ui"; import ListDiv from "@common/business_components/ui/list_div"; import { Table, TableCell, TableHead, TableRow } from "@common/components/ui"; import { useEffect, useState } from "react"; +import { start } from "repl"; export default function SewageOccurModal(props: { fcltyName: string; facilityCd : string; searchYear : string}) { @@ -13,10 +14,15 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd // searchYear 유효성 검사 및 기본값 설정 const validSearchYear = props.searchYear && /^\d{4}$/.test(props.searchYear) ? props.searchYear : new Date().getFullYear().toString(); + const [startYearMonth, setStartYearMonth] = useState(validSearchYear+'01'); const [endYearMonth, setEndYearMonth] = useState(validSearchYear+'12'); const [detailList, setDetailList] = useState([]); + // 가능한 시작년월 설정 + const [enableStartMonth, setEnableStartMonth] = useState(['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']); + const [enableEndMonth, setEnableEndMonth] = useState(['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']); + const { upHeadListSewageOccurDetail, gridListSewageOccurDetail @@ -33,6 +39,37 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd useEffect(() => { searchSewageOccurDetailList(props.facilityCd, validSearchYear, startYearMonth, endYearMonth); + }, [startYearMonth, endYearMonth, searchSewageOccurDetailList, props.facilityCd, validSearchYear]); + + useEffect(() => { + const standdardMonthList = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'] + + // 시작년월이 바뀌면 선택가능한 년월 데이터가 변경돼야 한다. + if(startYearMonth){ + const startMm = startYearMonth.substring(4, 6); + + standdardMonthList.forEach((month) => { + setEnableStartMonth((prev) => { + if (parseInt(month.replaceAll('월', '')) < parseInt(startMm)) { + return prev.filter((m) => m !== month); + } + return prev; + }); + }); + } + + if(endYearMonth){ + const endMm = endYearMonth.substring(4, 6); + standdardMonthList.forEach((month) => { + setEnableEndMonth((prev) => { + if (parseInt(month.replaceAll('월', '')) > parseInt(endMm)) { + return prev.filter((m) => m !== month); + } + return prev; + }); + }); + } + }, [startYearMonth, endYearMonth]); return ( @@ -63,6 +100,7 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd selectClass="ml-5 w-[100px]" startYear={1900} yearReadOnly={true} + enableMonth={enableStartMonth} />~ diff --git a/apps/fo/app/store/sewageOccur/index.tsx b/apps/fo/app/store/sewageOccur/index.tsx index 5feb91f94..f97520d17 100644 --- a/apps/fo/app/store/sewageOccur/index.tsx +++ b/apps/fo/app/store/sewageOccur/index.tsx @@ -222,6 +222,7 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { }, })); const res = await fetchSewageOccurList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm); + const excelDownList: ExcelType[] = []; const data = res.data; // Promise.all을 사용하여 모든 비동기 작업이 완료될 때까지 기다림 const calData = await Promise.all(data.map(async (item: SewageOccurProps) => { @@ -301,6 +302,28 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { item.estimationSewage = parseFloat((item.waterUsage * (item.swageChangePercent/100)).toFixed(2)); return item; })); + + if(pageSize>5000){ + calData.forEach((item: SewageOccurProps) => { + excelDownList.push({ + 시설코드: item.bscFctCd, + 권역: item.rvbsn, + 단위유역: item.lgbsn, + 중권역: item.mdmbsn, + 환경청: item.rgnNm, + 시설명: item.bscFctNm, + 시도: item.sido, + 시군구: item.sigungo, + 주소: item.daddr, + 시설용량: item.fctCpc, + 물사용량: item.waterUsage, + 오수전환율: item.swageChangePercent, + 오수발생량추정: item.estimationSewage, + 연간하수유입량 : item.sewageInputYear, + 청천시하수유입량 : item.sewageInputChungchun, + }); + }); + } // 조회 데이터 설정 set((state: any) => ({ ...state, @@ -311,7 +334,7 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { isLoading : false, }:{ ...state.SewageOccur, - excelList: [], + excelList: excelDownList, isLoading : false, }, }))