[feat]하수및분뇨관리사업 탭 4개 추가

This commit is contained in:
yangsein
2025-12-26 13:52:43 +09:00
parent 97435b7113
commit 8006a9ef09
2 changed files with 252 additions and 0 deletions
@@ -0,0 +1,51 @@
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 { SewageExcretaRelatedInfoListRvw } from "@/components/util/column/SewageExcretaRelatedColumnRvw";
const SewageExcretaRelatedRvw = () => {
const approveFunc = () => {
console.log('approveFunc');
// 승인 로직
};
const saveFunc = () => {
console.log('submit');
// 저장 로직
};
const reviewOpinionFunc = () => {
console.log('reviewOpinionFunc');
// 검토의견 작성
};
const returnFunc = () => {
console.log('returnFunc');
// 반려
};
return (
<>
<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={SewageExcretaRelatedInfoListRvw} isExcelImport={false} />
</>
);
};
export default SewageExcretaRelatedRvw;
@@ -0,0 +1,201 @@
export const SewageExcretaRelatedInfoListRvw=[
{
tabKey: 'a',
tabLabel: '공공기관 하수분야',
rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
fixedColumns: 2, // 순번, 시도, 시군구, 직제, 구분까지 고정
columns: [
/* 1. 행정 및 조직 정보 (Band: Left) */
{ name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
{ name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } },
{ name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
/* 2. 인력 총계 및 행정직 */
{ name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } },
{ name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } },
/* 3. 기술직 상세 (단위: 명) */
{ name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } },
{ name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } },
{ name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } },
{ name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } },
{ name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } },
{ name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } },
{ name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } },
/* 4. 기타 및 비고 */
{ name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
],
columnLayout: [
{ name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
'OCGNZ',
'YR_GBN',
'TOT_WTR_QRM',
'ADMINIST_JSSFC',
{
name: 'techJobGroup',
header: { text: '기술직' },
items: [
'TCHNLGY_JSSFC_SM',
'ENGRK_JSSFC',
'MCHN_JSSFC',
'ELCTY_JSSFC',
'CHMSTRY_JSSFC',
'ENVRN_JSSFC',
'TCHNLGY_ETC'
]
},
'RMK',
]
},{
tabKey: 'b',
tabLabel: '공공기관 분뇨분야',
rowStartNum: 2, // 2단 헤더 구조
fixedColumns: 1, // 순번, 시도, 시군구, 직제, 구분까지 고정
columns: [
/* 1. 행정 및 조직 정보 (Band: Left) */
{ name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
{ name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } },
{ name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
/* 2. 인력 총계 및 행정직 */
{ name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } },
{ name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } },
/* 3. 기술직 상세 (단위: 명) */
{ name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } },
{ name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } },
{ name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } },
{ name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } },
{ name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } },
{ name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } },
{ name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } },
/* 4. 기타 및 비고 */
{ name: 'ETC', fieldName: 'ETC', header: { text: '기타' } },
{ name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
],
columnLayout: [
{ name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
'OCGNZ',
'YR_GBN',
'TOT_WTR_QRM',
'ADMINIST_JSSFC',
{
name: 'techJobGroup',
header: { text: '기술직' },
items: [
'TCHNLGY_JSSFC_SM',
'ENGRK_JSSFC',
'MCHN_JSSFC',
'ELCTY_JSSFC',
'CHMSTRY_JSSFC',
'ENVRN_JSSFC',
'TCHNLGY_ETC'
]
},
'ETC',
'RMK',
]
},
{
tabKey: 'c',
tabLabel: '분뇨수집·운반업',
rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정
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: 'ECSCS_SM', fieldName: 'ECSCS_SM', header: { text: '업체수(개소)' } },
{ name: 'ECSCS_BSMN', fieldName: 'ECSCS_BSMN', header: { text: '종사인원(명)' } },
/* 3. 시설(차량) 확보현황 (단위: 대수) */
{ name: 'VHCLE_SM', fieldName: 'VHCLE_SM', header: { text: '계' } },
{ name: 'THREE_BELOW', fieldName: 'THREE_BELOW', header: { text: '3톤이하' } },
{ name: 'FOUR_BELOW', fieldName: 'FOUR_BELOW', header: { text: '4.5톤이하' } },
{ name: 'EIGHT_BELOW', fieldName: 'EIGHT_BELOW', header: { text: '8톤이하' } },
{ name: 'ETC', fieldName: 'ETC', header: { text: '기타' } },
/* 4. 실적 및 비고 */
{ name: 'COLCT_TRSP_ACMSLT', fieldName: 'COLCT_TRSP_ACMSLT', header: { text: '수집·운반실적\n(㎥/년)' } },
{ name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
],
columnLayout: [
{ name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
'YR_GBN',
'ECSCS_SM',
'ECSCS_BSMN',
{
name: 'vehicleGroup',
header: { text: '시설(차량) 확보현황(대수)' },
items: [
'VHCLE_SM',
'THREE_BELOW',
'FOUR_BELOW',
'EIGHT_BELOW',
'ETC'
]
},
'COLCT_TRSP_ACMSLT',
'RMK'
]
},
{
tabKey: 'd',
tabLabel: '개인하수처리관련업',
rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정
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: 'CNSTRCT_ENTRPS', fieldName: 'CNSTRCT_ENTRPS', header: { text: '업소수' } },
{ name: 'CNSTRCT_BSMN', fieldName: 'CNSTRCT_BSMN', header: { text: '종사인원(명)' } },
/* 3. 개인하수처리시설 제조업 */
{ name: 'MNFCTUR_ENTRPS', fieldName: 'MNFCTUR_ENTRPS', header: { text: '업소수' } },
{ name: 'MNFCTUR_BSMN', fieldName: 'MNFCTUR_BSMN', header: { text: '종사인원(명)' } },
/* 4. 개인하수처리시설 관리업 */
{ name: 'MGMT_ENTRPS', fieldName: 'MGMT_ENTRPS', header: { text: '업소수' } },
{ name: 'MGMT_BSMN', fieldName: 'MGMT_BSMN', header: { text: '종사인원(명)' } },
/* 5. 기타 및 의견 */
{ name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }
],
columnLayout: [
{ name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
'YR_GBN',
{
name: 'constructGroup',
header: { text: '개인하수처리시설 설계ㆍ시공업' },
items: ['CNSTRCT_ENTRPS', 'CNSTRCT_BSMN']
},
{
name: 'manufactureGroup',
header: { text: '개인하수처리시설 제조업' },
items: ['MNFCTUR_ENTRPS', 'MNFCTUR_BSMN']
},
{
name: 'managementGroup',
header: { text: '개인하수처리시설 관리업' },
items: ['MGMT_ENTRPS', 'MGMT_BSMN']
},
'RMK'
]
}
];