[ST] - fix: 시군구 드롭다운 컬럼 수정, rsone-dockerfile 추가
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
FROM node:20-alpine
|
||||
|
||||
# pnpm 설치
|
||||
RUN corepack enable && corepack prepare pnpm@8.15.5 --activate
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 모든 소스 복사
|
||||
COPY . .
|
||||
|
||||
# .env.production 파일 생성
|
||||
RUN mkdir -p /app/apps/st && \
|
||||
echo "NODE_ENV=production" > /app/apps/st/.env.production && \
|
||||
echo "PORT=3000" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_PORT=3000" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_SERVER_API_URL=http://dev.onasys.co.kr:8000" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_PROXY_HOST=https://st.apps.rsonesoft.com" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_TINY_API_KEY=t9nc4z6inquvvd5pq1vea8wcp7lb01qmqseh6egms9vpaju2" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_ST_SERVICE_URL=https://apigateway.apps.rsonesoft.com" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_ST_REALGRID_KEY=upVcPE+wPOmtLjqyBIh9RkM/nBOseBrflwxYpzGZyYm9cY8amGDkiHqyYT2U1Yh3Dufv8SUhNy536vist0QvWmtFjXof5zyFWbsQrO9hEAEHQebz4D2N1yGRTaf3nolR/WC8QoVsCZI=" >> /app/apps/st/.env.production && \
|
||||
echo "NEXT_PUBLIC_SITE_ID=ST" >> /app/apps/st/.env.production
|
||||
|
||||
RUN pnpm install --filter=st...
|
||||
RUN pnpm build --filter=st...
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["sh", "-c", "pnpm --filter st start & wait"]
|
||||
@@ -695,20 +695,6 @@ const SidoSggFacilityNameSearchForm = ({
|
||||
</div>
|
||||
)}
|
||||
<div className="flex w-full min-w-0 items-stretch gap-[1.2rem]">
|
||||
<div className="flex min-w-0 flex-1 flex-col gap-2">
|
||||
<h3 className="text-[1.4rem] font-medium text-foreground">
|
||||
처리시설 정보
|
||||
</h3>
|
||||
<CompactDataGrid
|
||||
columnInfo={treatmentFacilityColumnInfo}
|
||||
rowData={treatmentFacilityRows}
|
||||
setRowData={setTreatmentFacilityRows}
|
||||
showHeaderCheckbox={false}
|
||||
compactFullWidth
|
||||
onRowClick={handleTreatmentFacilityRowClick}
|
||||
// compactGridHeightClass="h-[min(40vh,28rem)] min-h-[16rem]"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex min-w-0 flex-1 flex-col gap-2">
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<h3 className="text-[1.4rem] font-medium text-foreground">
|
||||
@@ -726,6 +712,20 @@ const SidoSggFacilityNameSearchForm = ({
|
||||
// compactGridHeightClass="h-[min(40vh,28rem)] min-h-[16rem]"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex min-w-0 flex-1 flex-col gap-2">
|
||||
<h3 className="text-[1.4rem] font-medium text-foreground">
|
||||
처리시설 정보
|
||||
</h3>
|
||||
<CompactDataGrid
|
||||
columnInfo={treatmentFacilityColumnInfo}
|
||||
rowData={treatmentFacilityRows}
|
||||
setRowData={setTreatmentFacilityRows}
|
||||
showHeaderCheckbox={false}
|
||||
compactFullWidth
|
||||
onRowClick={handleTreatmentFacilityRowClick}
|
||||
// compactGridHeightClass="h-[min(40vh,28rem)] min-h-[16rem]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -16,6 +16,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputExcretaTreatmentFacilityApi } from "@/entities/statistics/api/input/statistics-input-excreta-treatment-facility-service";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
@@ -144,8 +145,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -444,7 +444,11 @@ const ExcretaTreatmentFacilityInp = () => {
|
||||
return { ...col, editable: false as const };
|
||||
}
|
||||
if (col.fieldName === "sggNm" && enterable) {
|
||||
return buildSggNmColumn(col, true, sggOptions);
|
||||
return buildSggNmColumn(
|
||||
col,
|
||||
true,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
}
|
||||
return col;
|
||||
})
|
||||
@@ -457,7 +461,7 @@ const ExcretaTreatmentFacilityInp = () => {
|
||||
columns,
|
||||
columnLayout: ExcretaTreatFactInpColumn.columnLayout ?? [],
|
||||
};
|
||||
}, [statusInfo, inputPeriodEnterable, isAdminInfo, sggOptions, columnGuidesByEngCol]);
|
||||
}, [statusInfo, inputPeriodEnterable, isAdminInfo, sggOptions, lastSearchedValues?.gugun, columnGuidesByEngCol]);
|
||||
|
||||
const canEditGrid =
|
||||
(computeTabEnterable(statusInfo, inputPeriodEnterable) || isAdminInfo) && inputPeriodEnterable;
|
||||
@@ -1044,7 +1048,7 @@ const ExcretaTreatmentFacilityInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{statusInfo?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{statusInfo?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -161,8 +161,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1200,7 +1199,7 @@ const PrivateSewageFacilityInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -121,8 +121,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1336,7 +1335,7 @@ const PublicSewageFacilityInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{!isMainFacilityTab && activeTabStatus?.lclgvSbmsnSttsCd === '2' && submitOk && (
|
||||
{!isMainFacilityTab && activeTabStatus?.lclgvSbmsnSttsCd === '2' && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -16,6 +16,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputPumpingStationApi } from "@/entities/statistics/api/input/statistics-input-pumping-station-service";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
@@ -144,8 +145,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -438,7 +438,11 @@ const PumpingStationInp = () => {
|
||||
return { ...col, editable: false as const };
|
||||
}
|
||||
if (col.fieldName === "sggNm" && enterable) {
|
||||
return buildSggNmColumn(col, true, sggOptions);
|
||||
return buildSggNmColumn(
|
||||
col,
|
||||
true,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
}
|
||||
return col;
|
||||
})
|
||||
@@ -451,7 +455,7 @@ const PumpingStationInp = () => {
|
||||
columns,
|
||||
columnLayout: PumpingStationInpColumn.columnLayout ?? [],
|
||||
};
|
||||
}, [statusInfo, inputPeriodEnterable, isAdminInfo, sggOptions, columnGuidesByEngCol]);
|
||||
}, [statusInfo, inputPeriodEnterable, isAdminInfo, sggOptions, lastSearchedValues?.gugun, columnGuidesByEngCol]);
|
||||
|
||||
const canEditGrid =
|
||||
(computeTabEnterable(statusInfo, inputPeriodEnterable) || isAdminInfo) && inputPeriodEnterable;
|
||||
@@ -1027,7 +1031,7 @@ const PumpingStationInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{statusInfo?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{statusInfo?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -9,6 +9,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
import { statisticsInputSewageExcretaRelatedApi } from "@/entities/statistics/api/input/statistics-input-sewage-excreta-related-service";
|
||||
@@ -208,8 +209,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1887,7 +1887,11 @@ const SewageExcretaRelatedInp = () => {
|
||||
SGG_NM_DROPDOWN_TAB_KEYS.has(tabKey) &&
|
||||
col.fieldName === "sggNm"
|
||||
) {
|
||||
next = buildSggNmColumn(col, canEdit, sggOptions);
|
||||
next = buildSggNmColumn(
|
||||
col,
|
||||
canEdit,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
} else if (col.fieldName === "sggNm") {
|
||||
next = { ...col, editable: false as const, styleName: "rg-cell-readonly" };
|
||||
}
|
||||
@@ -1900,7 +1904,7 @@ const SewageExcretaRelatedInp = () => {
|
||||
});
|
||||
}
|
||||
return map;
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, columnGuidesByTab, sggOptions]);
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, columnGuidesByTab, sggOptions, lastSearchedValues?.gugun]);
|
||||
|
||||
const publicInstitutionArticleCellStyleCallback = useCallback<CellStyleCallback>(
|
||||
({ fieldName, row }) => {
|
||||
@@ -2023,7 +2027,7 @@ const SewageExcretaRelatedInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -17,6 +17,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
import { statisticsInputSewageExcretaSlurgeApi } from "@/entities/statistics/api/input/statistics-input-sewage-excreta-slurge-service";
|
||||
@@ -60,6 +61,7 @@ import LastYearDataButton from "@/components/button/LastYearDataButton";
|
||||
import NotApplicableCheckButton from "@/components/button/NotApplicableCheckButton";
|
||||
import SaveButton from "@/components/button/SaveButton";
|
||||
import SubmitButton from "@/components/button/SumitButton";
|
||||
import UpdateOperateDataButton from "@/components/button/UpdateOperateDataButton";
|
||||
import VerificationResultButton from "@/components/button/VerificationResultButton";
|
||||
import DataGrid from "@/components/module/DataGrid";
|
||||
import { openVerificationResultDialogIfNeeded } from "@/components/module/post-submit-verification-results";
|
||||
@@ -382,8 +384,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1533,6 +1534,10 @@ const SewageExcretaSlurgeInp = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const updateOperateDataButtonFunc = () => {
|
||||
console.log("운영 데이터 업데이트");
|
||||
};
|
||||
|
||||
const cnacelSubmitFunc = () => {
|
||||
void (async () => {
|
||||
try {
|
||||
@@ -1920,7 +1925,11 @@ const SewageExcretaSlurgeInp = () => {
|
||||
SGG_NM_DROPDOWN_TAB_KEYS.has(tabKey) &&
|
||||
col.fieldName === "sggNm"
|
||||
) {
|
||||
next = buildSggNmColumn(col, canEdit, sggOptions);
|
||||
next = buildSggNmColumn(
|
||||
col,
|
||||
canEdit,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
} else if (col.fieldName === "sggNm") {
|
||||
next = { ...col, editable: false as const, styleName: "rg-cell-readonly" };
|
||||
}
|
||||
@@ -2093,10 +2102,15 @@ const SewageExcretaSlurgeInp = () => {
|
||||
<LastYearDataButton
|
||||
getLastYearDataFunc={() => void lastYearDataFunc()}
|
||||
/>
|
||||
{activeTab === SEWAGE_EXCRETA_SLURGE_PROCESSING_FAC_STATUS_STATS_CD && (
|
||||
<UpdateOperateDataButton
|
||||
updateOperateDataButtonFunc={updateOperateDataButtonFunc}
|
||||
/>
|
||||
)}
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -453,8 +453,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -2062,7 +2061,7 @@ const SewagePipeInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={() => void submitFunc(false)} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -156,8 +156,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1150,7 +1149,7 @@ const SewagePipeMaintainInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -17,6 +17,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
import { statisticsInputSewageReservoirPumpApi } from "@/entities/statistics/api/input/statistics-input-sewage-reservoir-pump-service";
|
||||
@@ -176,8 +177,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1491,7 +1491,11 @@ const SewageReservoirPumpInp = () => {
|
||||
col.fieldName === "sggNm" &&
|
||||
canEdit
|
||||
) {
|
||||
return buildSggNmColumn(col, true, sggOptions);
|
||||
return buildSggNmColumn(
|
||||
col,
|
||||
true,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
}
|
||||
return col;
|
||||
}).map((col) => {
|
||||
@@ -1504,7 +1508,7 @@ const SewageReservoirPumpInp = () => {
|
||||
});
|
||||
}
|
||||
return map;
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, sggOptions, columnGuidesByTab]);
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, sggOptions, lastSearchedValues?.gugun, columnGuidesByTab]);
|
||||
|
||||
const verificationCellStyle = ({
|
||||
fieldName,
|
||||
@@ -1583,7 +1587,7 @@ const SewageReservoirPumpInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -160,8 +160,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1271,7 +1270,7 @@ const SewerageFinanceInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -815,8 +815,7 @@ const SeweragePenetrationRateInp = () => {
|
||||
toolbarGroupAllowed &&
|
||||
(baseShowSaveInToolbar ||
|
||||
baseShowEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -842,7 +841,7 @@ const SeweragePenetrationRateInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={() => submitFunc(false)} />}
|
||||
</>
|
||||
)}
|
||||
{statusInfo?.lclgvSbmsnSttsCd === '2' && submitOk && <CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />}
|
||||
{statusInfo?.lclgvSbmsnSttsCd === '2' && submitOk && inputPeriodCurrent && <CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -169,8 +169,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1202,7 +1201,7 @@ const SewerageServiceLevelInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -17,6 +17,7 @@ import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGa
|
||||
import { STATISTICS_INPUT_URL_PATH } from "@/shared/lib/stats-cd-input-navigation";
|
||||
import { useStatisticsInputPendingNavigation } from "@/shared/lib/use-statistics-input-pending-navigation";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { filterSggOptionsBySearchGugun } from "@/components/util/input/filter-sgg-options-by-search";
|
||||
import { nullableTrimmedString } from "@/components/util/input/nullableString";
|
||||
import { statisticsInputSewSupplyRateApi } from "@/entities/statistics/api/input/statistics-input-sew-supply-rate-service";
|
||||
import { statisticsInputWaterReuseApi } from "@/entities/statistics/api/input/statistics-input-water-reuse-service";
|
||||
@@ -208,8 +209,7 @@ function computeTabToolbarSnapshot(
|
||||
(hasRowData || treatAsSearched) &&
|
||||
(showSaveInToolbar ||
|
||||
showEnterableToolbarButtons ||
|
||||
showSubmittedInInputPeriodToolbar ||
|
||||
(isSubmitted && isAdminInfo));
|
||||
showSubmittedInInputPeriodToolbar);
|
||||
return { showSaveInToolbar, showEnterableToolbarButtons, showActionToolbarCard };
|
||||
}
|
||||
|
||||
@@ -1982,7 +1982,11 @@ const WaterReuseInp = () => {
|
||||
ARTICLE_EDIT_TAB_KEYS.has(tabKey) &&
|
||||
col.fieldName === "sggNm"
|
||||
) {
|
||||
next = buildSggNmColumn(col, canEdit, sggOptions);
|
||||
next = buildSggNmColumn(
|
||||
col,
|
||||
canEdit,
|
||||
filterSggOptionsBySearchGugun(sggOptions, lastSearchedValues?.gugun),
|
||||
);
|
||||
}
|
||||
const guide = columnGuidesByTab[tabKey]?.[col.fieldName]?.trim();
|
||||
return guide ? { ...next, tooltip: guide } : next;
|
||||
@@ -1993,7 +1997,7 @@ const WaterReuseInp = () => {
|
||||
});
|
||||
}
|
||||
return map;
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, columnGuidesByTab, sggOptions]);
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, columnGuidesByTab, sggOptions, lastSearchedValues?.gugun]);
|
||||
|
||||
const searchContextForToolbar = searchContextByTab.get(activeTab) ?? lastSearchedValues;
|
||||
const activeTabStatus = tabStatusInfoMap.get(activeTab) ?? null;
|
||||
@@ -2125,7 +2129,7 @@ const WaterReuseInp = () => {
|
||||
{submitOk && <SubmitButton submitFunc={submitFunc} />}
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && (
|
||||
{activeTabStatus?.lclgvSbmsnSttsCd === "2" && submitOk && inputPeriodEnterable && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import type { Sgg } from "@/entities/statistics/model/statistics-interface";
|
||||
|
||||
/** 조회 시군구가 전체(ALL)면 시도의 전체 옵션, 특정 구면 해당 구만 */
|
||||
export function filterSggOptionsBySearchGugun(
|
||||
sggOptions: readonly Sgg[],
|
||||
gugun: string | null | undefined,
|
||||
): Sgg[] {
|
||||
const selected = gugun?.trim();
|
||||
if (!selected || selected === "ALL") {
|
||||
return [...sggOptions];
|
||||
}
|
||||
return sggOptions.filter((s) => s.gugun === selected);
|
||||
}
|
||||
Reference in New Issue
Block a user