refactor: 07. 분뇨처리시설 컬럼 파일로 분리 & footer 적용
- ExcretaTreatmentFacilityMngColumn.ts 파일 생성 - 기존 ExcretaTreatmentFacilityMng.tsx 컴포넌트 내 컬럼 정의 별도 파일로 분리 - footer 설정 적용 (소수점 3자리, 소수점 1자리, 정수) - editable 속성 추가
This commit is contained in:
@@ -6,106 +6,10 @@ import LastYearDataButton from "@/components/button/LastYearDataButton";
|
||||
import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
|
||||
import { useState } from "react";
|
||||
|
||||
import { ExcretaTreatmentFacilityMngColumn } from "@/components/util/column/management/ExcretaTreatmentFacilityMngColumn"
|
||||
// 하수도 통계 관리 > 07. 분뇨처리시설
|
||||
const ExcretaTreatmentFacilityMng = () => {
|
||||
const columns = [
|
||||
// 행정구역
|
||||
{ name: 'sido', fieldName: '시도', header: { text: '시도' } },
|
||||
{ name: 'gugun', fieldName: '시군구', header: { text: '시군구' } },
|
||||
|
||||
// 기본 정보
|
||||
{ name: 'ecscs_nm', fieldName: '시설명', header: { text: '시설명' } },
|
||||
{ name: 'locplcs', fieldName: '소재지', header: { text: '소재지' } },
|
||||
{ name: 'telno', fieldName: '전화번호', header: { text: '전화번호' } },
|
||||
|
||||
// 날짜 정보
|
||||
{ name: 'comp_dt', fieldName: '준공일 yyyy-mm-dd', header: { text: '준공일 yyyy-mm-dd' } },
|
||||
{ name: 'rn_dt', fieldName: '가동개시일 yyyy-mm-dd', header: { text: '가동개시일 yyyy-mm-dd' } },
|
||||
|
||||
// 사업비/용량 정보
|
||||
{ name: 'wct', fieldName: '사업비', header: { text: '사업비(백만원)' } },
|
||||
{ name: 'ecscs_cpcty', fieldName: '시설용량', header: { text: '시설용량(m³/일)' } },
|
||||
{ name: 'process_cpcty', fieldName: '처리량', header: { text: '처리량(m³/일)' } },
|
||||
{ name: 'opr_daycnt', fieldName: '가동일수', header: { text: '가동일수(일/년)' } },
|
||||
|
||||
// 처리 공법 및 연계
|
||||
{ name: 'trt_msrc', fieldName: '처리공법', header: { text: '처리공법' } },
|
||||
{ name: 'cntc_prcplt', fieldName: '연계처리장명', header: { text: '연계처리장명' } },
|
||||
{ name: 'assct_trt_cpc', fieldName: '연계처리량', header: { text: '연계처리량(m³/일)' } },
|
||||
|
||||
// 유입수질 (TOC만 포함)
|
||||
{ name: 'infl_wqlt_bod', fieldName: '유입BOD', header: { text: 'BOD' } },
|
||||
{ name: 'infl_wqlt_toc', fieldName: '유입TOC', header: { text: 'TOC' } },
|
||||
{ name: 'infl_wqlt_ss', fieldName: '유입SS', header: { text: 'SS' } },
|
||||
{ name: 'infl_wqlt_tn', fieldName: '유입T-N', header: { text: 'T-N' } },
|
||||
{ name: 'infl_wqlt_tp', fieldName: '유입T-P', header: { text: 'T-P' } },
|
||||
{ name: 'infl_wqlt_clfgrpcnt', fieldName: '유입대장균군수', header: { text: '대장균군수' } },
|
||||
|
||||
// 방류수질 (TOC만 포함)
|
||||
{ name: 'effl_wqlt_bod', fieldName: '방류BOD', header: { text: 'BOD' } },
|
||||
{ name: 'effl_wqlt_toc', fieldName: '방류TOC', header: { text: 'TOC' } },
|
||||
{ name: 'effl_wqlt_ss', fieldName: '방류SS', header: { text: 'SS' } },
|
||||
{ name: 'effl_wqlt_tn', fieldName: '방류T-N', header: { text: 'T-N' } },
|
||||
{ name: 'effl_wqlt_tp', fieldName: '방류T-P', header: { text: 'T-P' } },
|
||||
{ name: 'effl_wqlt_clfgrpcnt', fieldName: '방류대장균군수', header: { text: '대장균군수' } },
|
||||
|
||||
// 방류수역
|
||||
{ name: 'rvbsn', fieldName: '수계', header: { text: '수계' } },
|
||||
{ name: 'bstrm', fieldName: '지류', header: { text: '지류' } },
|
||||
{ name: 'lgbsn', fieldName: '중권역', header: { text: '중권역' } },
|
||||
{ name: 'mdmbsn', fieldName: '소권역', header: { text: '소권역' } },
|
||||
|
||||
// 운영 정보
|
||||
{ name: 'oper_mth', fieldName: '운영주체(자체/공기업/민간위탁)', header: { text: '운영주체(자체/공기업/민간위탁)' } },
|
||||
{ name: 'cntc_prcplt_cpc', fieldName: '직원총수', header: { text: '직원총수(명)' } },
|
||||
{ name: 'safe_acdnt_co', fieldName: '안전사고건수', header: { text: '안전사고건수(건/인/년)' } },
|
||||
|
||||
// 기타
|
||||
{ name: 'rmk', fieldName: '비고', header: { text: '비고' } },
|
||||
];
|
||||
|
||||
const columnLayout = [
|
||||
{
|
||||
name: 'adminGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '행정구역' },
|
||||
items: ['sido', 'gugun'],
|
||||
},
|
||||
'ecscs_nm',
|
||||
'locplcs',
|
||||
'telno',
|
||||
'comp_dt',
|
||||
'rn_dt',
|
||||
'wct',
|
||||
'ecscs_cpcty',
|
||||
'process_cpcty',
|
||||
'opr_daycnt',
|
||||
'trt_msrc',
|
||||
'cntc_prcplt',
|
||||
'assct_trt_cpc',
|
||||
{
|
||||
name: 'influenceGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '유입수질(mg/L, 개/mL)' },
|
||||
items: ['infl_wqlt_bod', 'infl_wqlt_toc', 'infl_wqlt_ss', 'infl_wqlt_tn', 'infl_wqlt_tp', 'infl_wqlt_clfgrpcnt'],
|
||||
},
|
||||
{
|
||||
name: 'effluentGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '방류수질(mg/L, 개/mL)' },
|
||||
items: ['effl_wqlt_bod', 'effl_wqlt_toc', 'effl_wqlt_ss', 'effl_wqlt_tn', 'effl_wqlt_tp', 'effl_wqlt_clfgrpcnt'],
|
||||
},
|
||||
{
|
||||
name: 'dischargeGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '방류수역' },
|
||||
items: ['rvbsn', 'bstrm', 'lgbsn', 'mdmbsn'],
|
||||
},
|
||||
'oper_mth',
|
||||
'cntc_prcplt_cpc',
|
||||
'safe_acdnt_co',
|
||||
'rmk',
|
||||
];
|
||||
|
||||
const submitExceptionFunc = () => {
|
||||
console.log('submit exception');
|
||||
@@ -117,16 +21,16 @@ const ExcretaTreatmentFacilityMng = () => {
|
||||
// 지난년도 데이터 가져오기 로직
|
||||
};
|
||||
|
||||
const saveFunc = () => {
|
||||
console.log('save');
|
||||
// 저장 로직
|
||||
};
|
||||
|
||||
const submitFunc = () => {
|
||||
console.log('submit');
|
||||
// 제출 로직
|
||||
};
|
||||
|
||||
const saveFunc = () => {
|
||||
console.log('save');
|
||||
// 저장 로직
|
||||
};
|
||||
|
||||
const [rowData, setRowData] = useState<Record<string, string | number>[]>([]);
|
||||
|
||||
return (
|
||||
@@ -135,12 +39,10 @@ const ExcretaTreatmentFacilityMng = () => {
|
||||
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
|
||||
<SubmitExceptionButton SubmitExceptionFunc={submitExceptionFunc} />
|
||||
<LastYearDataButton getLastYearDataFunc={getLastYearDataFunc} />
|
||||
</div>
|
||||
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
|
||||
<SaveButton saveFunc={saveFunc} />
|
||||
<SubmitButton submitFunc={submitFunc} />
|
||||
</div>
|
||||
<DataGrid columnInfo={{ columns, columnLayout }} rowStartNum={2} fixedColumns={2} isExcelImport={true} rowData={rowData} setRowData={setRowData} />
|
||||
<DataGrid columnInfo={ExcretaTreatmentFacilityMngColumn} rowStartNum={2} fixedColumns={2} isExcelImport={true} rowData={rowData} setRowData={setRowData} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
import { footerInt, footerDecimal1, footerDecimal3 } from "@/components/util/grid/footerSummary";
|
||||
|
||||
/**
|
||||
* 하수도 통계 관리 > 07. 분뇨처리시설
|
||||
* 단일 Tab
|
||||
*/
|
||||
export const ExcretaTreatmentFacilityMngColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'sido', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'gugun', fieldName: '시군구', header: { text: '시군구' } },
|
||||
|
||||
// 기본 정보
|
||||
{ name: 'ecscs_nm', fieldName: '시설명', header: { text: '시설명' } },
|
||||
{ name: 'locplcs', fieldName: '소재지', header: { text: '소재지' } },
|
||||
{ name: 'telno', fieldName: '전화번호', header: { text: '전화번호' } },
|
||||
|
||||
// 날짜 정보
|
||||
{ name: 'comp_dt', fieldName: '준공일 yyyy-mm-dd', header: { text: '준공일 yyyy-mm-dd' } },
|
||||
{ name: 'rn_dt', fieldName: '가동개시일 yyyy-mm-dd', header: { text: '가동개시일 yyyy-mm-dd' } },
|
||||
|
||||
// 사업비/용량 정보
|
||||
{ name: 'wct', fieldName: '사업비(백만원)', header: { text: '사업비(백만원)' }, footer: footerInt },
|
||||
{ name: 'ecscs_cpcty', fieldName: '시설용량(m³/일)', header: { text: '시설용량(m³/일)' } },
|
||||
{ name: 'process_cpcty', fieldName: '처리량(m³/일)', header: { text: '처리량(m³/일)' }, footer: footerDecimal1 },
|
||||
{ name: 'opr_daycnt', fieldName: '가동일수(일/년)', header: { text: '가동일수(일/년)' }, footer: footerInt },
|
||||
|
||||
// 처리 공법 및 연계
|
||||
{ name: 'trt_msrc', fieldName: '처리공법', header: { text: '처리공법' } },
|
||||
{ name: 'cntc_prcplt', fieldName: '연계처리장명', header: { text: '연계처리장명' } },
|
||||
{ name: 'assct_trt_cpc', fieldName: '연계처리량(m³/일)', header: { text: '연계처리량(m³/일)' } },
|
||||
|
||||
// 유입수질
|
||||
{ name: 'infl_wqlt_bod', fieldName: '유입BOD', header: { text: 'BOD' }, footer: footerDecimal3 },
|
||||
{ name: 'infl_wqlt_toc', fieldName: '유입TOC', header: { text: 'TOC' }, footer: footerDecimal3 },
|
||||
{ name: 'infl_wqlt_ss', fieldName: '유입SS', header: { text: 'SS' }, footer: footerDecimal3 },
|
||||
{ name: 'infl_wqlt_tn', fieldName: '유입T-N', header: { text: 'T-N' }, footer: footerDecimal3 },
|
||||
{ name: 'infl_wqlt_tp', fieldName: '유입T-P', header: { text: 'T-P' }, footer: footerDecimal3 },
|
||||
{ name: 'infl_wqlt_clfgrpcnt', fieldName: '유입대장균군수', header: { text: '대장균군수' }, footer: footerDecimal3 },
|
||||
|
||||
// 방류수질
|
||||
{ name: 'effl_wqlt_bod', fieldName: '방류BOD', header: { text: 'BOD' }, footer: footerDecimal3 },
|
||||
{ name: 'effl_wqlt_toc', fieldName: '방류TOC', header: { text: 'TOC' }, footer: footerDecimal3 },
|
||||
{ name: 'effl_wqlt_ss', fieldName: '방류SS', header: { text: 'SS' }, footer: footerDecimal3 },
|
||||
{ name: 'effl_wqlt_tn', fieldName: '방류T-N', header: { text: 'T-N' }, footer: footerDecimal3 },
|
||||
{ name: 'effl_wqlt_tp', fieldName: '방류T-P', header: { text: 'T-P' }, footer: footerDecimal3 },
|
||||
{ name: 'effl_wqlt_clfgrpcnt', fieldName: '방류대장균군수', header: { text: '대장균군수' }, footer: footerDecimal3 },
|
||||
|
||||
// 방류수역
|
||||
{ name: 'rvbsn', fieldName: '수계', header: { text: '수계' } },
|
||||
{ name: 'bstrm', fieldName: '지류', header: { text: '지류' } },
|
||||
{ name: 'lgbsn', fieldName: '중권역', header: { text: '중권역' } },
|
||||
{ name: 'mdmbsn', fieldName: '소권역', header: { text: '소권역' } },
|
||||
|
||||
// 운영 정보
|
||||
{ name: 'oper_mth', fieldName: '운영주체(자체/공기업/민간위탁)', header: { text: '운영주체(자체/공기업/민간위탁)' } },
|
||||
{ name: 'cntc_prcplt_cpc', fieldName: '직원총수(명)', header: { text: '직원총수(명)' }, footer: footerInt },
|
||||
{ name: 'administration_opiton', fieldName: '행정직(명)', header: { text: '행정직(명)' }, footer: footerInt }, // 운영에만 존재하는 컬럼
|
||||
{ name: 'technology_option', fieldName: '기술직(명)', header: { text: '기술직(명)' }, footer: footerInt }, // 운영에만 존재하는 컬럼
|
||||
{ name: 'etc_option', fieldName: '기타(명)', header: { text: '기타(명)' }, footer: footerInt }, // 운영에만 존재하는 컬럼
|
||||
{ name: 'safe_acdnt_co', fieldName: '안전사고건수(건/인/년)', header: { text: '안전사고건수(건/인/년)' }, footer: footerInt },
|
||||
|
||||
// 기타
|
||||
{ name: 'rmk', fieldName: '비고', header: { text: '비고' } },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'adminGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '행정구역' },
|
||||
items: ['sido', 'gugun'],
|
||||
},
|
||||
'ecscs_nm',
|
||||
'locplcs',
|
||||
'telno',
|
||||
'comp_dt',
|
||||
'rn_dt',
|
||||
'wct',
|
||||
'ecscs_cpcty',
|
||||
'process_cpcty',
|
||||
'opr_daycnt',
|
||||
'trt_msrc',
|
||||
'cntc_prcplt',
|
||||
'assct_trt_cpc',
|
||||
{
|
||||
name: 'influenceGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '유입수질(mg/L, 개/mL)' },
|
||||
items: ['infl_wqlt_bod', 'infl_wqlt_toc', 'infl_wqlt_ss', 'infl_wqlt_tn', 'infl_wqlt_tp', 'infl_wqlt_clfgrpcnt'],
|
||||
},
|
||||
{
|
||||
name: 'effluentGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '방류수질(mg/L, 개/mL)' },
|
||||
items: ['effl_wqlt_bod', 'effl_wqlt_toc', 'effl_wqlt_ss', 'effl_wqlt_tn', 'effl_wqlt_tp', 'effl_wqlt_clfgrpcnt'],
|
||||
},
|
||||
{
|
||||
name: 'dischargeGroup',
|
||||
hideChildHeaders: false,
|
||||
header: { text: '방류수역' },
|
||||
items: ['rvbsn', 'bstrm', 'lgbsn', 'mdmbsn'],
|
||||
},
|
||||
'oper_mth',
|
||||
'cntc_prcplt_cpc',
|
||||
'administration_opiton',
|
||||
'technology_option',
|
||||
'etc_option',
|
||||
'safe_acdnt_co',
|
||||
'rmk',
|
||||
]
|
||||
};
|
||||
Reference in New Issue
Block a user