From cdbe6a855f7ad42737c6c2b36451f1c6adf11782 Mon Sep 17 00:00:00 2001 From: rsone001 Date: Wed, 19 Aug 2026 12:31:37 +0900 Subject: [PATCH] =?UTF-8?q?[ST]=20-=20fix:=20=EA=B2=80=ED=86=A0=20?= =?UTF-8?q?=ED=95=98=EC=88=98=EA=B4=80=EB=A1=9C=20=EC=BB=AC=EB=9F=BC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=97=91=EC=85=80=20=EB=82=B4?= =?UTF-8?q?=EB=B3=B4=EB=82=B4=EA=B8=B0=20=EC=85=80=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/st/src/components/css/DataGrid.css | 8 +-- apps/st/src/components/module/DataGrid.tsx | 23 ++------ apps/st/src/components/module/TabDataGrid.tsx | 26 ++------- .../column/input/ExcretaTreatFactInpColumn.ts | 6 +- .../PublicSewageFactColumn.ts | 6 +- .../column/input/PumpingStationInpColumn.ts | 8 +-- .../input/SeweragePenetrationRateInpColumn.ts | 6 +- .../PrivateSewageDesigStatusInpColumn.ts | 4 +- .../SepticTankStatusInpColumn.ts | 4 +- .../SewageTreatFactStatusInpColumn.ts | 4 +- .../ExcretaRelatedIndustryInpColumn.ts | 4 +- ...vateSewageTreatRelatedIndustryInpColumn.ts | 4 +- ...blicInstitutionExcretaIndustryInpColumn.ts | 4 +- ...PublicInstitutionSewerIndustryInpColumn.ts | 4 +- .../DigestorOperatingStatusInpColumn.ts | 6 +- .../ExcretaSlurgeProcessingStatusInpColumn.ts | 6 +- ...ewageSlurgeProcessingFacStatusInpColumn.ts | 4 +- .../SlurgeProcessingFacStatusInpColumn.ts | 6 +- .../sewagePipe/FactInstallStatusInpColumn.ts | 8 +-- .../sewagePipe/ManholeStatusInpColumn.ts | 6 +- .../sewagePipe/PipeDiameterStatusInpColumn.ts | 8 +-- .../sewagePipe/PipeTypeStatusInpColumn.ts | 8 +-- .../sewagePipe/RegionalFactStatusInpColumn.ts | 6 +- .../PipeDredgingStatusInpColumn.ts | 4 +- .../RepairStatusInpColumn.ts | 4 +- .../RainfallPumpStationInpColumn.ts | 6 +- .../SewageReservoirInpColumn.ts | 6 +- .../sewerageFinance/CauserBurdenInpColumn.ts | 4 +- .../SewerageChargeInpColumn.ts | 4 +- .../SewerageFinanceSettleInpColumn.ts | 4 +- .../SewerageUsageFeeInpColumn.ts | 4 +- .../ComplaintInpColumn.ts | 4 +- .../ResidentFriendlyFactInpColumn.ts | 8 +-- .../PublicSewageTreatWaterReuseInpColumn.ts | 4 +- .../RainFallUtilFactStatusInpColumn.ts | 4 +- .../RecycledWaterStatusInpColumn.ts | 4 +- ...atWaterReuseBusinessApprStatusInpColumn.ts | 4 +- ...eatWaterReuseDesignConstStatusInpColumn.ts | 4 +- .../util/column/review/SewagePipeRvwColumn.ts | 56 +++++++++++++------ .../st/src/components/util/gridExcelExport.ts | 31 +++++----- ...statistics-sewage-pipe-review-interface.ts | 12 ++-- 41 files changed, 165 insertions(+), 171 deletions(-) diff --git a/apps/st/src/components/css/DataGrid.css b/apps/st/src/components/css/DataGrid.css index b15945079..d6b187aa4 100644 --- a/apps/st/src/components/css/DataGrid.css +++ b/apps/st/src/components/css/DataGrid.css @@ -26,12 +26,12 @@ @apply !bg-[#f0f0f0] !text-[#666]; } /* 고정 컬럼 — readonly와 동일한 화면 스타일 (엑셀 export 시 exportStyleName에서 제외) */ - .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-fixed, - .rg-grid .rg-body .rg-data-cell.rg-cell-fixed { + .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-readonly, + .rg-grid .rg-body .rg-data-cell.rg-cell-readonly { @apply !bg-[#f0f0f0] !text-[#666]; } - .rg-grid .rg-fixed-body .rg-table .rg-data-row td.rg-cell-fixed, - .rg-grid .rg-fixed-body .rg-data-row .rg-data-cell.rg-cell-fixed { + .rg-grid .rg-fixed-body .rg-table .rg-data-row td.rg-cell-readonly, + .rg-grid .rg-fixed-body .rg-data-row .rg-data-cell.rg-cell-readonly { @apply !bg-[#f0f0f0] !text-[#666]; } .rg-grid .rg-body .rg-table .rg-data-row .rg-data-cell.rg-cell-readonly.rg-cell-rowtype-curr { diff --git a/apps/st/src/components/module/DataGrid.tsx b/apps/st/src/components/module/DataGrid.tsx index b56d7e83d..aa5f5b031 100644 --- a/apps/st/src/components/module/DataGrid.tsx +++ b/apps/st/src/components/module/DataGrid.tsx @@ -44,7 +44,7 @@ import { restoreGridColumnsAfterExcelExport, resolveColumnStyleName, shouldPrepareColumnsForExcelExport, - stripFixedStylesForExport, + disableAlternateRowStyle, } from "@/components/util/gridExcelExport"; import { useTabStore } from "@/store/tab-store"; @@ -53,10 +53,9 @@ function mergeCellStyleCallbackResult( extra: CellStyleCallbackResult | undefined, options: { mirrorExportStyle?: boolean; - stripFixedForExport?: boolean; } = {}, ): CellStyleCallbackResult { - const { mirrorExportStyle = false, stripFixedForExport = false } = options; + const { mirrorExportStyle = false } = options; let styleName: string | undefined; let extraObj: Extract | undefined; @@ -83,10 +82,6 @@ function mergeCellStyleCallbackResult( if (mirrorExportStyle && styleName) { result.exportStyleName = extraObj?.exportStyleName ?? styleName; - } else if (stripFixedForExport && styleName) { - const stripped = stripFixedStylesForExport(styleName); - if (stripped) result.exportStyleName = stripped; - else delete result.exportStyleName; } return result; @@ -224,8 +219,6 @@ function applyCellStyleCallbacksToColumns( const data = rowDataRef.current; const styleOptions = { mirrorExportStyle: excelExportApplyStylesRef.current, - stripFixedForExport: - isFixedColumn && !excelExportApplyStylesRef.current, }; if (itemIndex < 0 || itemIndex >= data.length) { return mergeCellStyleCallbackResult( @@ -1224,6 +1217,8 @@ useEffect(() => { ? releaseFixedOptionsForExcelExport(gridView, fixedColumns) : undefined; + disableAlternateRowStyle(gridView, true); + const exportBaseName = buildExcelExportFileBaseName( menuName, excelExportFileSuffix, @@ -1559,6 +1554,7 @@ useEffect(() => { (gridView.displayOptions as DisplayOptions).fitStyle = fitStyle; gridView.displayOptions.rowHeight = 30; + disableAlternateRowStyle(gridView); gridView.header.height = headerHeight; if (columns.some((c) => Boolean(resolveColumnTooltip(c)))) { (gridView.header as { showTooltip?: boolean }).showTooltip = true; @@ -1591,15 +1587,6 @@ useEffect(() => { "styleName", resolveColumnStyleName(column, fixedColumnNameSet), ); - if (fixedColumnNameSet.has(column.name) && !excelExportApplyStyles) { - gv.setColumnProperty?.( - column.name, - "exportStyleName", - stripFixedStylesForExport( - resolveColumnStyleName(column, fixedColumnNameSet), - ) || "", - ); - } applyColumnListEditorProperties(gv, column); }); if (columns.some((c) => isDropDownEditorColumn(c))) { diff --git a/apps/st/src/components/module/TabDataGrid.tsx b/apps/st/src/components/module/TabDataGrid.tsx index fcf9fa1f8..4f546c35e 100644 --- a/apps/st/src/components/module/TabDataGrid.tsx +++ b/apps/st/src/components/module/TabDataGrid.tsx @@ -17,7 +17,6 @@ import GridTopActionButton from "./GridTopActionButton"; function mergeCellStyleCallbackResult( baseStyleName: string | undefined, extra: CellStyleCallbackResult | undefined, - stripFixedForExport = false, ): CellStyleCallbackResult { let styleName: string | undefined; let extraObj: Extract | undefined; @@ -40,12 +39,6 @@ function mergeCellStyleCallbackResult( ...(styleName ? { styleName } : {}), }; - if (typeof result === "object" && stripFixedForExport && styleName) { - const stripped = stripFixedStylesForExport(styleName); - if (stripped) result.exportStyleName = stripped; - else delete result.exportStyleName; - } - return result; } import SplitDataGrid from "./SplitDataGrid"; @@ -65,7 +58,7 @@ import { restoreGridColumnsAfterExcelExport, resolveColumnStyleName, shouldPrepareColumnsForExcelExport, - stripFixedStylesForExport, + disableAlternateRowStyle, } from "@/components/util/gridExcelExport" import { useTabStore } from "@/store/tab-store" @@ -352,7 +345,6 @@ const TabDataGrid = ({ const gridCol = safeColumnByName(gv, column.name); if (!gridCol) continue; const baseStyleName = resolveColumnStyleName(column, fixedColumnNameSet); - const stripFixed = isFixedColumn; gridCol.styleCallback = (grid, dataCell) => { const dc = dataCell as { itemIndex?: number; @@ -364,7 +356,7 @@ const TabDataGrid = ({ const fieldName = dc?.dataField ?? dc?.fieldName ?? column.fieldName; const data = rowDataMapRef.current.get(tabKey) || []; if (itemIndex < 0 || itemIndex >= data.length) { - return mergeCellStyleCallbackResult(baseStyleName, undefined, stripFixed); + return mergeCellStyleCallbackResult(baseStyleName, undefined); } const row = data[itemIndex] as Record; const extra = hasUserCellStyleCallback @@ -375,7 +367,7 @@ const TabDataGrid = ({ grid: grid as CellStyleCallbackParams["grid"], }) : undefined; - return mergeCellStyleCallbackResult(baseStyleName, extra, stripFixed); + return mergeCellStyleCallbackResult(baseStyleName, extra); }; attachedCount += 1; } @@ -497,6 +489,8 @@ const TabDataGrid = ({ ) : undefined; + disableAlternateRowStyle(gridView, true); + const exportBaseName = buildExcelExportFileBaseName( menuName, tabLabel, @@ -1122,6 +1116,7 @@ const TabDataGrid = ({ gridView.setOptions({ summaryMode: "aggregate" }); + disableAlternateRowStyle(gridView); // footerUserSpans가 있는 경우 setColumnLayout으로 설정 const checkFooterUserSpans = (layout: unknown[]): boolean => { @@ -1255,15 +1250,6 @@ const TabDataGrid = ({ "styleName", styleName, ); - if (tabFixedSet.has(col.name)) { - gridView.setColumnProperty?.( - col.name, - "exportStyleName", - stripFixedStylesForExport( - styleName, - ) || "", - ); - } }); // 각 탭별 ref 초기화 diff --git a/apps/st/src/components/util/column/input/ExcretaTreatFactInpColumn.ts b/apps/st/src/components/util/column/input/ExcretaTreatFactInpColumn.ts index 16bf51fdd..ca8b794ce 100644 --- a/apps/st/src/components/util/column/input/ExcretaTreatFactInpColumn.ts +++ b/apps/st/src/components/util/column/input/ExcretaTreatFactInpColumn.ts @@ -8,11 +8,11 @@ import { ValueType } from "realgrid"; export const ExcretaTreatFactInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 기본 정보 - { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-fixed' }, + { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-readonly' }, { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '소재지' } }, { name: 'telNo', fieldName: 'telNo', header: { text: '전화번호' } }, diff --git a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts index 7f48e905c..9d2067de0 100644 --- a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts +++ b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts @@ -8,11 +8,11 @@ import { footerDecimal1, footerDecimal3,footerInt } from "@/components/util/grid export const PublicSewageFactColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-readonly' }, // 시설명 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명(500m³/일 이상/미만)' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명(500m³/일 이상/미만)' }, editable: false, styleName: 'rg-cell-readonly' }, // 소재지 { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '소재지' }, editable: false, styleName: 'rg-cell-readonly' }, diff --git a/apps/st/src/components/util/column/input/PumpingStationInpColumn.ts b/apps/st/src/components/util/column/input/PumpingStationInpColumn.ts index 40020c7c1..0dc19d9ec 100644 --- a/apps/st/src/components/util/column/input/PumpingStationInpColumn.ts +++ b/apps/st/src/components/util/column/input/PumpingStationInpColumn.ts @@ -35,12 +35,12 @@ function dropdownColumn( export const PumpingStationInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 기본 정보 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' }, styleName: 'rg-cell-fixed' }, - { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' }, styleName: 'rg-cell-readonly' }, + { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-readonly' }, dropdownColumn( { name: 'pumpSeNm', fieldName: 'pumpSeNm', header: { text: '구분(합류식 분류식)' } }, PUMPING_STATION_PUMP_SE_VALUES, diff --git a/apps/st/src/components/util/column/input/SeweragePenetrationRateInpColumn.ts b/apps/st/src/components/util/column/input/SeweragePenetrationRateInpColumn.ts index 389f6c11c..566f7ae48 100644 --- a/apps/st/src/components/util/column/input/SeweragePenetrationRateInpColumn.ts +++ b/apps/st/src/components/util/column/input/SeweragePenetrationRateInpColumn.ts @@ -7,9 +7,9 @@ import { ValueType } from "realgrid"; export const SeweragePenetrationRateInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly' }, // 수계 및 권역 { name: 'rvbsn', fieldName: 'rvbsn', header: { text: '수계' }, editable: false, styleName: 'rg-cell-readonly' }, diff --git a/apps/st/src/components/util/column/input/privateSewageFacility/PrivateSewageDesigStatusInpColumn.ts b/apps/st/src/components/util/column/input/privateSewageFacility/PrivateSewageDesigStatusInpColumn.ts index 43c28acf9..88cdc2e40 100644 --- a/apps/st/src/components/util/column/input/privateSewageFacility/PrivateSewageDesigStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/privateSewageFacility/PrivateSewageDesigStatusInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const PrivateSewageDesigStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 개인하수도관리지역공고현황 { name: 'indvSwagePbancRgnCnt', fieldName: 'indvSwagePbancRgnCnt', header: { text: '공고지역(개소)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, diff --git a/apps/st/src/components/util/column/input/privateSewageFacility/SepticTankStatusInpColumn.ts b/apps/st/src/components/util/column/input/privateSewageFacility/SepticTankStatusInpColumn.ts index b7de5f242..ef1d1aa1c 100644 --- a/apps/st/src/components/util/column/input/privateSewageFacility/SepticTankStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/privateSewageFacility/SepticTankStatusInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SepticTankStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 총 시설 수 — (B+C)/2 + (E+F)/2 = A + D { diff --git a/apps/st/src/components/util/column/input/privateSewageFacility/SewageTreatFactStatusInpColumn.ts b/apps/st/src/components/util/column/input/privateSewageFacility/SewageTreatFactStatusInpColumn.ts index 2bd6c1094..2c247a3de 100644 --- a/apps/st/src/components/util/column/input/privateSewageFacility/SewageTreatFactStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/privateSewageFacility/SewageTreatFactStatusInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SewageTreatFactStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 총계 { diff --git a/apps/st/src/components/util/column/input/sewageExcretaRelated/ExcretaRelatedIndustryInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaRelated/ExcretaRelatedIndustryInpColumn.ts index 3f7b80b78..e8e0991f0 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaRelated/ExcretaRelatedIndustryInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaRelated/ExcretaRelatedIndustryInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const ExcretaRelatedIndustryInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 업체수(개소) { name: 'bzentyCnt', fieldName: 'bzentyCnt', header: { text: '업체수(개소)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, diff --git a/apps/st/src/components/util/column/input/sewageExcretaRelated/PrivateSewageTreatRelatedIndustryInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaRelated/PrivateSewageTreatRelatedIndustryInpColumn.ts index 08de0039b..53fa25308 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaRelated/PrivateSewageTreatRelatedIndustryInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaRelated/PrivateSewageTreatRelatedIndustryInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const PrivateSewageTreatRelatedIndustryInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 개인하수처리시설 설계·시공업 { name: 'designMdsrCnt', fieldName: 'designMdsrCnt', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, diff --git a/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionExcretaIndustryInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionExcretaIndustryInpColumn.ts index 27e3a00e0..7df3d801c 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionExcretaIndustryInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionExcretaIndustryInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const PublicInstitutionExcretaIndustryInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 직제 { name: 'ognzNm', fieldName: 'ognzNm', header: { text: '직 제' } }, diff --git a/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionSewerIndustryInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionSewerIndustryInpColumn.ts index 43ff18b6a..176c11a1a 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionSewerIndustryInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaRelated/PublicInstitutionSewerIndustryInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const PublicInstitutionSewerIndustryInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 직제 { name: 'ognzNm', fieldName: 'ognzNm', header: { text: '직 제' } }, diff --git a/apps/st/src/components/util/column/input/sewageExcretaSlurge/DigestorOperatingStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaSlurge/DigestorOperatingStatusInpColumn.ts index 9572ac597..858febbed 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaSlurge/DigestorOperatingStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaSlurge/DigestorOperatingStatusInpColumn.ts @@ -49,11 +49,11 @@ function dropdownColumn( export const DigestorOperatingStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 하수처리장명 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false, styleName: 'rg-cell-readonly' }, // 소화조 운영현황 dropdownColumn( diff --git a/apps/st/src/components/util/column/input/sewageExcretaSlurge/ExcretaSlurgeProcessingStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaSlurge/ExcretaSlurgeProcessingStatusInpColumn.ts index 7ca39ac9d..b78d41b06 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaSlurge/ExcretaSlurgeProcessingStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaSlurge/ExcretaSlurgeProcessingStatusInpColumn.ts @@ -5,11 +5,11 @@ import { ValueType } from "realgrid"; export const ExcretaSlurgeProcessingStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 분뇨처리장명 - { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '분뇨 처리장명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '분뇨 처리장명' }, editable: false, styleName: 'rg-cell-readonly' }, // 발생량 { diff --git a/apps/st/src/components/util/column/input/sewageExcretaSlurge/SewageSlurgeProcessingFacStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaSlurge/SewageSlurgeProcessingFacStatusInpColumn.ts index 14a8b8e77..2c779ccd3 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaSlurge/SewageSlurgeProcessingFacStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaSlurge/SewageSlurgeProcessingFacStatusInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SewageSlurgeProcessingFacStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 찌꺼기처리시설명 { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '찌꺼기처리시설명' } }, diff --git a/apps/st/src/components/util/column/input/sewageExcretaSlurge/SlurgeProcessingFacStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewageExcretaSlurge/SlurgeProcessingFacStatusInpColumn.ts index 9e9b56ada..1d3e11f0d 100644 --- a/apps/st/src/components/util/column/input/sewageExcretaSlurge/SlurgeProcessingFacStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageExcretaSlurge/SlurgeProcessingFacStatusInpColumn.ts @@ -5,11 +5,11 @@ import { ValueType } from "realgrid"; export const SlurgeProcessingFacStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 하수처리장명 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false, styleName: 'rg-cell-readonly' }, // 찌꺼기발생량(톤/년, 탈수기준) { diff --git a/apps/st/src/components/util/column/input/sewagePipe/FactInstallStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipe/FactInstallStatusInpColumn.ts index 2d78ab54a..83e0ee0c6 100644 --- a/apps/st/src/components/util/column/input/sewagePipe/FactInstallStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipe/FactInstallStatusInpColumn.ts @@ -7,12 +7,12 @@ import { ValueType } from "realgrid"; export const FactInstallStatusInpColumn = { columns: [ // 행정구역 (ctpvNm은 commonInfo에서 주입) - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 하수처리장 정보 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly' }, { name: 'prcsFcltCpct', fieldName: 'prcsFcltCpct', header: { text: '하수처리시설용량(m³/일)' }, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, // 처리구역면적(km²) diff --git a/apps/st/src/components/util/column/input/sewagePipe/ManholeStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipe/ManholeStatusInpColumn.ts index 9d8bd334b..9f02da89a 100644 --- a/apps/st/src/components/util/column/input/sewagePipe/ManholeStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipe/ManholeStatusInpColumn.ts @@ -136,21 +136,21 @@ export const ManholeStatusInpColumn = { header: { text: "시도" }, footer: { text: "합계" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "emphsMngSeNm", diff --git a/apps/st/src/components/util/column/input/sewagePipe/PipeDiameterStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipe/PipeDiameterStatusInpColumn.ts index 1357eabee..8e5efcf58 100644 --- a/apps/st/src/components/util/column/input/sewagePipe/PipeDiameterStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipe/PipeDiameterStatusInpColumn.ts @@ -12,28 +12,28 @@ export const PipeDiameterStatusInpColumn = { header: { text: "시도" }, footer: { text: "합계" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "pipeSeNm", fieldName: "pipeSeNm", header: { text: "관종" }, editable: false, - styleName: 'rg-cell-fixed', + styleName: 'rg-cell-readonly', }, { name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "pdmtByTsmWhol", diff --git a/apps/st/src/components/util/column/input/sewagePipe/PipeTypeStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipe/PipeTypeStatusInpColumn.ts index 3634e0f3b..a83c59195 100644 --- a/apps/st/src/components/util/column/input/sewagePipe/PipeTypeStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipe/PipeTypeStatusInpColumn.ts @@ -90,14 +90,14 @@ export const PipeTypeStatusInpColumn = { header: { text: "시도" }, footer: { text: "합계" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "pipeSeNm", @@ -105,14 +105,14 @@ export const PipeTypeStatusInpColumn = { header: { text: "관종" }, footer: { text: "합계" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false, - styleName: "rg-cell-fixed", + styleName: "rg-cell-readonly", }, { name: "pipeByPrstWhol", diff --git a/apps/st/src/components/util/column/input/sewagePipe/RegionalFactStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipe/RegionalFactStatusInpColumn.ts index 1904bea2b..d105e533a 100644 --- a/apps/st/src/components/util/column/input/sewagePipe/RegionalFactStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipe/RegionalFactStatusInpColumn.ts @@ -6,9 +6,9 @@ import { ValueType } from "realgrid"; export const RegionalFactStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly' }, // 기본 정보 { name: 'goalYr', fieldName: 'goalYr', header: { text: '하수정비기본계획목표년도' } }, diff --git a/apps/st/src/components/util/column/input/sewagePipeMaintain/PipeDredgingStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipeMaintain/PipeDredgingStatusInpColumn.ts index e1e4289e5..bdcac6d19 100644 --- a/apps/st/src/components/util/column/input/sewagePipeMaintain/PipeDredgingStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipeMaintain/PipeDredgingStatusInpColumn.ts @@ -6,8 +6,8 @@ import { footerDecimal1, footerDecimal2, footerInt } from "@/components/util/gri export const PipeDredgingStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구명' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구명' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-readonly' }, // 하수관로 총 시설연장 { name: 'wholFcltPrlg', fieldName: 'wholFcltPrlg', header: { text: '하수관로총시설연장(m)' }, editable: false, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00', styleName: 'rg-cell-readonly' }, diff --git a/apps/st/src/components/util/column/input/sewagePipeMaintain/RepairStatusInpColumn.ts b/apps/st/src/components/util/column/input/sewagePipeMaintain/RepairStatusInpColumn.ts index 25bc2f942..57fb2689c 100644 --- a/apps/st/src/components/util/column/input/sewagePipeMaintain/RepairStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewagePipeMaintain/RepairStatusInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const RepairStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구명' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구명' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-readonly' }, // 개·보수관로 > 전체보수(m) { diff --git a/apps/st/src/components/util/column/input/sewageReservoirPump/RainfallPumpStationInpColumn.ts b/apps/st/src/components/util/column/input/sewageReservoirPump/RainfallPumpStationInpColumn.ts index 2cabdd95d..35034f0e5 100644 --- a/apps/st/src/components/util/column/input/sewageReservoirPump/RainfallPumpStationInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageReservoirPump/RainfallPumpStationInpColumn.ts @@ -31,10 +31,10 @@ function dropdownColumn( // 하수도 통계 관리 > 04.하수저류시설 및 빗물펌프장 > tab 2: 빗물펌프장 export const RainfallPumpStationInpColumn = { columns: [ - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, - { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-fixed' }, + { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-readonly' }, { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '위치' } }, dropdownColumn( diff --git a/apps/st/src/components/util/column/input/sewageReservoirPump/SewageReservoirInpColumn.ts b/apps/st/src/components/util/column/input/sewageReservoirPump/SewageReservoirInpColumn.ts index 017a83a85..66b6701f2 100644 --- a/apps/st/src/components/util/column/input/sewageReservoirPump/SewageReservoirInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewageReservoirPump/SewageReservoirInpColumn.ts @@ -50,11 +50,11 @@ function oxYnDropdownColumn( export const SewageReservoirInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 기본 정보 - { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-fixed' }, + { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-readonly' }, { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '위치' } }, { name: 'oprtngStrtYmd', diff --git a/apps/st/src/components/util/column/input/sewerageFinance/CauserBurdenInpColumn.ts b/apps/st/src/components/util/column/input/sewerageFinance/CauserBurdenInpColumn.ts index 07bb04ddd..9a7087cbc 100644 --- a/apps/st/src/components/util/column/input/sewerageFinance/CauserBurdenInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageFinance/CauserBurdenInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const CauserBurdenInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 부과액 { name: 'levyEvntcsCnt', fieldName: 'levyEvntcsCnt', header: { text: '건수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, diff --git a/apps/st/src/components/util/column/input/sewerageFinance/SewerageChargeInpColumn.ts b/apps/st/src/components/util/column/input/sewerageFinance/SewerageChargeInpColumn.ts index e962d0ca7..b6bdb0f4f 100644 --- a/apps/st/src/components/util/column/input/sewerageFinance/SewerageChargeInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageFinance/SewerageChargeInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SewerageChargeInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 요금 { name: 'anlLevyQnt', fieldName: 'anlLevyQnt', header: { text: '연간조정량(m³)(A)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' }, diff --git a/apps/st/src/components/util/column/input/sewerageFinance/SewerageFinanceSettleInpColumn.ts b/apps/st/src/components/util/column/input/sewerageFinance/SewerageFinanceSettleInpColumn.ts index d70f84063..d75f5a06d 100644 --- a/apps/st/src/components/util/column/input/sewerageFinance/SewerageFinanceSettleInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageFinance/SewerageFinanceSettleInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SewerageFinanceSettleInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 재정별 사업비 { diff --git a/apps/st/src/components/util/column/input/sewerageFinance/SewerageUsageFeeInpColumn.ts b/apps/st/src/components/util/column/input/sewerageFinance/SewerageUsageFeeInpColumn.ts index a2b7632b9..e26f4dbc6 100644 --- a/apps/st/src/components/util/column/input/sewerageFinance/SewerageUsageFeeInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageFinance/SewerageUsageFeeInpColumn.ts @@ -5,8 +5,8 @@ import { ValueType } from "realgrid"; export const SewerageUsageFeeInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 총계 > 부과액 { diff --git a/apps/st/src/components/util/column/input/sewerageServiceLevel/ComplaintInpColumn.ts b/apps/st/src/components/util/column/input/sewerageServiceLevel/ComplaintInpColumn.ts index 272447ad6..b98e431c7 100644 --- a/apps/st/src/components/util/column/input/sewerageServiceLevel/ComplaintInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageServiceLevel/ComplaintInpColumn.ts @@ -15,8 +15,8 @@ const COMPLAINT_TYPE_COUNT_FIELDS = [ export const ComplaintInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 하수처리인구(명) { name: 'swtrmtPpltnCnt', fieldName: 'swtrmtPpltnCnt', header: { text: '하수처리인구(명)' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0', styleName: 'rg-cell-readonly' }, diff --git a/apps/st/src/components/util/column/input/sewerageServiceLevel/ResidentFriendlyFactInpColumn.ts b/apps/st/src/components/util/column/input/sewerageServiceLevel/ResidentFriendlyFactInpColumn.ts index d02e78ef8..960b01d04 100644 --- a/apps/st/src/components/util/column/input/sewerageServiceLevel/ResidentFriendlyFactInpColumn.ts +++ b/apps/st/src/components/util/column/input/sewerageServiceLevel/ResidentFriendlyFactInpColumn.ts @@ -16,12 +16,12 @@ const RESIDENT_FRIENDLY_FACILITY_AREA_FIELDS = [ export const ResidentFriendlyFactInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 시설 기본 정보 - { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'fcltCpct', fieldName: 'fcltCpct', header: { text: '시설용량(m³/일)' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0', styleName: 'rg-cell-fixed' }, + { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'fcltCpct', fieldName: 'fcltCpct', header: { text: '시설용량(m³/일)' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0', styleName: 'rg-cell-readonly' }, // 처리장면적(㎡) { name: 'tmplntArea', fieldName: 'tmplntArea', header: { text: '처리장면적(㎡)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' }, diff --git a/apps/st/src/components/util/column/input/waterReuse/PublicSewageTreatWaterReuseInpColumn.ts b/apps/st/src/components/util/column/input/waterReuse/PublicSewageTreatWaterReuseInpColumn.ts index f3f62e34f..709cc473d 100644 --- a/apps/st/src/components/util/column/input/waterReuse/PublicSewageTreatWaterReuseInpColumn.ts +++ b/apps/st/src/components/util/column/input/waterReuse/PublicSewageTreatWaterReuseInpColumn.ts @@ -54,8 +54,8 @@ const PUBLIC_SEWAGE_REUSE_USE_QNT_SUM_FIELDS = [ export const PublicSewageTreatWaterReuseInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' }, // 하수처리장 { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명' }, editable: false, styleName: 'rg-cell-readonly' }, diff --git a/apps/st/src/components/util/column/input/waterReuse/RainFallUtilFactStatusInpColumn.ts b/apps/st/src/components/util/column/input/waterReuse/RainFallUtilFactStatusInpColumn.ts index 85816726e..f9aed315f 100644 --- a/apps/st/src/components/util/column/input/waterReuse/RainFallUtilFactStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/waterReuse/RainFallUtilFactStatusInpColumn.ts @@ -56,8 +56,8 @@ function dropdownColumn( export const RainFallUtilFactStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 시설명 { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' } }, diff --git a/apps/st/src/components/util/column/input/waterReuse/RecycledWaterStatusInpColumn.ts b/apps/st/src/components/util/column/input/waterReuse/RecycledWaterStatusInpColumn.ts index ebf53215c..b4e32cae3 100644 --- a/apps/st/src/components/util/column/input/waterReuse/RecycledWaterStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/waterReuse/RecycledWaterStatusInpColumn.ts @@ -63,8 +63,8 @@ function dropdownColumn( export const RecycledWaterStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 건축물명/개발사업명 { name: 'fcltNm', fieldName: 'fcltNm', header: { text: '건축물명/개발사업명' } }, diff --git a/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseBusinessApprStatusInpColumn.ts b/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseBusinessApprStatusInpColumn.ts index 6e33e1f35..5565012ae 100644 --- a/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseBusinessApprStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseBusinessApprStatusInpColumn.ts @@ -2,8 +2,8 @@ export const TreatWaterReuseBusinessApprStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 상호(명칭) { name: 'bplcNm', fieldName: 'bplcNm', header: { text: '상호(명칭)' } }, diff --git a/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseDesignConstStatusInpColumn.ts b/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseDesignConstStatusInpColumn.ts index 496c02eed..33e0d644a 100644 --- a/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseDesignConstStatusInpColumn.ts +++ b/apps/st/src/components/util/column/input/waterReuse/TreatWaterReuseDesignConstStatusInpColumn.ts @@ -2,8 +2,8 @@ export const TreatWaterReuseDesignConstStatusInpColumn = { columns: [ // 행정구역 - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-fixed' }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-fixed' }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' }, // 상호(명칭) { name: 'bplcNm', fieldName: 'bplcNm', header: { text: '상호(명칭)' } }, diff --git a/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts b/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts index f11c29d4d..34e7be09f 100644 --- a/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts +++ b/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts @@ -321,7 +321,7 @@ const rawList = [ tabKey: 'ST00020003_PLACEHOLDER', tabLabel: '관종별 현황', rowStartNum: 2, - fixedColumns: 2, + fixedColumns: 1, columns: [], columnLayout: [], }, @@ -759,16 +759,32 @@ export const getST00020003RvwConfig = (statsYr: string | number) => { (_, i) => rvwStartYear + i, ); + const makeFooterValueCallback = (divisionIndex: number) => ({ + valueCallback: (grid: GridView) => { + const dataSource = grid.getDataSource(); + const uniqueValues = new Set(); + for (let i = 0; i < dataSource.getRowCount(); i++) { + const val = dataSource.getValue(i, 'displayYear'); + if (val) uniqueValues.add(String(val)); + } + const divisionValues = Array.from(uniqueValues); + return divisionValues.length > divisionIndex + ? divisionValues[divisionIndex] + '합계' + : divisionIndex === 0 ? '합계' : ''; + }, + }); + return { tabKey: 'ST00020003', tabLabel: '관종별 현황', rowStartNum: 2, - fixedColumns: 2, + fixedColumns: 3, columns: [ - { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, - { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, - { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, - { name: 'swrgPipeNm', fieldName: 'swrgPipeNm', header: { text: '관종' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true }, + { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true, footer: [makeFooterValueCallback(0), makeFooterValueCallback(1)] }, + { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, + { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, + { name: 'swrgPipeNm', fieldName: 'swrgPipeNm', header: { text: '관종' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true }, + { name: 'displayYear', fieldName: 'displayYear', header: { text: '구분' }, editable: false, styleName: 'rg-cell-readonly', sortdisable: true, footer: [makeFooterValueCallback(0), makeFooterValueCallback(1)] }, { name: 'pipeByPrstWhol', fieldName: 'pipeByPrstWhol', header: { text: '계' }, footer: footerDecimal1ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0', editable: false, styleName: 'rg-cell-readonly' }, { name: 'lyngPrlg', fieldName: 'lyngPrlg', header: { text: '매설연장(m)' }, footer: footerDecimal1ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0', editable: false, styleName: 'rg-cell-readonly' }, { name: 'dmltnPrlg', fieldName: 'dmltnPrlg', header: { text: '철거연장(m)' }, footer: footerDecimal1ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0', editable: false, styleName: 'rg-cell-readonly' }, @@ -783,8 +799,14 @@ export const getST00020003RvwConfig = (statsYr: string | number) => { { name: 'areaGroup', header: { text: '행정구역' }, - items: ['ctpvNm', 'sggNm', 'admdstNm', 'swrgPipeNm'], + items: [ + { column: 'ctpvNm', footerUserSpans: [{ colspan: 5 }, { colspan: 5 }] }, + 'sggNm', + 'admdstNm', + ], }, + 'swrgPipeNm', + 'displayYear', { name: 'summaryGroup', header: { text: '총계' }, items: ['pipeByPrstWhol', 'lyngPrlg', 'dmltnPrlg'] }, ...yearRange.map((yr) => ({ name: `group_${yr}`, @@ -853,12 +875,12 @@ export const getST00020005RvwConfig = (statsYr: string | number) => { { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true, sortdisable: true }, { name: 'emphsMngSeNm', fieldName: 'emphsMngSeNm', header: { text: '집중강우\n중점관리\n구역구분' }, editable: false, styleName: 'rg-cell-readonly', mergeCells: true }, { name: 'displayYear', fieldName: 'displayYear', header: { text: '구분' }, editable: false, styleName: 'rg-cell-readonly', sortdisable: true, footer: [makeFooterValueCallback(0), makeFooterValueCallback(1)] }, - { name: 'totalWholMnhlCnt', fieldName: 'totalWholMnhlCnt', header: { text: '계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, - { name: 'totalStep1MnhlCnt', fieldName: 'totalStep1MnhlCnt', header: { text: '주철' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, - { name: 'totalStep2MnhlCnt', fieldName: 'totalStep2MnhlCnt', header: { text: '주철(조화)' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, - { name: 'totalStep3MnhlCnt', fieldName: 'totalStep3MnhlCnt', header: { text: '콘크리트' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, - { name: 'totalStep4MnhlCnt', fieldName: 'totalStep4MnhlCnt', header: { text: '기타' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, - { name: 'totalStep5MnhlCnt', fieldName: 'totalStep5MnhlCnt', header: { text: '추락방지시설\n설치맨홀(개)' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totWholMnhlCnt', fieldName: 'totWholMnhlCnt', header: { text: '계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totStep1MnhlCnt', fieldName: 'totStep1MnhlCnt', header: { text: '주철' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totStep2MnhlCnt', fieldName: 'totStep2MnhlCnt', header: { text: '주철(조화)' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totStep3MnhlCnt', fieldName: 'totStep3MnhlCnt', header: { text: '콘크리트' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totStep4MnhlCnt', fieldName: 'totStep4MnhlCnt', header: { text: '기타' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, + { name: 'totStep5MnhlCnt', fieldName: 'totStep5MnhlCnt', header: { text: '추락방지시설\n설치맨홀(개)' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0', editable: false, styleName: 'rg-cell-readonly' }, ...yearRange.flatMap(mnhlYearCols), { name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' }, editable: false, styleName: 'rg-cell-readonly' }, ], @@ -876,10 +898,10 @@ export const getST00020005RvwConfig = (statsYr: string | number) => { 'displayYear', { name: 'totGroup', - header: { text: '총계' }, + header: { text: '연도별총계' }, items: [ - { name: 'totMtrlGroup', header: { text: '맨홀뚜껑 재질(개)' }, items: ['totalWholMnhlCnt', 'totalStep1MnhlCnt', 'totalStep2MnhlCnt', 'totalStep3MnhlCnt', 'totalStep4MnhlCnt'] }, - 'totalStep5MnhlCnt', + { name: 'totMtrlGroup', header: { text: '맨홀뚜껑 재질(개)' }, items: ['totWholMnhlCnt', 'totStep1MnhlCnt', 'totStep2MnhlCnt', 'totStep3MnhlCnt', 'totStep4MnhlCnt'] }, + 'totStep5MnhlCnt', ], }, ...yearRange.map(mnhlYearLayout), @@ -903,7 +925,7 @@ const st00020003RvwPlaceholder = { tabKey: 'ST00020003', tabLabel: '관종별 현황', rowStartNum: 2, - fixedColumns: 2, + fixedColumns: 3, columns: [] as ReturnType['columns'], columnLayout: [] as ReturnType['columnLayout'], }; diff --git a/apps/st/src/components/util/gridExcelExport.ts b/apps/st/src/components/util/gridExcelExport.ts index 2a658a006..b067bfbc1 100644 --- a/apps/st/src/components/util/gridExcelExport.ts +++ b/apps/st/src/components/util/gridExcelExport.ts @@ -200,14 +200,9 @@ export function shouldPrepareColumnsForExcelExport(columns: ColumnConfig[]): boo } /** 고정(frozen) 컬럼 표시용 — rg-cell-readonly와 동일한 화면 스타일 */ -export const FIXED_CELL_STYLE_NAME = "rg-cell-fixed"; +export const FIXED_CELL_STYLE_NAME = "rg-cell-readonly"; -const FIXED_EXPORT_STRIP_CLASSES = new Set([ - FIXED_CELL_STYLE_NAME, - "rg-cell-readonly", -]); - -/** 고정 컬럼 styleName에 rg-cell-fixed 추가 */ +/** 고정 컬럼 styleName에 rg-cell-readonly 추가 */ export function appendFixedCellStyle(styleName: string | undefined): string { const parts = (styleName ?? "").split(/\s+/).filter(Boolean); if (!parts.includes(FIXED_CELL_STYLE_NAME)) { @@ -216,15 +211,6 @@ export function appendFixedCellStyle(styleName: string | undefined): string { return parts.join(" "); } -/** 엑셀 export 시 고정/readonly 배경·글자색 클래스 제거 (검증 등 다른 클래스는 유지) */ -export function stripFixedStylesForExport(styleName: string | undefined): string { - if (!styleName) return ""; - return styleName - .split(/\s+/) - .filter((cls) => cls && !FIXED_EXPORT_STRIP_CLASSES.has(cls)) - .join(" "); -} - export function resolveColumnStyleName( column: { name: string; styleName?: string }, fixedColumnNameSet: Set, @@ -301,6 +287,19 @@ export function restoreFixedOptionsAfterExcelExport( } } +/** RealGrid 기본 교차행(rg-alternate-row) 배경이 엑셀에 들어가지 않도록 끔 */ +export function disableAlternateRowStyle( + gridView: GridView, + refresh = false, +): void { + const gv = gridView as { + displayOptions?: { useAlternateRowStyle?: boolean }; + refresh?: () => void; + }; + if (gv.displayOptions) gv.displayOptions.useAlternateRowStyle = false; + if (refresh) gv.refresh?.(); +} + const INVALID_EXCEL_FILE_NAME_CHARS = /[\\/:*?"<>|]/g; function sanitizeExcelFileNamePart(value: string): string { diff --git a/apps/st/src/entities/statistics/model/statistics-sewage-pipe-review-interface.ts b/apps/st/src/entities/statistics/model/statistics-sewage-pipe-review-interface.ts index 10f7f40b7..dd0f4884f 100644 --- a/apps/st/src/entities/statistics/model/statistics-sewage-pipe-review-interface.ts +++ b/apps/st/src/entities/statistics/model/statistics-sewage-pipe-review-interface.ts @@ -258,12 +258,12 @@ export interface SewagePipeReviewManholeItem { emphsMngSeCd: string; emphsMngSeNm?: string; - totalWholMnhlCnt: number; - totalStep1MnhlCnt: number; - totalStep2MnhlCnt: number; - totalStep3MnhlCnt: number; - totalStep4MnhlCnt: number; - totalStep5MnhlCnt: number; + totWholMnhlCnt: number; + totStep1MnhlCnt: number; + totStep2MnhlCnt: number; + totStep3MnhlCnt: number; + totStep4MnhlCnt: number; + totStep5MnhlCnt: number; rmrk: string | null;