refactor: 02. 하수관로 tab 구조 개선 & grid footer 설정 수정

- 개별 컬럼 정의 파일들을 리스트로 묶어 TabDataGrid에 직접 전달하는 방식으로 변경
- footerSummary.ts에 포맷별(정수/소수점) 설정 객체 추가 및 export
- SeweragePenetrationRateMngColumn.ts 파일에 footer 적용
This commit is contained in:
2025-12-30 17:41:17 +09:00
parent 90c977300c
commit 074d82a3bd
11 changed files with 1182 additions and 835 deletions
@@ -1,5 +1,6 @@
import type { GridView, DataColumn } from "@/components/type/DataGrid.type";
// 그리드 푸터 합계 계산 함수 (계산 로직)
export const getFooterSummary = (grid: GridView, column: DataColumn) => {
// 데이터 소스에서 직접 합계 계산
const dataSource = grid.getDataSource();
@@ -8,6 +9,7 @@ export const getFooterSummary = (grid: GridView, column: DataColumn) => {
for (let i = 0; i < rowCount; i++) {
const cellValue = dataSource.getValue(i, column.fieldName);
// 문자열인 경우 숫자로 변환
const numericValue = typeof cellValue === 'string'
? Number(String(cellValue).replace(/,/g, ''))
@@ -19,4 +21,25 @@ export const getFooterSummary = (grid: GridView, column: DataColumn) => {
}
return sum;
};
};
// Footer 설정 객체 생성 함수
const createSumFooter = (format: string) => ({
expression: 'sum' as const,
numberFormat: format,
valueCallback: (grid: GridView, column: DataColumn) => {
return getFooterSummary(grid, column);
},
});
// 1. 정수형 : #,##0
export const footerInt = createSumFooter('#,##0');
// 2. 소수점 1자리 : #,##0.0
export const footerDecimal1 = createSumFooter('#,##0.0');
// 3. 소수점 2자리 : #,##0.00
export const footerDecimal2 = createSumFooter('#,##0.00');
// 4. 소수점 3자리 : #,##0.000
export const footerDecimal3 = createSumFooter('#,##0.000');