Merge branch 'dev' of http://218.237.212.51:30003/gitadmin/sk_fems_ui into dev-trungvq7-0729

This commit is contained in:
dev
2025-07-31 11:33:52 +09:00
51 changed files with 1048 additions and 1645 deletions

View File

@ -64,7 +64,6 @@
:gridName="gridName"
:parentPrgmId="myPrgmId"
@getRowsData="getRowData"
:dataPath="dataPathMock"
/>
</div>
</div>
@ -137,24 +136,10 @@ export default {
return {
myPrgmId: myPrgmId,
gridName: 'rowGrid',
loadGrid: true,
loadGrid: false,
tab: null,
detailList: myDetail,
initedFlag: false,
dataPathMock : {
'rowGrid': {
column: [
{ header: '추가 정보 그룹', name: 'addGrpId', align: 'left' },
{ header: '추가 정보 ID', name: 'addInfoId', align: 'left' },
{ header: '추가 정보 명', name: 'addInfoNm', align: 'left' },
{ header: 'Data 형식', name: 'addInfoDataKind', align: 'center' },
{ header: '사용여부', name: 'useFg', align: 'center' },
],
data: dataMockExample,
defaultRow: dataMockExample,
option: {},
},
},
};
},
computed: {
@ -642,43 +627,4 @@ const myDetail = [
placeholder: '시스템 자동입력',
},
];
const dataMockExample = [
{
addGrpId: 'GRP001',
addInfoId: 'INFO001',
addInfoNm: '온도 센서',
addInfoDataKind: 'DATA01',
useFg: true,
},
{
addGrpId: 'GRP002',
addInfoId: 'INFO002',
addInfoNm: '압력 센서',
addInfoDataKind: 'DATA02',
useFg: false,
},
{
addGrpId: 'GRP003',
addInfoId: 'INFO003',
addInfoNm: '압력 센서',
addInfoDataKind: 'DATA03',
useFg: false,
},
{
addGrpId: 'GRP004',
addInfoId: 'INFO004',
addInfoNm: '압력 센서',
addInfoDataKind: 'DATA04',
useFg: false,
},
{
addGrpId: 'GRP005',
addInfoId: 'INFO005',
addInfoNm: '압력 센서',
addInfoDataKind: 'DATA05',
useFg: false,
},
];
</script>

View File

@ -1,7 +1,6 @@
<template>
<div class="l-layout">
<!-- <h1 class="h1-title">대시보드</h1> -->
<PageTitle text="대시보드" />
<CommonPageTitle/>
<!-- <CheckBox
:parentPrgmId="myPrgmId"
label="사용여부"
@ -600,7 +599,7 @@ export default {
this.getEnrgUsage();
},
isDarkMode(newVal) {
// let chartOption = this.getGuageChartOption2(this.chart_01);
// Update color of dark mode or light mode into each charts
let chartOption = getGaugeChartOption({
title: this.chart_01,
isDarkMode: this.isDarkMode,
@ -610,7 +609,6 @@ export default {
]?.series?.[0]?.data?.[0]?.value;
this.$store.state.pageData[myPrgmId][this.chart_01] = chartOption;
// let chartOption3 = this.getGuageChartOption2(this.chart_03);
let chartOption3 = getGaugeChartOption({
title: this.chart_03,
isDarkMode: this.isDarkMode,
@ -620,12 +618,24 @@ export default {
]?.series?.[0]?.data?.[0]?.value;
this.$store.state.pageData[myPrgmId][this.chart_03] = chartOption3;
let mockres = this.$store.state.pageData[myPrgmId][this.chart_04];
this.setChart04Data(mockres);
this.setChart02Data("test");
let chart04Dat = this.$store.state.pageData[myPrgmId]['chart04Data'];
this.setChart04Data(chart04Dat);
let chartOption2 = getLineChartOption({
xAxisData: this.$store.state.pageData[myPrgmId][this.chart_02].xAxisData,
seriesData: this.$store.state.pageData[myPrgmId][this.chart_02].seriesData,
isDarkMode: this.isDarkMode,
});
this.$store.state.pageData[myPrgmId][this.chart_02] = chartOption2
let chartOption5 = getLineChartOption({
xAxisData: this.$store.state.pageData[myPrgmId][this.chart_05].xAxisData,
seriesData: this.$store.state.pageData[myPrgmId][this.chart_05].seriesData,
isDarkMode: this.isDarkMode,
});
this.$store.state.pageData[myPrgmId][this.chart_05] = chartOption5
this.setChart05Data("test");
},
// beforeDestroy() {
// this.cancelAutoUpdate();
@ -1169,6 +1179,7 @@ export default {
chartKey: "compareEqpmTGdChart",
value: chartOption,
});
this.$store.state.pageData[myPrgmId][this.chart_05] = chartOption
},
async setChart04Data(data) {
if (this.$store.state.pageData[this.myPrgmId].todayNgTopTen != undefined) {
@ -1268,6 +1279,7 @@ export default {
},
series: seriesData,
};
await this.$nextTick(() => {});
this.setChartOption({ chartKey: "todayNgTopTen", value: chartOption });
},
@ -1401,6 +1413,7 @@ export default {
chartKey: "compareEqpmTotChart",
value: chartOption,
});
this.$store.state.pageData[myPrgmId][this.chart_02] = chartOption
},
getGuageChartOption(chartName) {
const gaugeColors = [
@ -1710,7 +1723,7 @@ export default {
let chartData = this.pageData.chart04Data;
// let chartData = this.$store.state.pageData[myPrgmId][this.chart_04]['series'][0]['data']
let selectedChartData = chartData.filter((item) => {
return item.eqpmId == event["data"]["groupId"];
return item.eqpmId == event["data"]["name"];
});
var data = {
cmCycle: "CYC_DAY",

View File

@ -1,5 +1,6 @@
<template>
<div class="l-layout">
<CommonPageTitle/>
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -83,7 +84,7 @@
</v-card>
</v-col>
</v-row>
<v-row ref="contents" style="height: calc(100vh - 400px)">
<v-row >
<v-col :cols="5" class="h100">
<v-card class="pb-5">
<v-card-title class="d-flex justify-space-between align-end">
@ -113,7 +114,7 @@
<v-col :cols="7" class="h100">
<v-card class="pb-5">
<v-card-title>에너지원 상세</v-card-title>
<div class="px-5" style="height:calc(100% - 70px)">
<div class="px-5" style="min-height: auto;">
<v-tabs v-model="tab">
<v-tab
v-for="item in items"
@ -125,21 +126,21 @@
</v-tabs>
<v-tabs-items
v-model="tab"
style="height: calc(100% - 65px);"
class="py-6"
style="min-height: auto;"
>
<v-tab-item v-for="(item, idx) in items" :key="item.id">
<v-tab-item v-for="(item, idx) in items" :key="item.id">
<component
v-if="item.id == 'ercInfoTab'"
:is="'Form'"
:parentPrgmId="myPrgmId"
:detailList="detailList"
@gridEditingFinish="gridEditingFinish"
v-if="item.id == 'ercInfoTab'"
:is="'Form'"
:parentPrgmId="myPrgmId"
:detailList="detailList"
@gridEditingFinish="gridEditingFinish"
/>
<ErcChrgInfoTab
v-if="item.id == 'ercChrgInfoTab'"
:parentPrgmId="myPrgmId"
:innerTabGridInfo="{ tab, idx }"
v-if="item.id == 'ercChrgInfoTab'"
:parentPrgmId="myPrgmId"
:innerTabGridInfo="{ tab, idx }"
/>
</v-tab-item>
</v-tabs-items>

View File

@ -1,6 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<PageTitle/>
<CommonPageTitle/>
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">

View File

@ -1,6 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<PageTitle />
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -480,18 +480,17 @@ const myDetail = [
labelCols: 12,
textCols: 12,
},
{
type: 'CheckBox',
label: '사용 여부',
valueNm: 'useFg',
disabled: false,
cols: 6,
class: 'py-2 pr-4 pt-5',
class: 'py-2 pr-4 pt-4',
value: { '1': true, '0': false },
required: true,
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'SelectBox',

View File

@ -1,63 +1,26 @@
<template>
<div class="l-layout">
<PageTitle text="측정 위치 데이터 조회" />
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
<v-row align="end" no-gutters>
<v-col :cols="2">
<component
:is="'SelectBlocMstr'"
ref="SelectBlocMstr"
:parentPrgmId="myPrgmId"
:textCols="12"
customClass="select-large"
/>
</v-col>
<!-- <v-col :cols="2">
<component
label="검침개소"
:is="'PastRsltDataReadPop'"
:parentPrgmId="myPrgmId"
/>
</v-col> -->
<!-- <v-col :cols="2">
<component
:is="'SelectTagNmList'"
ref="SelectTagNmList"
:parentPrgmId="myPrgmId"
/>
</v-col> -->
<v-col :cols="3">
<!-- <component
:is="'PastRsltDataReadTagPop'"
:parentPrgmId="myPrgmId"
:label="'TAG'"
/> -->
<component
:is="'EvtObjPop'"
:parentPrgmId="myPrgmId"
:item="evtObjPopItem"
customClass="select-large"
/>
<component :is="'SelectBlocMstr'" ref="SelectBlocMstr" :parentPrgmId="myPrgmId"
:textCols="12" customClass="select-large" />
</v-col>
<v-col :cols="4">
<component
:is="'Datepicker'"
:parentPrgmId="myPrgmId"
:label="'조회기간'"
:textCols="12"
/>
<v-col :cols="3">
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
customClass="select-large" />
</v-col>
<v-col :cols="3" class="d-flex align-end justify-end text-right">
<BtnExcelDownload
class="mr-1"
:parentPrgmId="myPrgmId"
:gridName="gridName"
type="primary"
size="large"
/>
<v-col :cols="3">
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'조회기간'" :textCols="12" />
</v-col>
<v-col :cols="3" class="d-flex align-end justify-end text-right">
<BtnExcelDownload class="mr-1" :parentPrgmId="myPrgmId" :gridName="gridName" type="primary"
size="large" />
<BtnSearch @click="search" size="large" />
</v-col>
</v-row>
@ -68,12 +31,12 @@
<v-col :cols="12" style="height: 100%" class="h100">
<v-card class="px-5 py-5 h100">
<div ref="gridParent" class="h100 px-5" style="height: 100%">
<component
ref="myGrid"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
/>
<component ref="myGrid" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
:parentPrgmId="myPrgmId" />
</div>
<div class="d-flex align-center justify-space-between">
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
@loadData="changeGrid" />
</div>
</v-card>
</v-col>
@ -97,7 +60,7 @@ import BtnExcelDownload from '~/components/common/button/BtnExcelDownload';
import DateUtility from '~/plugins/dateUtility';
// import Search from "~/components/common/search";
import EvtObjPop from '~/components/common/modal/EvtObjPop';
import PageTitle from "~/components/common/PageTitle";
import pagination from '~/components/Pagination';
let myTitle;
// const myPrgmId = "PRG0052";
@ -130,7 +93,7 @@ export default {
PastRsltDataReadPop,
PastRsltDataReadTagPop,
EvtObjPop,
PageTitle,
pagination,
},
data() {
return {
@ -146,12 +109,16 @@ export default {
valueNm2: 'tagNm',
iconShow: true,
disabled: false,
labelCols: 12,
textCols: 12,
class: 'py-2',
required: false,
formFg: false,
},
itemsPerPage: 10,
itemsPerPageArray: [10, 20, 30],
limit: 20,
page: 1,
totalCount: 0,
};
},
computed: {
@ -164,9 +131,6 @@ export default {
chkTagId() {
return this.pageData.tagList === undefined ? null : this.pageData.tagId;
},
// chkTagList() {
// return this.pageData.tagList;
// },
chkTagNm() {
return this.pageData.tagData.tagNm;
},
@ -176,18 +140,16 @@ export default {
},
watch: {
chkIsFind(val) {
if (val) this.search();
if (val) {
this.page = 1;
this.search();
}
},
chkTagId(val) {
if (this.initFlag && val != null) {
this.search();
}
},
// chkTagList() {
// if(this.initFlag){
// this.search();
// }
// },
chkTagNm() {
if (this.initFlag) {
this.search();
@ -207,7 +169,7 @@ export default {
defaultData: defaultData,
});
},
created() {},
created() { },
async mounted() {
await this.setFromDt();
await this.init();
@ -330,6 +292,7 @@ export default {
this.loadGrid = false;
let res = [];
let res2 = [];
let yearQuarterData = [];
yearQuarterData = this.yearQuarterMaker([
this.pageData.fromDt,
@ -381,8 +344,18 @@ export default {
apiKey: 'selectTagRawDataByQuarter',
resKey: 'pastRsltReadData',
sendParam: sendParams,
limit: this.limit,
page: this.page,
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
});
res2 = await this.postApiReturn({
apiKey: 'selectTagRawDataByQuarterPageTotal',
resKey: 'pastRslPageTotal',
sendParam: sendParams
});
this.totalCount = res2[0].totalcount;
this.setGridData({
gridKey: this.gridName,
value: res,
@ -393,6 +366,9 @@ export default {
fromDt: this.pageData.fromDt,
toDt: this.pageData.toDt,
yearQuarterList: yearQuarterData['yearQuarterList'],
limit: this.limit,
page: this.page,
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
};
sendParams['tagId'] = this.pageData.tagId;
//
@ -410,6 +386,13 @@ export default {
sendParam: sendParams,
});
res2 = await this.postApiReturn({
apiKey: 'selectTagRawDataByQuarterPageTotal',
resKey: 'pastRslPageTotal',
sendParam: sendParams
});
this.totalCount = res2[0].totalcount;
this.setGridData({
gridKey: this.gridName,
value: res,
@ -487,6 +470,12 @@ export default {
finalResult['yearQuarterList'] = result;
return finalResult;
},
changeGrid: async function (pageNum, limit) {
this.page = pageNum;
this.limit = limit;
this.search();
},
},
};

View File

@ -59,18 +59,16 @@
:btnActionsFnc="btnActions"
/>
</div>
<div class="h100 px-5" style="height:calc(100% - 70px)">
<div ref="gridParent" class="w100 h100">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
@getRowsData="getRowData"
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
:selectedRowDataWatchFlag="true"
/>
</div>
<div ref="gridParent" class="h100 px-5" style="height:calc(100% - 70px)">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
@getRowsData="getRowData"
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
:selectedRowDataWatchFlag="true"
/>
</div>
</v-card>
</v-col>

View File

@ -91,7 +91,7 @@
</a-button>
</div>
</div>
<div ref="gridParent" class="px-5 w100" style="min-height: 60vh">
<div ref="gridParent" class="px-5 w100" style="height: 55vh;">
<component
:is="loadGrid ? 'Grid' : null"
:ref="gridName"
@ -242,6 +242,10 @@ export default {
columnOptions: {
resizable: true,
},
pageOptions: {
useClient: true,
perPage: 13,
},
};
this.setGridOption({
gridKey: this.gridName,

View File

@ -1,6 +1,6 @@
<template>
<div class="l-layout">
<PageTitle/>
<CommonPageTitle/>
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -58,7 +58,7 @@
@sendSelectedRowStatInfo="getSelectedRowStatInfo" :selectedRowDataWatchFlag="true" />
</div>
</v-card-actions>
<!-- <div class="d-flex align-center justify-space-between">
<div class="d-flex align-center justify-space-between">
<pagination
id="pagination"
:total-count="totalCount"
@ -66,7 +66,7 @@
:limit="limit"
@loadData="changeGrid"
/>
</div> -->
</div>
</v-card>
</v-col>
<v-col :cols="7" class="h100">
@ -107,7 +107,6 @@ import TagAddInfoTab from '@/components/pages/ems/TagInfo/TagAddInfoTab';
import Grid from '~/components/common/Grid';
import Utility from '~/plugins/utility';
import pagination from '~/components/Pagination';
import PageTitle from "~/components/common/PageTitle";
let myTitle;
// const myPrgmId = "PRG0051";
@ -140,13 +139,12 @@ export default {
TagAddInfoTab,
Grid,
pagination,
PageTitle
},
data() {
return {
myPrgmId: myPrgmId,
gridName: 'rowGrid',
loadGrid: true,
loadGrid: false,
tab: null,
items: [
{ name: 'TAG 정보', id: 'tagBaseInfoTab', disabledFlag: false },
@ -275,16 +273,12 @@ export default {
this.gridInit();
},
gridInit() {
const gridHeight = this.$refs.gridParent.offsetHeight - 180;
const gridHeight = this.$refs.gridParent.offsetHeight - 16;
const myOptions = {
columnOptions: {
resizable: true,
},
pageOptions: {
useClient: true,
perPage: 10,
},
scrollX: true,
header: {
height: 38,
@ -527,16 +521,16 @@ export default {
//rowKey: 0,
rowKey:
this.pageData.rowGridSelectKey == '' ||
this.pageData.rowGridSelectKey == null
this.pageData.rowGridSelectKey == null
? 0
: this.pageData.rowGridSelectKey ==
this.$refs[this.gridName].getData().length - 1
? this.pageData.rowGridSelectKey
: 0,
this.$refs[this.gridName].getData().length - 1
? this.pageData.rowGridSelectKey
: 0,
columnName: 'tagId',
setScroll: true,
});
} catch (error) { }
} catch (error) {}
// this.$refs[this.gridName].focus({
// rowKey: 0,
// columnName: "tagId",
@ -773,7 +767,7 @@ export default {
gridEditingFinish(data) {
this.$refs[this.gridName].editingFinish(data);
},
changeGrid: async function (pageNum, limit) {
changeGrid: async function(pageNum, limit) {
this.page = pageNum;
this.limit = limit;
@ -817,9 +811,9 @@ function isValidAlrmVal(obj) {
if (Number(obj[keyList[i]]) >= Number(obj[keyList[j]])) {
alert(
nameList[j] +
'값은 ' +
nameList[i] +
'값보다 큰 숫자를 입력해야 합니다.',
'값은 ' +
nameList[i] +
'값보다 큰 숫자를 입력해야 합니다.',
);
return false;
}
@ -1112,4 +1106,4 @@ const myDetail = [
class: 'py-2',
},
];
</script>
</script>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<PageTitle text="냉동기" />
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -180,7 +180,7 @@ export default {
contentData: {},
loadChart: false,
testFlag: true,
testFlag: false,
};
},
computed: {
@ -270,15 +270,14 @@ export default {
}
},
async getEnrgUseTotSummData() {
// var res = await this.postApiReturn({
// apiKey: "selectEnrgUseTotSumm",
// resKey: "data",
// sendParam: {
// fromDt: this.pageData.fromDt,
// eqpmKind: this.selectValue01,
// },
// });
let res = [];
var res = await this.postApiReturn({
apiKey: "selectEnrgUseTotSumm",
resKey: "data",
sendParam: {
fromDt: this.pageData.fromDt,
eqpmKind: this.selectValue01,
},
});
if (this.testFlag == true) {
res = [

View File

@ -4,7 +4,7 @@
<v-avatar size="12" :style="{ backgroundColor: 'currentColor' }"></v-avatar>
에너지 사용량 실적
</h1> -->
<PageTitle text="에너지 사용량 실적" />
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -255,9 +255,8 @@ export default {
},
methods: {
async init() {
// await this.getSelectValueList();
// await this.setQueryParams();
await this.getSelectValueList();
await this.setQueryParams();
this.gridInit();
await this.getGridData();
@ -488,131 +487,41 @@ export default {
this.loadGrid = false;
this.enrgUseMainIdxDesc = [];
var apiKey = null;
// var params = {
// fabId: this.selectValue01,
// eqpmKindId: this.selectValue02,
// eqpmGrpId: this.selectValue03,
// fromDt: this.pageData.fromDt,
// };
var params = {
fabId: this.selectValue01,
eqpmKindId: this.selectValue02,
eqpmGrpId: this.selectValue03,
fromDt: this.pageData.fromDt,
};
// if (this.pageData.cmCycle == "CYC_DAY") {
// params["fromDtMm"] = String(this.pageData.fromDt).substring(0, 6);
// apiKey = "selectDailyEnrgUseMainIdx";
// } else if (this.pageData.cmCycle == "CYC_MONTH") {
// apiKey = "selectMonthlyEnrgUseMainIdx";
// }
if (this.pageData.cmCycle == "CYC_DAY") {
params["fromDtMm"] = String(this.pageData.fromDt).substring(0, 6);
apiKey = "selectDailyEnrgUseMainIdx";
} else if (this.pageData.cmCycle == "CYC_MONTH") {
apiKey = "selectMonthlyEnrgUseMainIdx";
}
// var res = await this.postApiReturn({
// apiKey: apiKey,
// resKey: "eqpmIndMntrData",
// sendParam: params,
// });
var res = await this.postApiReturn({
apiKey: apiKey,
resKey: "eqpmIndMntrData",
sendParam: params,
});
// this.enrgUseMainIdxDesc = await this.postApiReturn({
// apiKey: "selectEnrgUseMainIdxDesc",
// resKey: "eqpmIndMntrData",
// sendParam: {
// eqpmGrpId: this.selectValue03,
// },
// });
var newRes = [
{
no: 1,
fabId: "FAB001",
fabNm: "서울FAB",
eqpmGrpId: "GRP01",
eqpmGrpNm: "조립라인",
eqpmId: "EQ001",
eqpmNm: "설비A",
planVal: 1000,
usedVal: 950,
effcRt: "95%",
gd01: 88,
gd02: 90,
gd03: 85,
gd04: 87,
gd05: 89,
gd06: 86,
gd07: 90,
gd08: 88,
gd09: 87,
gd10: 89,
this.enrgUseMainIdxDesc = await this.postApiReturn({
apiKey: "selectEnrgUseMainIdxDesc",
resKey: "eqpmIndMntrData",
sendParam: {
eqpmGrpId: this.selectValue03,
},
{
no: 2,
fabId: "FAB002",
fabNm: "부산FAB",
eqpmGrpId: "GRP02",
eqpmGrpNm: "검사라인",
eqpmId: "EQ002",
eqpmNm: "설비B",
planVal: 1200,
usedVal: 1100,
effcRt: "91.7%",
gd01: 85,
gd02: 84,
gd03: 86,
gd04: 83,
gd05: 82,
gd06: 84,
gd07: 85,
gd08: 86,
gd09: 87,
gd10: 88,
},
{
no: 3,
fabId: "FAB003",
fabNm: "대전FAB",
eqpmGrpId: "GRP03",
eqpmGrpNm: "포장라인",
eqpmId: "EQ003",
eqpmNm: "설비C",
planVal: 900,
usedVal: 870,
effcRt: "96.7%",
gd01: 90,
gd02: 91,
gd03: 89,
gd04: 88,
gd05: 90,
gd06: 91,
gd07: 92,
gd08: 90,
gd09: 89,
gd10: 91,
},
{
no: 4,
fabId: "FAB004",
fabNm: "광주FAB",
eqpmGrpId: "GRP04",
eqpmGrpNm: "테스트라인",
eqpmId: "EQ004",
eqpmNm: "설비D",
planVal: 1100,
usedVal: 1050,
effcRt: "95.5%",
gd01: 87,
gd02: 88,
gd03: 86,
gd04: 85,
gd05: 86,
gd06: 87,
gd07: 88,
gd08: 89,
gd09: 90,
gd10: 91,
},
];
});
// for (var i = 0; i < res.length; i++) {
// newRes.push({
// ...res[i],
// no: i + 1,
// });
// }
var newRes = [];
for (var i = 0; i < res.length; i++) {
newRes.push({
...res[i],
no: i + 1,
});
}
this.setGridData({
gridKey: this.gridName,
@ -752,141 +661,9 @@ const defaultData = {
},
fromDt: Utility.setFormatDate(new Date(), "YYYYMM"), // 조회 시작일
grid01: {
data: [
{
no: 1,
fabId: "FAB001",
fabNm: "서울FAB",
eqpmGrpId: "GRP01",
eqpmGrpNm: "조립라인",
eqpmId: "EQ001",
eqpmNm: "설비A",
planVal: 1000,
usedVal: 950,
effcRt: "95%",
gd01: 88,
gd02: 90,
gd03: 85,
gd04: 87,
gd05: 89,
gd06: 86,
gd07: 90,
gd08: 88,
gd09: 87,
gd10: 89,
},
{
no: 2,
fabId: "FAB002",
fabNm: "부산FAB",
eqpmGrpId: "GRP02",
eqpmGrpNm: "검사라인",
eqpmId: "EQ002",
eqpmNm: "설비B",
planVal: 1200,
usedVal: 1100,
effcRt: "91.7%",
gd01: 85,
gd02: 84,
gd03: 86,
gd04: 83,
gd05: 82,
gd06: 84,
gd07: 85,
gd08: 86,
gd09: 87,
gd10: 88,
},
{
no: 3,
fabId: "FAB003",
fabNm: "대전FAB",
eqpmGrpId: "GRP03",
eqpmGrpNm: "포장라인",
eqpmId: "EQ003",
eqpmNm: "설비C",
planVal: 900,
usedVal: 870,
effcRt: "96.7%",
gd01: 90,
gd02: 91,
gd03: 89,
gd04: 88,
gd05: 90,
gd06: 91,
gd07: 92,
gd08: 90,
gd09: 89,
gd10: 91,
},
{
no: 4,
fabId: "FAB004",
fabNm: "광주FAB",
eqpmGrpId: "GRP04",
eqpmGrpNm: "테스트라인",
eqpmId: "EQ004",
eqpmNm: "설비D",
planVal: 1100,
usedVal: 1050,
effcRt: "95.5%",
gd01: 87,
gd02: 88,
gd03: 86,
gd04: 85,
gd05: 86,
gd06: 87,
gd07: 88,
gd08: 89,
gd09: 90,
gd10: 91,
},
],
column: [
{ header: "NO", name: "no", align: "center" },
{ header: "fabId", name: "fabId", hidden: true },
{ header: "FAB", name: "fabNm", align: "left" },
{ header: "eqpmGrpId", name: "eqpmGrpId", hidden: true },
{ header: "설비그룹", name: "eqpmGrpNm", align: "left" },
{ header: "eqpmId", name: "eqpmId", hidden: true },
{ header: "설비명", name: "eqpmNm", align: "left" },
{ header: "계획량", name: "planVal", align: "right" },
{ header: "사용량", name: "usedVal", align: "right" },
{ header: "KPI", name: "effcRt", align: "right" },
{ header: "지표1", name: "gd01", align: "right" },
{ header: "지표2", name: "gd02", align: "right" },
{ header: "지표3", name: "gd03", align: "right" },
{ header: "지표4", name: "gd04", align: "right" },
{ header: "지표5", name: "gd05", align: "right" },
{ header: "지표6", name: "gd06", align: "right" },
{ header: "지표7", name: "gd07", align: "right" },
{ header: "지표8", name: "gd08", align: "right" },
{ header: "지표9", name: "gd09", align: "right" },
{ header: "지표10", name: "gd10", align: "right" },
],
option: {
header: {
height: 65,
complexColumns: [
{
header: "주요지표",
name: "complexColumn01",
childNames: [
"gd01",
"gd02",
"gd03",
"gd04",
"gd05",
"gd06",
"gd07",
"gd08",
"gd09",
"gd10",
],
},
],
},
},
data: [],
column: [],
option: {},
},
};