diff --git a/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx b/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx index 68e4e9e7d..2de818db3 100644 --- a/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx +++ b/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx @@ -1,11 +1,49 @@ import SearchForm from "@/components/module/SearchForm"; +import TabDataGrid from "@/components/module/TabDataGrid"; +import SaveButton from "@/components/button/SaveButton"; +import ApproveButton from "@/components/button/ApproveButton"; +import ReviewOpinionButton from "@/components/button/ReviewOpinionButton"; +import ReturnButton from "@/components/button/ReturnButton"; + +import { SewagePipeMaintainColumnInfoListRvw } from "@/components/util/column/SewagePipeMaintainColumnRvw"; + const SewagePipeMaintainRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + return ( - <> - + <> + + +
+ + + + +
+ ); -} +}; export default SewagePipeMaintainRvw; \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts b/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts new file mode 100644 index 000000000..c933ebead --- /dev/null +++ b/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts @@ -0,0 +1,164 @@ + +export const SewagePipeMaintainColumnInfoListRvw = [ + { + tabKey: 'a', + tabLabel: '개보수', + rowStartNum: 4, // XML의 rowspan="4" 반영 + fixedColumns: 2, // 순번, 시도, 시군구, 행정코드, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 전체보수 (단위: m) */ + { name: 'RPAIR_PIPE_SM', fieldName: 'RPAIR_PIPE_SM', header: { text: '계' } }, + { name: 'RPAIR_CMBN_PIPE', fieldName: 'RPAIR_CMBN_PIPE', header: { text: '합류식' } }, + { name: 'RPAIR_RAINWTR_PIPE', fieldName: 'RPAIR_RAINWTR_PIPE', header: { text: '우수' } }, + { name: 'RPAIR_PLTWTR_PIPE', fieldName: 'RPAIR_PLTWTR_PIPE', header: { text: '오수' } }, + + /* 3. 부분보수 (단위: 개소) */ + { name: 'RPAIR_PIPE_SM2', fieldName: 'RPAIR_PIPE_SM2', header: { text: '계' } }, + { name: 'RPAIR_CMBN_PIPE2', fieldName: 'RPAIR_CMBN_PIPE2', header: { text: '합류식' } }, + { name: 'RPAIR_RAINWTR_PIPE2', fieldName: 'RPAIR_RAINWTR_PIPE2', header: { text: '우수' } }, + { name: 'RPAIR_PLTWTR_PIPE2', fieldName: 'RPAIR_PLTWTR_PIPE2', header: { text: '오수' } }, + + /* 4. 부속시설 (개소) */ + { name: 'MNHLE_SITE', fieldName: 'MNHLE_SITE', header: { text: '합류식\n맨홀' } }, + { name: 'PLTWTR_MNHLE_SITE', fieldName: 'PLTWTR_MNHLE_SITE', header: { text: '오수맨홀' } }, + { name: 'RAINWTR_MNHLE_SITE', fieldName: 'RAINWTR_MNHLE_SITE', header: { text: '우수맨홀' } }, + { name: 'PLTWTR_RCVR_SITE', fieldName: 'PLTWTR_RCVR_SITE', header: { text: '오수받이(개소)' } }, + { name: 'RAINWTR_RCVR_SITE', fieldName: 'RAINWTR_RCVR_SITE', header: { text: '빗물받이(개소)' } }, + { name: 'SOILHOLE_SITE', fieldName: 'SOILHOLE_SITE', header: { text: '토실(개소)' } }, + { name: 'SOILSPLL_SITE', fieldName: 'SOILSPLL_SITE', header: { text: '토구(개소)' } }, + + /* 5. 조사량 및 비고 */ + { name: 'CCTV', fieldName: 'CCTV', header: { text: '수밀검사·\nCCTV조사량\n(m)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'YR_GBN', + { + name: 'mtcPipeGroup', + header: { text: '개·보수관로' }, + items: [ + { + name: 'totalRepairGroup', + header: { text: '전체보수(m)' }, + items: [ + 'RPAIR_PIPE_SM', + 'RPAIR_CMBN_PIPE', + { name: 'sepTotalGroup', header: { text: '분류식' }, items: ['RPAIR_RAINWTR_PIPE', 'RPAIR_PLTWTR_PIPE'] } + ] + }, + { + name: 'partRepairGroup', + header: { text: '부분보수(개소)' }, + items: [ + 'RPAIR_PIPE_SM2', + 'RPAIR_CMBN_PIPE2', + { name: 'sepPartGroup', header: { text: '분류식' }, items: ['RPAIR_RAINWTR_PIPE2', 'RPAIR_PLTWTR_PIPE2'] } + ] + } + ] + }, + 'MNHLE_SITE', + { + name: 'sepMnhleGroup', + header: { text: '분류식' }, + items: ['PLTWTR_MNHLE_SITE', 'RAINWTR_MNHLE_SITE'] + }, + 'PLTWTR_RCVR_SITE', + 'RAINWTR_RCVR_SITE', + 'SOILHOLE_SITE', + 'SOILSPLL_SITE', + 'CCTV', + 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '관로준설', + rowStartNum: 4, // XML의 rowspan="4" 및 4단 헤더 반영 + fixedColumns: 3, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 시설 기본 정보 */ + { name: 'PIPL_FCLTY_EXTN', fieldName: 'PIPL_FCLTY_EXTN', header: { text: '하수관로\n총시설연장\n(m)' } }, + + /* 3. 준설연장 및 개소수 */ + { name: 'DRDG_PIPE_SM', fieldName: 'DRDG_PIPE_SM', header: { text: '합계' } }, + { name: 'DRDG_CMBN_PIPE', fieldName: 'DRDG_CMBN_PIPE', header: { text: '합류식' } }, + { name: 'DRDG_RAINWTR_PIPE', fieldName: 'DRDG_RAINWTR_PIPE', header: { text: '우수' } }, + { name: 'DRDG_PLTWTR_PIPE', fieldName: 'DRDG_PLTWTR_PIPE', header: { text: '오수' } }, + { name: 'MNHLE_SITE', fieldName: 'MNHLE_SITE', header: { text: '맨홀\n(개소)' } }, + { name: 'PLTWTR_RCVR_SITE', fieldName: 'PLTWTR_RCVR_SITE', header: { text: '오·우수받이\n(개소)' } }, + { name: 'SOILSPLL_SOILHOLE_SITE', fieldName: 'SOILSPLL_SOILHOLE_SITE', header: { text: '토실·토구\n(개소)' } }, + + /* 4. 준설 계획 및 율 */ + { name: 'DRDG_TRGET_EXTN', fieldName: 'DRDG_TRGET_EXTN', header: { text: '준설 계획\n연장(m)' } }, + { name: 'DRDG_TRGET_RT', fieldName: 'DRDG_TRGET_RT', header: { text: '계획대비\n준설율\n(%)' } }, + { name: 'PIPL_FCLTY_RT', fieldName: 'PIPL_FCLTY_RT', header: { text: '준설계획\n연장대비\n준설율(%)' } }, + + /* 5. 준설실적 */ + { name: 'DRDG_ACMSLT_AMOUNT', fieldName: 'DRDG_ACMSLT_AMOUNT', header: { text: '금액\n(백만원)' } }, + { name: 'DRDG_ACMSLT_QY', fieldName: 'DRDG_ACMSLT_QY', header: { text: '준설량\n(㎥)' } }, + + /* 6. 준설토사처리 */ + { name: 'DRDG_ACMSLT_UNTPC', fieldName: 'DRDG_ACMSLT_UNTPC', header: { text: '준설토\n처리비\n(백만원)' } }, + { name: 'DRDG_ETND_SM', fieldName: 'DRDG_ETND_SM', header: { text: '처리량 계\n(톤)' } }, + { name: 'RCLM', fieldName: 'RCLM', header: { text: '매립' } }, + { name: 'OCEAN_DPSL', fieldName: 'OCEAN_DPSL', header: { text: '해양투기' } }, + { name: 'RUSE', fieldName: 'RUSE', header: { text: '재활용' } }, + { name: 'ETC', fieldName: 'ETC', header: { text: '기타\n(소각, 고형화,\n시멘트원료 등)' } }, + + /* 7. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'YR_GBN', + 'PIPL_FCLTY_EXTN', + { + name: 'drdgGroup', + header: { text: '준설연장 및 개소수' }, + items: [ + { + name: 'pipeLenGroup', + header: { text: '관로(m)' }, + items: [ + 'DRDG_PIPE_SM', 'DRDG_CMBN_PIPE', + { name: 'sepRepairGroup', header: { text: '분류식' }, items: ['DRDG_RAINWTR_PIPE', 'DRDG_PLTWTR_PIPE'] } + ] + }, + 'MNHLE_SITE', 'PLTWTR_RCVR_SITE', 'SOILSPLL_SOILHOLE_SITE' + ] + }, + 'DRDG_TRGET_EXTN', 'DRDG_TRGET_RT', 'PIPL_FCLTY_RT', + { + name: 'acmsltGroup', + header: { text: '준설실적' }, + items: ['DRDG_ACMSLT_AMOUNT', 'DRDG_ACMSLT_QY'] + }, + { + name: 'processGroup', + header: { text: '준설토사처리' }, + items: ['DRDG_ACMSLT_UNTPC', 'DRDG_ETND_SM', 'RCLM', 'OCEAN_DPSL', 'RUSE', 'ETC'] + }, + 'RMK' + ] +} +];