st: refactor: 시군구 검색 시 bsnmCd도 가져오도록 수정

This commit is contained in:
2026-02-03 18:01:16 +09:00
parent 4ee12d127d
commit 6f07aca860
4 changed files with 25 additions and 9 deletions
+21 -8
View File
@@ -40,10 +40,11 @@ const SearchForm = (props: SearchFormProps = {}) => {
const [values, setValues] = useState<SearchFormValues>({
sido: props.defaultValues?.sido || "",
gugun: props.defaultValues?.gugun || "",
gugun: props.defaultValues?.gugun || '',
year: props.defaultValues?.year || String(defaultYear),
order: props.defaultValues?.order || "",
fctName: props.defaultValues?.fctName || "",
order: props.defaultValues?.order || '',
fctName: props.defaultValues?.fctName || '',
bsnmCd: props.defaultValues?.bsnmCd || '',
});
const { data: sidoList } = useSWR<ApiResponse<Sido[]>>(
@@ -98,16 +99,28 @@ const SearchForm = (props: SearchFormProps = {}) => {
const handleReset = () => {
const resetValues: SearchFormValues = {
sido: "",
gugun: "",
sido: '',
gugun: '',
year: String(defaultYear),
order: "",
fctName: "",
order: '',
fctName: '',
bsnmCd: '',
};
setValues(resetValues);
props.onReset?.();
};
const handleSidoChange = (value: string) => {
const selectedBsnm = sidoList?.data.find((v) => v.sido === value)?.bsnmCd || '';
setValues((prev) => ({
...prev,
sido: value,
gugun: '',
bsnmCd: selectedBsnm,
}));
};
return (
<div className="card card-border">
<form onSubmit={handleSubmit}>
@@ -117,7 +130,7 @@ const SearchForm = (props: SearchFormProps = {}) => {
<Label className="text-label">
시도
</Label>
<Select value={values.sido} onValueChange={(value) => setValues((prev) => ({ ...prev, sido: value, gugun: "" }))}>
<Select value={values.sido} onValueChange={handleSidoChange}>
<SelectTrigger className="w-[12rem]">
<SelectValue placeholder="선택"></SelectValue>
</SelectTrigger>
@@ -34,7 +34,7 @@ const SeweragePenetrationRateInp = () => {
const response = await statisticsInputAPi.getSewerageSupplyRateList({
sido: values.sido,
gugun: values.gugun === 'ALL' ? '' : values.gugun,
bsnmCd: '4139000000',
bsnmCd: values.bsnmCd,
yr: values.year,
demoYr: values.year,
});
@@ -4,6 +4,7 @@ export type SearchFormValues = {
year?: string;
order?: string;
fctName?: string;
bsnmCd?: string;
};
export type SearchFormProps = {
@@ -1,11 +1,13 @@
export interface Sido {
adstDstrCd: string;
sido: string;
bsnmCd: string;
}
export interface Sgg {
adstDstrCd: string;
gugun: string;
bsnmCd: string;
}
export interface ApiResponse<T> {