From 8552957fb5b750b0a3a5ff3d4a18acaff6b6677c Mon Sep 17 00:00:00 2001 From: rsone001 Date: Fri, 16 Jan 2026 11:52:23 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=2013.=20=ED=95=98=EC=88=98=EB=8F=84=20?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=88=98=EC=A4=80=20valueType,nu?= =?UTF-8?q?mberFormat=20=EC=B6=94=EA=B0=80,=EC=BB=AC=EB=9F=BC=EB=AA=85=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../review/SewerageServiceLevelRvw.tsx | 15 +++-- ...vw.ts => SewerageServiceLevelRvwColumn.ts} | 59 ++++++++++--------- 2 files changed, 40 insertions(+), 34 deletions(-) rename apps/st/src/components/util/column/review/{SewerageServiceLevelColumnRvw.ts => SewerageServiceLevelRvwColumn.ts} (64%) diff --git a/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx b/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx index 697d87ca8..a016a2a7b 100644 --- a/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx +++ b/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx @@ -7,8 +7,9 @@ import ApproveButton from "@/components/button/ApproveButton"; import ReviewOpinionButton from "@/components/button/ReviewOpinionButton"; import ReturnButton from "@/components/button/ReturnButton"; -import { SewerageServiceLevelInfoListRvw } from "@/components/util/column/review/SewerageServiceLevelColumnRvw"; +import { SewerageServiceLevelInfoListRvw } from "@/components/util/column/review/SewerageServiceLevelRvwColumn"; +// 하수도 통계 관리 13. 하수도 서비스 수준 const SewerageServiceLevelRvw = () => { const [rowDataMap, setRowDataMap] = useState[]>>(new Map()); @@ -35,11 +36,13 @@ const SewerageServiceLevelRvw = () => { return ( <> -
- - - - +
+
+ + + + +
diff --git a/apps/st/src/components/util/column/review/SewerageServiceLevelColumnRvw.ts b/apps/st/src/components/util/column/review/SewerageServiceLevelRvwColumn.ts similarity index 64% rename from apps/st/src/components/util/column/review/SewerageServiceLevelColumnRvw.ts rename to apps/st/src/components/util/column/review/SewerageServiceLevelRvwColumn.ts index 36a3fcedd..c673bbda5 100644 --- a/apps/st/src/components/util/column/review/SewerageServiceLevelColumnRvw.ts +++ b/apps/st/src/components/util/column/review/SewerageServiceLevelRvwColumn.ts @@ -1,3 +1,6 @@ +import { ValueType } from "realgrid"; + +// 하수도 통계 관리 13. 하수도 서비스 수준 const rawServiceLevelList = [ { tabKey: 'a', @@ -5,26 +8,26 @@ const rawServiceLevelList = [ rowStartNum: 2, fixedColumns: 2, columns: [ - /* 1. 기본 정보 (Band: Left) */ + /* 1. 기본 정보 */ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, - /* 2. 하수처리 인구 */ - { name: 'POPLTN_SM', fieldName: 'POPLTN_SM', header: { text: '하수처리인구\n(명)' } }, + /* 2. 하수처리 인구 (정수 반영) */ + { name: 'POPLTN_SM', fieldName: 'POPLTN_SM', header: { text: '하수처리인구\n(명)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, - /* 3. 민원유형 (단위: 건) */ - { name: 'CVPL_CM', fieldName: 'CVPL_CM', header: { text: '총계' } }, - { name: 'CVPL_DCWTR_QLTWTR', fieldName: 'CVPL_DCWTR_QLTWTR', header: { text: '악취' } }, - { name: 'CVPL_BSML', fieldName: 'CVPL_BSML', header: { text: '하수관로' } }, - { name: 'CVPL_FIVW', fieldName: 'CVPL_FIVW', header: { text: '배수설비' } }, - { name: 'CVPL_POLLUTN_ACDNT', fieldName: 'CVPL_POLLUTN_ACDNT', header: { text: '맨홀' } }, - { name: 'CVPL_SSOS', fieldName: 'CVPL_SSOS', header: { text: '정화조' } }, - { name: 'CVPL_CHRGE', fieldName: 'CVPL_CHRGE', header: { text: '하수도요금' } }, - { name: 'CVPL_ETC', fieldName: 'CVPL_ETC', header: { text: '기타' } }, + /* 3. 민원유형 (단위: 건 / 정수 반영) */ + { name: 'CVPL_CM', fieldName: 'CVPL_CM', header: { text: '총계' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_DCWTR_QLTWTR', fieldName: 'CVPL_DCWTR_QLTWTR', header: { text: '악취' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_BSML', fieldName: 'CVPL_BSML', header: { text: '하수관로' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_FIVW', fieldName: 'CVPL_FIVW', header: { text: '배수설비' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_POLLUTN_ACDNT', fieldName: 'CVPL_POLLUTN_ACDNT', header: { text: '맨홀' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_SSOS', fieldName: 'CVPL_SSOS', header: { text: '정화조' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_CHRGE', fieldName: 'CVPL_CHRGE', header: { text: '하수도요금' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CVPL_ETC', fieldName: 'CVPL_ETC', header: { text: '기타' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, - /* 4. 성과 지표 및 비고 */ - { name: 'STDR_POPLTN_PER_CVPL', fieldName: 'STDR_POPLTN_PER_CVPL', header: { text: '기준인구당\n민원건수\n(건/10,000명)' } }, + /* 4. 성과 지표 및 비고 (소수점 1자리 반영) */ + { name: 'STDR_POPLTN_PER_CVPL', fieldName: 'STDR_POPLTN_PER_CVPL', header: { text: '기준인구당\n민원건수\n(건/10,000명)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' }, { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } ], columnLayout: [ @@ -55,26 +58,26 @@ const rawServiceLevelList = [ rowStartNum: 2, fixedColumns: 5, columns: [ - /* 1. 기본 및 시설 정보 (Band: Left) */ + /* 1. 기본 및 시설 정보 */ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, { name: 'BSC_FCT_NM', fieldName: 'BSC_FCT_NM', header: { text: '처리장명' } }, - { name: 'FCT_CPC', fieldName: 'FCT_CPC', header: { text: '시설용량\n(㎥/일)' } }, + { name: 'FCT_CPC', fieldName: 'FCT_CPC', header: { text: '시설용량\n(㎥/일)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, - /* 2. 처리장 전체 면적 */ - { name: 'PRCPLT_AR', fieldName: 'PRCPLT_AR', header: { text: '처리장\n면적(㎡)' } }, + /* 2. 처리장 전체 면적 (소수점 1자리 반영) */ + { name: 'PRCPLT_AR', fieldName: 'PRCPLT_AR', header: { text: '처리장\n면적(㎡)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' }, - /* 3. 주민친화시설 면적 상세 (단위: ㎡) */ - { name: 'TOTAL_AR', fieldName: 'TOTAL_AR', header: { text: '총계' } }, - { name: 'RESTRM_AR', fieldName: 'RESTRM_AR', header: { text: '휴게시설' } }, - { name: 'CHILDPLAY_AR', fieldName: 'CHILDPLAY_AR', header: { text: '어린이놀이공간' } }, - { name: 'ALSFC_AR', fieldName: 'ALSFC_AR', header: { text: '체력단련시설' } }, - { name: 'PLGRND_AR', fieldName: 'PLGRND_AR', header: { text: '운동시설' } }, - { name: 'PRKPLCE_AR', fieldName: 'PRKPLCE_AR', header: { text: '주차장' } }, - { name: 'CTLSTT_AR', fieldName: 'CTLSTT_AR', header: { text: '교육 및\n문화시설' } }, - { name: 'NRPRK_AR', fieldName: 'NRPRK_AR', header: { text: '습지조성\n(생태공원)' } }, - { name: 'ETC_AR', fieldName: 'ETC_AR', header: { text: '기타' } }, + /* 3. 주민친화시설 면적 상세 (단위: ㎡ / 정수 반영) */ + { name: 'TOTAL_AR', fieldName: 'TOTAL_AR', header: { text: '총계' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'RESTRM_AR', fieldName: 'RESTRM_AR', header: { text: '휴게시설' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CHILDPLAY_AR', fieldName: 'CHILDPLAY_AR', header: { text: '어린이놀이공간' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'ALSFC_AR', fieldName: 'ALSFC_AR', header: { text: '체력단련시설' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'PLGRND_AR', fieldName: 'PLGRND_AR', header: { text: '운동시설' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'PRKPLCE_AR', fieldName: 'PRKPLCE_AR', header: { text: '주차장' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'CTLSTT_AR', fieldName: 'CTLSTT_AR', header: { text: '교육 및\n문화시설' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'NRPRK_AR', fieldName: 'NRPRK_AR', header: { text: '습지조성\n(생태공원)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, + { name: 'ETC_AR', fieldName: 'ETC_AR', header: { text: '기타' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' }, /* 4. 비고 */ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }