- SearchModal 껐다 킬 때 페이지네이션 정보 잃어버리는 에러 수정 - useSearchModal.ts useEffect 의존성 배열을 searchModal.tsx 로 이동 - import 정리
81 lines
2.2 KiB
TypeScript
81 lines
2.2 KiB
TypeScript
// 우수토실
|
|
import { YearRangeSelectBox } from '@/components/ui/YearRangeSelectBox';
|
|
import { Button } from '@common/components';
|
|
import React from 'react';
|
|
import { CtpvSggPrcsFcltSelectBox } from '@/components/ui/ctpvSggPrcsFcltSelectBox';
|
|
import useSearchModalStore from '../../../store/useSearchModalStore';
|
|
import useSearchModal from './useSearchModal';
|
|
|
|
|
|
export const stofcbrCqlFilters = () => {
|
|
const {
|
|
ctpvCd, sggCd,
|
|
yearFilter,
|
|
todayYear, todayMonth, todayDate,
|
|
getDateString
|
|
} = useSearchModalStore.getState();
|
|
|
|
const cqlFilters: string[] = [];
|
|
// 시도, 시군구
|
|
if (ctpvCd !== '0' && sggCd !== '0') cqlFilters.push(`pbadms_emd_cd LIKE '${sggCd}%'`);
|
|
else if (ctpvCd !== '0') cqlFilters.push(`pbadms_emd_cd LIKE '${ctpvCd?.trim()}%'`);
|
|
// 설치년도 범위
|
|
const startDate = getDateString(
|
|
yearFilter.start,
|
|
'',
|
|
'',
|
|
"19000101",
|
|
);
|
|
const endDate = getDateString(
|
|
yearFilter.end,
|
|
'',
|
|
'',
|
|
`${todayYear}${todayMonth}${todayDate}`,
|
|
);
|
|
cqlFilters.push(
|
|
`instl_ymd >= '${startDate}' and instl_ymd <= '${endDate}'`,
|
|
);
|
|
|
|
return cqlFilters;
|
|
};
|
|
|
|
const Stofcbr: React.FC = () => {
|
|
const {
|
|
ctpvCd, setCtpvCd,
|
|
sggCd, setSggCd,
|
|
yearFilter, setYearFilter,
|
|
} = useSearchModalStore();
|
|
const { handleSearch } = useSearchModal();
|
|
|
|
|
|
return (
|
|
<div className="mb-3">
|
|
<div className="flex items-center mb-2">
|
|
{/* 시도, 시군구 */}
|
|
<CtpvSggPrcsFcltSelectBox
|
|
sido={ctpvCd}
|
|
sigungu={sggCd}
|
|
onSidoChange={(sidoId: string) => {
|
|
setCtpvCd(sidoId);
|
|
setSggCd("0");
|
|
}}
|
|
onSigunguChange={setSggCd}
|
|
/>
|
|
{/* 설치년도 */}
|
|
<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(Stofcbr); |