266 lines
13 KiB
TypeScript
266 lines
13 KiB
TypeScript
import { ValueType } from "realgrid";
|
|
|
|
import type { ColumnConfig } from "@/components/type/DataGrid.type";
|
|
import { footerDecimal1, footerDecimal3,footerInt } from "@/components/util/grid/footerSummary";
|
|
|
|
/** 펌프장 구분(`pumpSeNm`) */
|
|
export const PUMPING_STATION_PUMP_SE_VALUES = ["합류식", "분류식"] as const;
|
|
|
|
function dropdownColumn(
|
|
col: Pick<ColumnConfig, "name" | "fieldName" | "header"> &
|
|
Partial<ColumnConfig>,
|
|
options: readonly string[],
|
|
): ColumnConfig {
|
|
const values = [...options];
|
|
return {
|
|
...col,
|
|
values,
|
|
labels: values,
|
|
lookupDisplay: true,
|
|
editor: {
|
|
type: "dropdown",
|
|
domainOnly: true,
|
|
textReadOnly: true,
|
|
commitOnSelect: true,
|
|
dropDownWhenClick: true,
|
|
values,
|
|
labels: values,
|
|
},
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 하수도 통계 관리 > 05. 펌프장
|
|
* 단일 Tab
|
|
*/
|
|
export const PumpingStationInpColumn = {
|
|
columns: [
|
|
// 행정구역
|
|
{ name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' },
|
|
{ name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' },
|
|
|
|
// 기본 정보
|
|
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' }, styleName: 'rg-cell-readonly' },
|
|
{ name: 'fcltNm', fieldName: 'fcltNm', header: { text: '시설명' }, styleName: 'rg-cell-readonly' },
|
|
dropdownColumn(
|
|
{ name: 'pumpSeNm', fieldName: 'pumpSeNm', header: { text: '구분(합류식 분류식)' } },
|
|
PUMPING_STATION_PUMP_SE_VALUES,
|
|
),
|
|
{ name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '위치' } },
|
|
{
|
|
name: 'oprtngStrtYmd',
|
|
fieldName: 'oprtngStrtYmd',
|
|
header: { text: '가동 년월일 yyyy-mm-dd' },
|
|
datetimeFormat: 'yyyy-MM-dd',
|
|
editor: {
|
|
type: 'date' as const,
|
|
dropDownWhenClick: true,
|
|
datetimeFormat: 'yyyy-MM-dd',
|
|
},
|
|
},
|
|
{ name: 'planMltvArea', fieldName: 'planMltvArea', header: { text: '계획배수면적(㎢)' }, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
|
|
|
|
// 계획시간 대 최대배수량
|
|
{ name: 'sndyArea', fieldName: 'sndyArea', header: { text: '청천시(A)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'rainArea', fieldName: 'rainArea', header: { text: '우천시(B)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{
|
|
name: 'exlnQnt',
|
|
fieldName: 'exlnQnt',
|
|
header: { text: '우수량(B-A)' },
|
|
footer: footerDecimal1,
|
|
editable: false,
|
|
valueType: ValueType.NUMBER,
|
|
dataFormat: '#,##0.0',
|
|
computed: { fields: ['rainArea', 'sndyArea'], type: 'difference' as const },
|
|
styleName: 'rg-cell-total',
|
|
},
|
|
|
|
// 배수능력 > 총 양수량 (오수)
|
|
{
|
|
name: 'drtwPumpGrssPpqty',
|
|
fieldName: 'drtwPumpGrssPpqty',
|
|
header: { text: '총양수량(m³/min)' },
|
|
footer: footerDecimal1,
|
|
editable: false,
|
|
valueType: ValueType.NUMBER,
|
|
dataFormat: '#,##0.0',
|
|
styleName: 'rg-cell-total',
|
|
computed: {
|
|
type: 'pumpGrossPpqty' as const,
|
|
pumpGroups: [
|
|
{
|
|
pumpCntField: 'drtwPumpN1Cnt',
|
|
rsrvPumpCntField: 'drtwPumpN1RsrvCnt',
|
|
perPpqtyField: 'drtwPumpN1Ppqty',
|
|
},
|
|
{
|
|
pumpCntField: 'drtwPumpN2Cnt',
|
|
rsrvPumpCntField: 'drtwPumpN2RsrvCnt',
|
|
perPpqtyField: 'drtwPumpN2Ppqty',
|
|
},
|
|
{
|
|
pumpCntField: 'drtwPumpN3Cnt',
|
|
rsrvPumpCntField: 'drtwPumpN3RsrvCnt',
|
|
perPpqtyField: 'drtwPumpN3Ppqty',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
// 배수능력 > 오수펌프(1)
|
|
{ name: 'drtwPumpN1DmtrArea', fieldName: 'drtwPumpN1DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN1Ppqty', fieldName: 'drtwPumpN1Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'drtwPumpN1Cnt', fieldName: 'drtwPumpN1Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN1RsrvCnt', fieldName: 'drtwPumpN1RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 배수능력 > 오수펌프(2)
|
|
{ name: 'drtwPumpN2DmtrArea', fieldName: 'drtwPumpN2DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN2Ppqty', fieldName: 'drtwPumpN2Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'drtwPumpN2Cnt', fieldName: 'drtwPumpN2Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN2RsrvCnt', fieldName: 'drtwPumpN2RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 배수능력 > 오수펌프(3)
|
|
{ name: 'drtwPumpN3DmtrArea', fieldName: 'drtwPumpN3DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN3Ppqty', fieldName: 'drtwPumpN3Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'drtwPumpN3Cnt', fieldName: 'drtwPumpN3Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'drtwPumpN3RsrvCnt', fieldName: 'drtwPumpN3RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 배수능력 > 총 양수량 (우수)
|
|
{
|
|
name: 'exlnPumpGrssPpqty',
|
|
fieldName: 'exlnPumpGrssPpqty',
|
|
header: { text: '총양수량(m³/min)' },
|
|
footer: footerDecimal1,
|
|
editable: false,
|
|
valueType: ValueType.NUMBER,
|
|
dataFormat: '#,##0.0',
|
|
styleName: 'rg-cell-total',
|
|
computed: {
|
|
type: 'pumpGrossPpqty' as const,
|
|
pumpGroups: [
|
|
{
|
|
pumpCntField: 'exlnPumpN1Cnt',
|
|
rsrvPumpCntField: 'exlnPumpN1RsrvCnt',
|
|
perPpqtyField: 'exlnPumpN1Ppqty',
|
|
},
|
|
{
|
|
pumpCntField: 'exlnPumpN2Cnt',
|
|
rsrvPumpCntField: 'exlnPumpN2RsrvCnt',
|
|
perPpqtyField: 'exlnPumpN2Ppqty',
|
|
},
|
|
{
|
|
pumpCntField: 'exlnPumpN3Cnt',
|
|
rsrvPumpCntField: 'exlnPumpN3RsrvCnt',
|
|
perPpqtyField: 'exlnPumpN3Ppqty',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
// 배수능력 > 우수펌프(1)
|
|
{ name: 'exlnPumpN1DmtrArea', fieldName: 'exlnPumpN1DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN1Ppqty', fieldName: 'exlnPumpN1Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'exlnPumpN1Cnt', fieldName: 'exlnPumpN1Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN1RsrvCnt', fieldName: 'exlnPumpN1RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 배수능력 > 우수펌프(2)
|
|
{ name: 'exlnPumpN2DmtrArea', fieldName: 'exlnPumpN2DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN2Ppqty', fieldName: 'exlnPumpN2Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'exlnPumpN2Cnt', fieldName: 'exlnPumpN2Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN2RsrvCnt', fieldName: 'exlnPumpN2RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 배수능력 > 우수펌프(3)
|
|
{ name: 'exlnPumpN3DmtrArea', fieldName: 'exlnPumpN3DmtrArea', header: { text: '구경(mm)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN3Ppqty', fieldName: 'exlnPumpN3Ppqty', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
{ name: 'exlnPumpN3Cnt', fieldName: 'exlnPumpN3Cnt', header: { text: '펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
{ name: 'exlnPumpN3RsrvCnt', fieldName: 'exlnPumpN3RsrvCnt', header: { text: '예비펌프대수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
|
|
|
// 연간전력 사용량
|
|
{ name: 'anlElpwrUseQnt', fieldName: 'anlElpwrUseQnt', header: { text: '연간전력사용량(kWh/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
|
|
|
// 비고
|
|
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
|
|
|
// Hidden Columns : 시스템 관리를 위한 값
|
|
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
|
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '시설일련번호' }, visible: false, },
|
|
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
|
],
|
|
|
|
columnLayout: [
|
|
{
|
|
name: 'administrativeArea',
|
|
hideChildHeaders: false,
|
|
header: { text: '행정구역' },
|
|
items: [
|
|
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
|
'sggNm',
|
|
],
|
|
},
|
|
'swtrmtFcltNm',
|
|
'fcltNm',
|
|
'pumpSeNm',
|
|
'fcltPstnCn',
|
|
'oprtngStrtYmd',
|
|
'planMltvArea',
|
|
{
|
|
name: 'planFlowGroup',
|
|
hideChildHeaders: false,
|
|
header: { text: '계획시간대최대배수량(m³/hr)' },
|
|
items: ['sndyArea', 'rainArea', 'exlnQnt'],
|
|
},
|
|
{
|
|
name: 'drainageCapability',
|
|
hideChildHeaders: false,
|
|
header: { text: '배수능력' },
|
|
items: [
|
|
'drtwPumpGrssPpqty',
|
|
{
|
|
name: 'sewagePump1Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '오수펌프(1)' },
|
|
items: ['drtwPumpN1DmtrArea', 'drtwPumpN1Ppqty', 'drtwPumpN1Cnt', 'drtwPumpN1RsrvCnt'],
|
|
},
|
|
{
|
|
name: 'sewagePump2Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '오수펌프(2)' },
|
|
items: ['drtwPumpN2DmtrArea', 'drtwPumpN2Ppqty', 'drtwPumpN2Cnt', 'drtwPumpN2RsrvCnt'],
|
|
},
|
|
{
|
|
name: 'sewagePump3Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '오수펌프(3)' },
|
|
items: ['drtwPumpN3DmtrArea', 'drtwPumpN3Ppqty', 'drtwPumpN3Cnt', 'drtwPumpN3RsrvCnt'],
|
|
},
|
|
'exlnPumpGrssPpqty',
|
|
{
|
|
name: 'rainwaterPump1Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '우수펌프(1)' },
|
|
items: ['exlnPumpN1DmtrArea', 'exlnPumpN1Ppqty', 'exlnPumpN1Cnt', 'exlnPumpN1RsrvCnt'],
|
|
},
|
|
{
|
|
name: 'rainwaterPump2Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '우수펌프(2)' },
|
|
items: ['exlnPumpN2DmtrArea', 'exlnPumpN2Ppqty', 'exlnPumpN2Cnt', 'exlnPumpN2RsrvCnt'],
|
|
},
|
|
{
|
|
name: 'rainwaterPump3Group',
|
|
hideChildHeaders: false,
|
|
header: { text: '우수펌프(3)' },
|
|
items: ['exlnPumpN3DmtrArea', 'exlnPumpN3Ppqty', 'exlnPumpN3Cnt', 'exlnPumpN3RsrvCnt'],
|
|
},
|
|
],
|
|
},
|
|
'anlElpwrUseQnt',
|
|
'rmrk',
|
|
'admdstCd',
|
|
'fcltSn',
|
|
'admdstNm'
|
|
],
|
|
rowStartNum: 3,
|
|
fixedColumns: 3,
|
|
tabKey: 'ST00050001',
|
|
}; |