From e10ebf4219d8dfb918f0dc61409ee2a7046636c6 Mon Sep 17 00:00:00 2001 From: rsone001 Date: Mon, 11 May 2026 13:20:08 +0900 Subject: [PATCH] =?UTF-8?q?[st]=20feat:=20=EC=A7=91=EA=B3=84=202,6=20/=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=202,6=20/=20=ED=86=B5=EA=B3=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=EA=B4=80=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/st/src/components/css/DataGrid.css | 13 + apps/st/src/components/module/SearchForm.tsx | 32 ++ .../VerificationResultHistoryDialog.tsx | 39 +- .../VerificationSelectionReport.tsx | 2 +- .../input/MainFacilityMappingSaveDialog.tsx | 224 +++++++++ .../input/PublicSewageFacilityInp.tsx | 445 ++++++++++++------ .../statistics/input/SewagePipeInp.tsx | 68 +-- .../input/SeweragePenetrationRateInp.tsx | 59 +-- .../management/StatisticsInputManagement.tsx | 228 +++++++-- .../StatisticsInputPeriodDialog.tsx | 315 +++++++++++++ .../statistics/review/SewagePipeRvw.tsx | 74 ++- .../st/src/components/type/SearchForm.type.ts | 8 + .../MainFacilityInpColumn.ts | 6 +- .../PublicSewageFactColumn.ts | 6 +- .../statistics/api/statistics-service.ts | 47 +- ...-public-sewage-facility-input-interface.ts | 4 + .../statistics/model/statistics-interface.ts | 46 ++ 17 files changed, 1350 insertions(+), 266 deletions(-) create mode 100644 apps/st/src/components/statistics/input/MainFacilityMappingSaveDialog.tsx create mode 100644 apps/st/src/components/statistics/management/StatisticsInputPeriodDialog.tsx diff --git a/apps/st/src/components/css/DataGrid.css b/apps/st/src/components/css/DataGrid.css index 2d8eab48c..8a2d8d928 100644 --- a/apps/st/src/components/css/DataGrid.css +++ b/apps/st/src/components/css/DataGrid.css @@ -29,6 +29,13 @@ .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-verify-error-imr { @apply !bg-[#fff7bf] !text-[#b45309]; } + /* 검증결과 내역: 처리여부(prcsYn 0·4 미처리 등) */ + .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-vrf-prcs-bad { + @apply !font-semibold !text-[#dc2626]; + } + .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-vrf-prcs-ok { + @apply !font-semibold !text-[#3372cf]; + } .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-total { @apply !bg-[#e3eaf2]; } @@ -95,6 +102,12 @@ .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell { @apply !bg-[#545556] !text-[#fff]; } + .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-vrf-prcs-bad { + @apply !text-[#f87171]; + } + .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-vrf-prcs-ok { + @apply !text-[#3372cf]; + } } [data-theme="red"] { diff --git a/apps/st/src/components/module/SearchForm.tsx b/apps/st/src/components/module/SearchForm.tsx index cc938a282..c759b4a92 100644 --- a/apps/st/src/components/module/SearchForm.tsx +++ b/apps/st/src/components/module/SearchForm.tsx @@ -25,6 +25,7 @@ import { import { defaultSearchFormProps, + type SearchFormClsfCd, type SearchFormProps, type SearchFormValues, } from "../type/SearchForm.type"; @@ -81,6 +82,12 @@ const SearchForm = (props: SearchFormProps = {}) => { }, ); + const initialClsfCd: SearchFormClsfCd = (() => { + const d = props.defaultValues?.clsfCd; + if (d === "ALL" || d === "INPT" || d === "VRFC") return d; + return "ALL"; + })(); + const [values, setValues] = useState({ sido: props.defaultValues?.sido || "", gugun: props.defaultValues?.gugun || "", @@ -90,6 +97,7 @@ const SearchForm = (props: SearchFormProps = {}) => { bsnmCd: props.defaultValues?.bsnmCd || "", isDetail: false, isSummary: props.defaultValues?.isSummary || "", + clsfCd: initialClsfCd, }); const sggKey: [string, string, string, string] | null = @@ -134,6 +142,7 @@ const SearchForm = (props: SearchFormProps = {}) => { bsnmCd: "", isDetail: false, isSummary: "", + clsfCd: "ALL", }; setValues(resetValues); props.onReset?.(); @@ -250,6 +259,29 @@ const SearchForm = (props: SearchFormProps = {}) => { )} + {mergedProps.clsf && ( +
+ + +
+ )} {mergedProps.fctName && (