Merge remote-tracking branch 'origin/iipbs/st/dev' into deploy

This commit is contained in:
2026-07-06 16:51:29 +09:00
10 changed files with 73 additions and 36 deletions
@@ -172,6 +172,30 @@ const SearchForm = (props: SearchFormProps = {}) => {
);
const sggOptions = sggList?.data ?? [];
// 시도 설정 후 시군구 목록이 오면 첫 번째 항목 자동 선택
useEffect(() => {
if (!mergedProps.gugun) return;
if (props.defaultValues?.gugun) return;
if (!values.sido || values.sido === "ALL") return;
const firstSgg = sggList?.data?.[0];
if (!firstSgg) return;
setValues((prev) => {
if (prev.gugun) return prev;
return {
...prev,
gugun: firstSgg.gugun,
bsnmCd: firstSgg.bsnmCd,
};
});
}, [
sggList,
values.sido,
mergedProps.gugun,
props.defaultValues?.gugun,
]);
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
props.onSubmit?.(values);
@@ -715,7 +715,7 @@ const PrivateSewageFacilityInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -815,7 +815,7 @@ const PrivateSewageFacilityInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -988,7 +988,7 @@ const PrivateSewageFacilityInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1012,7 +1012,7 @@ const PrivateSewageFacilityInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1037,7 +1037,7 @@ const PrivateSewageFacilityInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1288,7 +1288,7 @@ const PrivateSewageFacilityInp = () => {
activeTabRef.current,
searchParamRef.current,
values,
false,
true,
false,
);
}}
@@ -1141,7 +1141,7 @@ const SewageExcretaRelatedInp = () => {
tabKey,
searchParamRef.current,
ctx,
false,
true,
false,
);
}
@@ -1376,7 +1376,7 @@ const SewageExcretaRelatedInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -1650,7 +1650,7 @@ const SewageExcretaRelatedInp = () => {
const param =
searchParamRef.current ??
buildSewageExcretaRelatedSearchParam(lastSearchedValues);
await loadActiveTabData(tabKey, param, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, param, lastSearchedValues, true, false);
alert("저장되었습니다.");
} else {
alert(response.message ?? "저장 중 오류가 발생했습니다.");
@@ -1366,7 +1366,7 @@ const SewageExcretaSlurgeInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -1535,7 +1535,7 @@ const SewageExcretaSlurgeInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -1731,7 +1731,7 @@ const SewageExcretaSlurgeInp = () => {
const param =
searchParamRef.current ??
buildSewageExcretaSlurgeSearchParam(lastSearchedValues);
await loadActiveTabData(tabKey, param, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, param, lastSearchedValues, true, false);
alert("저장되었습니다.");
} else {
alert(response.message ?? "저장 중 오류가 발생했습니다.");
@@ -2179,7 +2179,7 @@ const SewageExcretaSlurgeInp = () => {
activeTabRef.current,
searchParamRef.current,
values,
false,
true,
false,
);
}}
@@ -2195,7 +2195,7 @@ const SewageExcretaSlurgeInp = () => {
activeTabRef.current,
searchParamRef.current,
values,
false,
true,
false,
);
}}
@@ -622,7 +622,7 @@ const SewagePipeMaintainInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -775,7 +775,7 @@ const SewagePipeMaintainInp = () => {
RepairStatusInpColumn.tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
setGlobalProgress(100);
@@ -812,7 +812,7 @@ const SewagePipeMaintainInp = () => {
PipeDredgingStatusInpColumn.tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
setGlobalProgress(100);
@@ -861,7 +861,7 @@ const SewagePipeMaintainInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -519,7 +519,7 @@ const SewageReservoirPumpInp = () => {
if (response.status === "success") {
setIsLoading(true);
await loadActiveTabData(tabKey, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, lastSearchedValues, true, false);
alert("제출 취소되었습니다.");
} else {
alert(response.message ?? "제출 취소 중 오류가 발생했습니다.");
@@ -721,7 +721,7 @@ const SewageReservoirPumpInp = () => {
} else {
setRainfallPumpStationDeleteList([]);
}
await loadActiveTabData(tabKey, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, lastSearchedValues, true, false);
alert("저장되었습니다.");
} else {
alert(response.message ?? "저장 중 오류가 발생했습니다.");
@@ -788,7 +788,7 @@ const SewageReservoirPumpInp = () => {
} else {
setRainfallPumpStationDeleteList([]);
}
await loadActiveTabData(tabKey, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, lastSearchedValues, true, false);
};
if (!noApplicable && submitList.length === 0) {
@@ -1670,7 +1670,7 @@ const SewageReservoirPumpInp = () => {
onExceptionResetSubmitted={async () => {
const values = lastSearchedValues ?? searchValues;
if (!values) return;
await loadActiveTabData(activeTabRef.current, values, false, false);
await loadActiveTabData(activeTabRef.current, values, true, false);
}}
/>
<SubmitDailog
@@ -1687,7 +1687,7 @@ const SewageReservoirPumpInp = () => {
onExceptionSubmitted={async () => {
const values = lastSearchedValues ?? searchValues;
if (!values) return;
await loadActiveTabData(activeTabRef.current, values, false, false);
await loadActiveTabData(activeTabRef.current, values, true, false);
}}
/>
<ConfirmDialog isOpen={false} />
@@ -757,7 +757,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -857,7 +857,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -1033,7 +1033,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1057,7 +1057,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1081,7 +1081,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -1103,7 +1103,7 @@ const SewerageFinanceInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("저장되었습니다.");
@@ -755,7 +755,7 @@ const SewerageServiceLevelInp = () => {
tabKey,
searchParamRef.current!,
lastSearchedValues,
false,
true,
false,
);
};
@@ -991,7 +991,7 @@ const SewerageServiceLevelInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -1163,7 +1163,7 @@ const WaterReuseInp = () => {
const param =
searchParamRef.current ??
buildWaterReuseSearchParam(lastSearchedValues);
await loadActiveTabData(tabKey, param, lastSearchedValues, false, false);
await loadActiveTabData(tabKey, param, lastSearchedValues, true, false);
};
try {
@@ -1413,7 +1413,7 @@ const WaterReuseInp = () => {
tabKey,
param,
lastSearchedValues,
false,
true,
false,
);
};
@@ -1742,7 +1742,7 @@ const WaterReuseInp = () => {
PublicSewageTreatWaterReuseInpColumn.tabKey,
param,
lastSearchedValues,
false,
true,
false,
);
setGlobalProgress(100);
@@ -1896,7 +1896,7 @@ const WaterReuseInp = () => {
tabKey,
searchParamRef.current,
lastSearchedValues,
false,
true,
false,
);
alert("제출 취소되었습니다.");
@@ -3,7 +3,9 @@ import {
Chart as ChartJS,
CategoryScale,
LinearScale,
BarController,
BarElement,
LineController,
LineElement,
PointElement,
Title,
@@ -12,7 +14,18 @@ import {
} from "chart.js";
import type { ChartOptions } from "chart.js";
ChartJS.register(CategoryScale, LinearScale, BarElement, LineElement, PointElement, Title, Tooltip, Legend);
ChartJS.register(
CategoryScale,
LinearScale,
BarController,
BarElement,
LineController,
LineElement,
PointElement,
Title,
Tooltip,
Legend,
);
// 차트 설정 외부 정의 (Mixed 타입 명시)
const options: ChartOptions<"bar" | "line"> = {