109 lines
3.4 KiB
TypeScript
109 lines
3.4 KiB
TypeScript
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 { type SelectDataType } from '../commonStore';
|
|
import { useCityCd, useSggCd } from '../components/searchModalReportApi';
|
|
// import { useBizByFcltStore } from "../../../store/StoreProvider";
|
|
|
|
|
|
// // 하수도정비 기본계획 보고서
|
|
export const reportTableHeadlist = [
|
|
{ id: "no", title: "NO" },
|
|
{ id: "sido", title: "시도" },
|
|
{ id: "sigungu", title: "시군구" },
|
|
{ id: "approvalYear", title: "승인년도" },
|
|
{ id: "plantZoneGugun", title: "구분" },
|
|
{ id: "reportGubun", title: "보고서구분" },
|
|
{ id: "fileName", title: "파일명" },
|
|
{ id: "regDate", title: "등록일자" },
|
|
];
|
|
|
|
|
|
interface BasicTabProps {
|
|
open?: boolean;
|
|
gubun: string;
|
|
sidos: SelectDataType[];
|
|
ctpvCd: string | number;
|
|
sigungu: string;
|
|
filteredSiguns: SelectDataType[];
|
|
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;
|
|
}
|
|
|
|
const ReportTab: React.FC<BasicTabProps> = ({
|
|
open,
|
|
gubun,
|
|
sidos,
|
|
ctpvCd,
|
|
sigungu,
|
|
filteredSiguns = [{ val: '0', text: '전체', sido: '0' }],
|
|
yearFilter,
|
|
handleSearch,
|
|
handleCtpvCdChange,
|
|
// onOpenChange,
|
|
// onFeatureSelect,
|
|
// setTableData,
|
|
// setTableCount,
|
|
setYearFilter,
|
|
setGubun,
|
|
setSigungu,
|
|
}) => {
|
|
|
|
|
|
return (
|
|
<div className="relative flex flex-col border rounded-lg p-6 w-full h-[10vh]">
|
|
<div className="flex items-center mb-3">
|
|
<SelectBox
|
|
className="w-[150px] mr-8"
|
|
selectClass="rounded-lg bg-white"
|
|
label="시도"
|
|
selectArray={sidos}
|
|
value={ctpvCd}
|
|
onSelectValue={handleCtpvCdChange}
|
|
selectContentClass="z-[101]"
|
|
/>
|
|
<SelectBox
|
|
className="w-48"
|
|
selectClass="w-48 rounded-lg bg-white truncate"
|
|
label="시군구"
|
|
selectArray={filteredSiguns}
|
|
value={sigungu}
|
|
onSelectValue={val => setSigungu(String(val))}
|
|
selectContentClass="z-[101]"
|
|
/>
|
|
</div>
|
|
<div className="flex items-center mb-6">
|
|
<label className="inline-block w-auto whitespace-nowrap text-xl text-gray-600 mr-2">구분</label>
|
|
<Input
|
|
className='!text-xl w-[100px] placeholder:text-center mr-8'
|
|
placeholder="입력"
|
|
value={gubun}
|
|
onChange={(e) => { setGubun(e.target.value); }}
|
|
/>
|
|
<YearRangeSelectBox
|
|
start={yearFilter.start}
|
|
end={yearFilter.end}
|
|
onChange={range => setYearFilter({ ...yearFilter, start: range.start, end: range.end })}
|
|
startLabel="승인년도"
|
|
endLabel=""
|
|
/>
|
|
{/* 조회 버튼 */}
|
|
<div className="flex-1 flex justify-end">
|
|
<Button className="text-base py-2" onClick={handleSearch}>조회</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default React.memo(ReportTab); |