diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx
index 111b8f1af..542156c2a 100644
--- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx
+++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx
@@ -162,7 +162,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => {
● 침입수량 산정결과
침입수량 :
- {inftwtQty}
+ {inftwtQty}
m³/d
@@ -170,7 +170,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => {
{/* 차트 */}
+ yFieldText2="" yFieldText="유량(m³/h)"/>
{popupOpen && (
diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx
index 0270b8dec..b788b9cf6 100644
--- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx
+++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx
@@ -161,17 +161,17 @@ const RdiiChart = ({ pplMngNo }: ModalOpenProp) => {
● 강우유입수량 분석결과
평균RDII :
- {rdiiQty}
+ {rdiiQty}
m³/d
적용강우량 :
- {rainTotal}
+ {rainTotal}
mm
강우량대비RDII :
- {totalVolume}
+ {totalVolume}
m³/mm
diff --git a/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx b/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx
index 0459cee1d..bdf718578 100644
--- a/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx
+++ b/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx
@@ -2,10 +2,9 @@ import { YearRangeSelectBox } from '@/components/ui/YearRangeSelectBox';
import { SelectBox } from '@common/business_components/ui';
import { Button, Input } from '@common/components';
import React from 'react';
-//import { useDcTree, flattenFolders, useSggCd, useCityCd } from './components/searchModalReportApi';
+import { reportGubuns } from './searchModalReportApi';
import { type SelectDataType } from '../commonStore';
import { useCityCd, useSggCd } from '../components/searchModalReportApi';
-// import { useBizByFcltStore } from "../../../store/StoreProvider";
// // 하수도정비 기본계획 보고서
@@ -28,13 +27,11 @@ interface BasicTabProps {
ctpvCd: string | number;
sigungu: string;
filteredSiguns: SelectDataType[];
+ reportGubun: string;
+ setReportGubun: (gubun: string) => void;
yearFilter: { start: string; end: string; };
handleSearch: () => void;
handleCtpvCdChange: (val: string | number) => void;
- // onOpenChange?: (open: boolean) => void;
- // onFeatureSelect?: (row: any) => void;
- // setTableData?: (data: any[]) => void;
- // setTableCount?: (count: number) => void;
setYearFilter: (filter: { start: string; end: string }) => void;
setGubun: (gubun: string) => void;
setSigungu: (sigungu: string) => void;
@@ -48,12 +45,10 @@ const ReportTab: React.FC = ({
sigungu,
filteredSiguns = [{ val: '0', text: '전체', sido: '0' }],
yearFilter,
+ reportGubun,
+ setReportGubun,
handleSearch,
handleCtpvCdChange,
- // onOpenChange,
- // onFeatureSelect,
- // setTableData,
- // setTableCount,
setYearFilter,
setGubun,
setSigungu,
@@ -83,13 +78,24 @@ const ReportTab: React.FC = ({
/>
-
+ {/*
{ setGubun(e.target.value); }}
+ /> */}
+
setReportGubun(String(val))}
+ selectContentClass="z-[101]"
+ labelClass='whitespace-nowrap text-xl text-gray-600 pr-2'
/>
+ {/* 승인년도 필터 */}
= ({
const [detailBizId, setDetailBizId] = useState(0);
const [city, setCity] = useState(0);
const [sgg, setSgg] = useState(0);
- const [ctpvCd, setCtpvCd] = useState('0');
- const [sigungu, setSigungu] = useState('0');
- const [gubun, setGubun] = useState(""); // 하수정비기본계획 report
+ const [ctpvCd, setCtpvCd] = useState('0'); // 하수정비기본계획 report
+ const [sigungu, setSigungu] = useState('0'); // 하수정비기본계획 report
+ const [gubun, setGubun] = useState(""); // 하수정비기본계획 report
+ const [reportGubun, setReportGubun] = useState("0"); // 하수정비기본계획 report
const [start1, setStart1] = useState("");
const [start2, setStart2] = useState("");
const [end1, setEnd1] = useState("");
@@ -83,6 +84,7 @@ const SearchModal: React.FC = ({
const [yearFilter, setYearFilter] = useState({ start: "", end: "" });
const [filteredSiguns, setFilteredSiguns] = useState([{ val: '0', text: '전체', sido: '0' }]);
+ // 하수정비기본계획 report
const sidos = useCityCd();
const siguns = useSggCd();
const reportOriginData = useDcTree(""); //:Folder[]
@@ -136,6 +138,7 @@ const SearchModal: React.FC = ({
setSgg(0);
setCtpvCd('0');
setSigungu('0');
+ setReportGubun('0');
setYearFilter({
start: "",
end: "",
@@ -293,6 +296,11 @@ const SearchModal: React.FC = ({
const sigunguOption = filteredSiguns.find((n) => n.val === sigungu);
filterReportData = filterReportData.filter(item => item.sigungu === sigunguOption?.text);
}
+ if (reportGubun !== "0") { // 보고서구분검색
+ const reportGubunOption = reportGubuns.find((n) => n.val === reportGubun);
+ filterReportData = filterReportData.filter(item => item.reportGubun === reportGubunOption?.text);
+ }
+
if (yearFilter.start != "" && yearFilter.end == "") //승인년도검색
filterReportData = filterReportData.filter(item => (item.approvalYear) ? item.approvalYear >= yearFilter.start + "년" : null);
if (yearFilter.start == "" && yearFilter.end != "")
@@ -678,6 +686,8 @@ const SearchModal: React.FC = ({
ctpvCd={ctpvCd}
sigungu={sigungu}
filteredSiguns={filteredSiguns}
+ reportGubun={reportGubun}
+ setReportGubun={setReportGubun}
yearFilter={yearFilter}
handleSearch={handleSearch}
handleCtpvCdChange={handleCtpvCdChange}
diff --git a/apps/sn/app/(map-layout)/map/components/searchModalReportApi.ts b/apps/sn/app/(map-layout)/map/searchModal/searchModalReportApi.ts
similarity index 90%
rename from apps/sn/app/(map-layout)/map/components/searchModalReportApi.ts
rename to apps/sn/app/(map-layout)/map/searchModal/searchModalReportApi.ts
index 8cb349056..bcee09fdd 100644
--- a/apps/sn/app/(map-layout)/map/components/searchModalReportApi.ts
+++ b/apps/sn/app/(map-layout)/map/searchModal/searchModalReportApi.ts
@@ -31,6 +31,14 @@ const isYear = (value: string): boolean => {
return /^[0-9]{4}년$/.test(value);
};
+export const reportGubuns = [{val: '0', text: '전체'}, {val: '1', text: '보고서'}
+ , {val: '2', text: '요약보고서'} , {val: '3', text: '부록'}, {val: '4', text: '기타'}];
+
+/**
+ * Flatten a hierarchical folder structure into a flat array.
+ * @param data - The hierarchical folder data to flatten.
+ * @returns An array of flattened folders with their paths and levels.
+ */
export function flattenFolders(data: Folder[]): FlattenedFolder[] {
const result: FlattenedFolder[] = [];
const exceptNodeNm = ["부분","통합","전체"];
@@ -165,12 +173,14 @@ export const getCityCd = async (): Promise => {
if (!response.ok) throw new Error(`시도 데이터 오류: ${response.status}`);
const res = await response.json();
const city = res.data;
- const cityCd = city.map((item: any) => ({
+ let citys:SelectDataType[] = city.map((item: {adstDstrCd:string, sido:string}) => ({
val: item.adstDstrCd,
text: item.sido,
}));
- cityCd.unshift({ val: '0', text: '전체' });
- return cityCd;
+ citys = citys.sort((a:SelectDataType, b:SelectDataType) => a.text.localeCompare(b.text));
+ citys.unshift({ val: '0', text: '전체' });
+ console.log("citys:", citys);
+ return citys;
} catch (error) {
console.error('시도 데이터를 가져오는데 실패했습니다:', error);
return [{ val: '0', text: '전체', sido: '0' }];
@@ -186,9 +196,9 @@ export const useSggCd = () => {
if (result) {
setData(result);
}
+ console.log("useSggCd호출");
};
fetch();
- console.log("useSggCd호출");
}, []);
return data;
};
@@ -222,9 +232,9 @@ export const useCityCd = () => {
if (result) {
setData(result);
}
+ console.log("useCityCd호출");
};
fetch();
- console.log("useCityCd호출");
}, []);
return data;
};
diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx
index 82db6da45..f9dac92d6 100644
--- a/packages/common/business_components/src/ui/select/index.tsx
+++ b/packages/common/business_components/src/ui/select/index.tsx
@@ -28,6 +28,7 @@ const SelectBox = React.forwardRef<
value?: string | number;
readOnly?: boolean; // readOnly 속성 추가
selectContentClass?: string;
+ labelClass?: string;
}
>(
(
@@ -40,6 +41,7 @@ const SelectBox = React.forwardRef<
value,
readOnly = false,
selectContentClass,
+ labelClass = "w-20 whitespace-nowrap text-xl text-gray-600",
},
ref,
) => {
@@ -66,7 +68,7 @@ const SelectBox = React.forwardRef<
return (
{label && (
-