[feat]하수관리 유지관리 탭 2개 추가

This commit is contained in:
yangsein
2025-12-26 11:17:27 +09:00
parent 47f41faee3
commit cda8044183
2 changed files with 205 additions and 3 deletions
@@ -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 (
<>
<SearchForm userMenual={true} />
<>
<SearchForm userMenual={true} fctName={true} />
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<ReviewOpinionButton reviewOpinionFunc={reviewOpinionFunc} />
<ApproveButton approveFunc={approveFunc} />
<ReturnButton returnFunc={returnFunc} />
<SaveButton saveFunc={saveFunc} />
</div>
<TabDataGrid columnInfo={SewagePipeMaintainColumnInfoListRvw} isExcelImport={false}/>
</>
);
}
};
export default SewagePipeMaintainRvw;
@@ -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'
]
}
];