Compare commits
1 Commits
dev-manhph
...
68916550e5
Author | SHA1 | Date | |
---|---|---|---|
68916550e5 |
@ -21,15 +21,6 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-no-scroll-y {
|
|
||||||
.tui-grid-rside-area {
|
|
||||||
.tui-grid-header-area,
|
|
||||||
.tui-grid-summary-area {
|
|
||||||
margin-right: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-rside-area {
|
&-rside-area {
|
||||||
|
|
||||||
.tui-grid-header-area,
|
.tui-grid-header-area,
|
||||||
@ -118,6 +109,44 @@
|
|||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
|
|
||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
|
.enrg-effc {
|
||||||
|
.tui-grid-rside-area {
|
||||||
|
.tui-grid-table {
|
||||||
|
tr {
|
||||||
|
|
||||||
|
td:nth-child(4),
|
||||||
|
td:nth-child(10) {
|
||||||
|
.tui-grid-cell-content {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid {
|
||||||
|
|
||||||
|
&-row-odd,
|
||||||
|
&-row-even {
|
||||||
|
&:hover {
|
||||||
|
|
||||||
|
>td:nth-child(4),
|
||||||
|
td:nth-child(10) {
|
||||||
|
.tui-grid-cell-content {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.tui-grid-content-area {
|
.tui-grid-content-area {
|
||||||
.tui-grid-header-area {
|
.tui-grid-header-area {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
@ -213,7 +242,7 @@
|
|||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: $scrollbar-width !important;
|
// width: $scrollbar-width !important;
|
||||||
height: $scrollbar-width !important;
|
height: $scrollbar-width !important;
|
||||||
-webkit-appearance: initial;
|
-webkit-appearance: initial;
|
||||||
background-color: rgba(0, 0, 0, 0) !important;
|
background-color: rgba(0, 0, 0, 0) !important;
|
||||||
@ -367,6 +396,15 @@
|
|||||||
// "tui-grid-cell-insert-color"
|
// "tui-grid-cell-insert-color"
|
||||||
// );
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
&.custom-link {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,11 +174,6 @@ export default {
|
|||||||
this.gridScrollTop = e.target.scrollTop;
|
this.gridScrollTop = e.target.scrollTop;
|
||||||
this.gridScrollLeft = e.target.scrollLeft;
|
this.gridScrollLeft = e.target.scrollLeft;
|
||||||
});
|
});
|
||||||
if (this.scrollBody.scrollHeight > this.scrollBody.clientHeight) {
|
|
||||||
this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.remove('tui-grid-no-scroll-y');
|
|
||||||
} else {
|
|
||||||
this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.add('tui-grid-no-scroll-y');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
import { mapState, mapMutations, mapActions } from 'vuex';
|
import { mapState, mapMutations, mapActions } from 'vuex';
|
||||||
import Buttons from '~/components/common/button/Buttons';
|
import Buttons from '~/components/common/button/Buttons';
|
||||||
import Grid from '~/components/common/Grid';
|
import Grid from '~/components/common/Grid';
|
||||||
|
import { CustomCheckbox } from '~/plugins/gridUtility';
|
||||||
|
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
||||||
import Form from '~/components/common/form/Form';
|
import Form from '~/components/common/form/Form';
|
||||||
import mixinGlobal from '@/mixin/global.js';
|
import mixinGlobal from '@/mixin/global.js';
|
||||||
import Utility from '~/plugins/utility';
|
import Utility from '~/plugins/utility';
|
||||||
@ -322,7 +324,7 @@ const myDataSetTagDetail = [
|
|||||||
valueNm: 'tagNm',
|
valueNm: 'tagNm',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 mt-1',
|
class: 'py-2 mt-2',
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
@ -348,11 +350,12 @@ const myDataSetTagDetail = [
|
|||||||
valueNm: 'useFg',
|
valueNm: 'useFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 5,
|
cols: 5,
|
||||||
class: 'py-2 mt-1',
|
class: 'py-2 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
|
// class: "d-flex align-end"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'TextArea',
|
type: 'TextArea',
|
||||||
@ -366,4 +369,23 @@ const myDataSetTagDetail = [
|
|||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
const dataPathDataExample = [
|
||||||
|
{
|
||||||
|
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
||||||
|
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
||||||
|
type: '합계'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
||||||
|
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
||||||
|
type: '합계'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
||||||
|
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
||||||
|
type: '합계'
|
||||||
|
},
|
||||||
|
];
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,21 +7,41 @@
|
|||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row align="end" no-gutters>
|
<v-row align="end" no-gutters>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<InputText :parentPrgmId="myPrgmId" label="배치ID" valueNm="batchId" :searchOption="true"
|
<InputText
|
||||||
customClass="input-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
label="배치ID"
|
||||||
|
valueNm="batchId"
|
||||||
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<InputText :parentPrgmId="myPrgmId" label="배치명" valueNm="batchNm" :searchOption="true"
|
<InputText
|
||||||
customClass="input-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
label="배치명"
|
||||||
|
valueNm="batchNm"
|
||||||
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'실행 결과'"
|
<component
|
||||||
:dataKey="'execRsltCd'" :sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
|
:is="'selectCodeList'"
|
||||||
:addAll="true" customClass="select-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
:label="'실행 결과'"
|
||||||
|
:dataKey="'execRsltCd'"
|
||||||
|
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
|
||||||
|
:addAll="true"
|
||||||
|
customClass="select-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'조회기간'"
|
<component
|
||||||
customClass="datepicker-large" />
|
:is="'Datepicker'"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:label="'조회기간'"
|
||||||
|
customClass="datepicker-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<div class="text-right d-flex align-end justify-end pl-9" style="gap: 8px">
|
<div class="text-right d-flex align-end justify-end pl-9" style="gap: 8px">
|
||||||
<BtnSearch />
|
<BtnSearch />
|
||||||
@ -34,30 +54,41 @@
|
|||||||
|
|
||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<!-- 배치 리스트 -->
|
<!-- 배치 리스트 -->
|
||||||
<v-col :cols="12" style="height:70%">
|
<v-col :cols="12" style="height:50%">
|
||||||
<v-card class="h100">
|
<v-card class="pb-5 h100">
|
||||||
<v-card-title>배치 리스트</v-card-title>
|
<v-card-title>배치 리스트</v-card-title>
|
||||||
<div class="h100" style="height:calc(100% - 150px)">
|
<div class="h100" style="height:calc(100% - 70px)">
|
||||||
<div ref="gridParent" class="px-5 h100">
|
<div ref="gridParent" class="px-5 h100">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :parentPrgmId="myPrgmId"
|
<component
|
||||||
:gridName="gridName" @getRowsData="getRowData" />
|
:ref="gridName"
|
||||||
</div>
|
:is="loadGrid ? 'Grid' : null"
|
||||||
<div class="d-flex align-center justify-center pt-7" v-if="loadGrid && totalCount > 0">
|
:parentPrgmId="myPrgmId"
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
:gridName="gridName"
|
||||||
@loadData="changeGrid" />
|
@getRowsData="getRowData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
||||||
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
|
@loadData="changeGrid" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<!-- 배치 상세 -->
|
<!-- 배치 상세 -->
|
||||||
<v-col :cols="12" style="height:30%">
|
<v-col :cols="12" style="height:50%">
|
||||||
<v-card class="h100">
|
<v-card class="pb-5 h100">
|
||||||
<div class="d-flex align-center justify-space-between pa-5">
|
<div class="d-flex align-center justify-space-between pa-5">
|
||||||
<v-card-title class="pa-0">배치 상세</v-card-title>
|
<v-card-title class="pa-0">배치 상세</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div style="height:calc(100% - 50px)" class="px-5">
|
<div style="height:calc(100% - 50px)">
|
||||||
<component :is="'Form'" :parentPrgmId="myPrgmId" :detailList="detailList"
|
<div ref="gridParent" class="px-5 h100">
|
||||||
@gridEditingFinish="gridEditingFinish" />
|
<component
|
||||||
|
:is="'Form'"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:detailList="detailList"
|
||||||
|
@gridEditingFinish="gridEditingFinish"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -116,7 +147,7 @@ export default {
|
|||||||
gridName: 'rowGrid',
|
gridName: 'rowGrid',
|
||||||
// rowGridOrigin: [],
|
// rowGridOrigin: [],
|
||||||
detailList: myDetail,
|
detailList: myDetail,
|
||||||
itemsPerPage: 20,
|
itemsPerPage: 10,
|
||||||
itemsPerPageArray: [10, 20, 30],
|
itemsPerPageArray: [10, 20, 30],
|
||||||
limit: 20,
|
limit: 20,
|
||||||
page: 1,
|
page: 1,
|
||||||
@ -184,12 +215,12 @@ export default {
|
|||||||
this.gridInit();
|
this.gridInit();
|
||||||
},
|
},
|
||||||
layoutInit() {
|
layoutInit() {
|
||||||
const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
this.$refs.contents.style.height = 'auto';
|
||||||
this.$refs.contents.style.height = `calc(100% - 30px - ${searchFilterHeight}px)`;
|
|
||||||
},
|
},
|
||||||
gridInit() {
|
gridInit() {
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
const gridHeight = this.$refs.gridParent.offsetHeight;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
scrollX: false,
|
scrollX: false,
|
||||||
};
|
};
|
||||||
@ -438,7 +469,6 @@ const myDetail = [
|
|||||||
readonly: true,
|
readonly: true,
|
||||||
cols: 12,
|
cols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2',
|
||||||
rows: 3
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
@ -41,7 +41,7 @@
|
|||||||
<v-card-title>
|
<v-card-title>
|
||||||
<span class="custom-title-4">캘린더 미리보기</span>
|
<span class="custom-title-4">캘린더 미리보기</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-actions class="px-5 d-block" >
|
<v-card-actions class="px-5 d-block">
|
||||||
<Calendar :parentPrgmId="myPrgmId" :gridName="gridName" :headerVisible="false"
|
<Calendar :parentPrgmId="myPrgmId" :gridName="gridName" :headerVisible="false"
|
||||||
:showTitle="false" />
|
:showTitle="false" />
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
@ -470,71 +470,77 @@ const defaultData = {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.selectbox:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.calendarOption {
|
|
||||||
box-sizing: border-box;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
select.selectbox {
|
|
||||||
box-sizing: border-box;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
/* 높이 초기화 */
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
line-height: normal;
|
|
||||||
/* line-height 초기화 */
|
|
||||||
font-family: inherit;
|
|
||||||
/* 폰트 상속 */
|
|
||||||
border: 0;
|
|
||||||
// opacity: 0; /* 숨기기 */
|
|
||||||
// filter:alpha(opacity=0); /* IE8 숨기기 */
|
|
||||||
// -webkit-appearance: none; /* 네이티브 외형 감추기 */
|
|
||||||
// -moz-appearance: none;
|
|
||||||
// appearance: none;
|
|
||||||
opacity: 1;
|
|
||||||
/* 숨기기 */
|
|
||||||
filter: alpha(opacity=1);
|
|
||||||
/* IE8 숨기기 */
|
|
||||||
-webkit-appearance: auto;
|
|
||||||
/* 네이티브 외형 감추기 */
|
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tui-grid-layer-editing {
|
|
||||||
position: absolute;
|
|
||||||
background: #fff;
|
|
||||||
// background-image: initial;
|
|
||||||
// background-position-x: initial;
|
|
||||||
// background-position-y: initial;
|
|
||||||
// background-size: initial;
|
|
||||||
// background-repeat-x: initial;
|
|
||||||
// background-repeat-y: initial;
|
|
||||||
// background-attachment: initial;
|
|
||||||
// background-origin: initial;
|
|
||||||
// background-clip: initial;
|
|
||||||
// background-color: rgb(255, 255, 255);
|
|
||||||
// z-index: 15;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
/* border-style: solid; */
|
|
||||||
/* border-width: 1px; */
|
|
||||||
white-space: nowrap;
|
|
||||||
border-width: 0px;
|
|
||||||
// box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
|
.selectbox:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendarOption {
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
select.selectbox {
|
||||||
|
background: #fff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
/* 높이 초기화 */
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
line-height: normal;
|
||||||
|
/* line-height 초기화 */
|
||||||
|
font-family: inherit;
|
||||||
|
/* 폰트 상속 */
|
||||||
|
border: 0;
|
||||||
|
// opacity: 0; /* 숨기기 */
|
||||||
|
// filter:alpha(opacity=0); /* IE8 숨기기 */
|
||||||
|
// -webkit-appearance: none; /* 네이티브 외형 감추기 */
|
||||||
|
// -moz-appearance: none;
|
||||||
|
// appearance: none;
|
||||||
|
opacity: 1;
|
||||||
|
/* 숨기기 */
|
||||||
|
filter: alpha(opacity=1);
|
||||||
|
/* IE8 숨기기 */
|
||||||
|
-webkit-appearance: auto;
|
||||||
|
/* 네이티브 외형 감추기 */
|
||||||
|
-moz-appearance: auto;
|
||||||
|
appearance: auto;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
border-radius: 6px;
|
||||||
|
color: rgba(0,0,0,0.87843);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-editing {
|
||||||
|
position: absolute;
|
||||||
|
background: #fff;
|
||||||
|
// background-image: initial;
|
||||||
|
// background-position-x: initial;
|
||||||
|
// background-position-y: initial;
|
||||||
|
// background-size: initial;
|
||||||
|
// background-repeat-x: initial;
|
||||||
|
// background-repeat-y: initial;
|
||||||
|
// background-attachment: initial;
|
||||||
|
// background-origin: initial;
|
||||||
|
// background-clip: initial;
|
||||||
|
// background-color: rgb(255, 255, 255);
|
||||||
|
// z-index: 15;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
/* border-style: solid; */
|
||||||
|
/* border-width: 1px; */
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0px;
|
||||||
|
// box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.custom-vc-calender {
|
.custom-vc-calender {
|
||||||
.vc-header {
|
.vc-header {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<!-- 리스트 페이지 시작 -->
|
<!-- 리스트 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'list'" class="h1001">
|
<div v-if="pageActionFlag == 'list'" class="h1001">
|
||||||
<v-card class="">
|
<v-card class="">
|
||||||
<div class="pa-5 pb-0">
|
<div class="pa-5">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="center" no-gutters>
|
||||||
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
||||||
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||||
@ -15,15 +15,11 @@
|
|||||||
<!-- <v-btn @click="listPageButtonGroupClickEvent('delete')" :ripple="false">삭제</v-btn> -->
|
<!-- <v-btn @click="listPageButtonGroupClickEvent('delete')" :ripple="false">삭제</v-btn> -->
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 73px);">
|
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
|
||||||
<div ref="gridParent" class="px-50" style="min-height: 64vh;">
|
<div ref="gridParent" class="px-50" style="min-height: 70vh;">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId" @getRowsData="getRowData" />
|
:parentPrgmId="myPrgmId" @getRowsData="getRowData" />
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
|
||||||
@loadData="changeGrid" />
|
|
||||||
</div>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</div>
|
</div>
|
||||||
@ -41,7 +37,7 @@
|
|||||||
class="mr-1" icon="unordered-list">목록</a-button>
|
class="mr-1" icon="unordered-list">목록</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
||||||
class="mr-1" icon="send-outlined">
|
class="mr-1" icon="send-outlined">
|
||||||
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
<v-icon small :class="['mr-2']" >$icoSend</v-icon>
|
||||||
답글
|
답글
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
||||||
@ -64,8 +60,11 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">
|
<v-card-title class="custom-title-7 pa-0">
|
||||||
파일목록
|
파일목록
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div v-for="fileData in viewActionData.fileData" :key="fileData.apndFileId"
|
<div v-for="fileData in viewActionData.fileData"
|
||||||
:class="['file-item', isDarkMode ? 'dark' : 'light']" style="background-color: unset;">
|
:key="fileData.apndFileId"
|
||||||
|
:class="['file-item', isDarkMode?'dark':'light']"
|
||||||
|
style="background-color: unset;"
|
||||||
|
>
|
||||||
<a @click.prevent="downloadFile(fileData)" class="pa-0">
|
<a @click.prevent="downloadFile(fileData)" class="pa-0">
|
||||||
<div class="d-flex justify-start search-box-label mb-0">
|
<div class="d-flex justify-start search-box-label mb-0">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
@ -94,14 +93,15 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" style="min-height: calc(100vh - 450px);">
|
<v-col :cols="12" style="min-height: calc(100vh - 450px);">
|
||||||
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg"
|
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg"
|
||||||
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']" />
|
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']"/>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="writeActionData.fileData">
|
<div class="" v-if="writeActionData.fileData">
|
||||||
<div v-for="(fileData, index) in writeActionData.fileData" :key="fileData.apndFileId"
|
<div v-for="(fileData, index) in writeActionData.fileData" :key="fileData.apndFileId"
|
||||||
:class="['file-item d-flex justify-space-between', isDarkMode ? 'dark' : 'light']">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -110,16 +110,17 @@
|
|||||||
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload"
|
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
||||||
@click="$refs.writeInputFile.$refs.input.click()">
|
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
||||||
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false"
|
<a-button @click="writePageButtonGroupClickEvent('cancel')"
|
||||||
class="ant-btn-popup-default mr-2" color="primary">취소</a-button>
|
:ripple="false"
|
||||||
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary" >취소</a-button>
|
||||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
||||||
type="primary">등록</a-button>
|
type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -141,14 +142,15 @@
|
|||||||
</v-text-field>
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
||||||
<editor ref="tuiReplyEditor" height="100%" initialEditType="wysiwyg"
|
<editor ref="tuiReplyEditor" height="100%" initialEditType="wysiwyg"
|
||||||
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']" />
|
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']"/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="replyActionData.fileData">
|
<div class="" v-if="replyActionData.fileData">
|
||||||
<div v-for="(fileData, index) in replyActionData.fileData" :key="fileData.apndFileId"
|
<div v-for="(fileData, index) in replyActionData.fileData" :key="fileData.apndFileId"
|
||||||
:class="['file-item d-flex justify-space-between', isDarkMode ? 'dark' : 'light']">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -157,8 +159,7 @@
|
|||||||
@click="replyActionData.fileData.splice(index, 1)" />
|
@click="replyActionData.fileData.splice(index, 1)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload"
|
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
||||||
@click="$refs.replyInputFile.$refs.input.click()">
|
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
||||||
@ -166,8 +167,10 @@
|
|||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('cancel')" class="ant-btn-popup-default mr-2"
|
<a-button @click="replyPageButtonGroupClickEvent('cancel')"
|
||||||
color="primary" :ripple="false">취소</a-button>
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary"
|
||||||
|
:ripple="false">취소</a-button>
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
||||||
type="primary">등록</a-button>
|
type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -192,13 +195,14 @@
|
|||||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4">
|
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4">
|
||||||
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
||||||
:initialValue="updateActionData.content"
|
:initialValue="updateActionData.content"
|
||||||
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']" />
|
:class="[isDarkMode ? 'toastui-editor-dark' : 'toastui-editor-light']"/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="updateActionData.fileData">
|
<div class="" v-if="updateActionData.fileData">
|
||||||
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
||||||
:class="['file-item d-flex justify-space-between', isDarkMode ? 'dark' : 'light']">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -210,7 +214,8 @@
|
|||||||
<div class="current-files" v-if="updateActionData.currentFileList">
|
<div class="current-files" v-if="updateActionData.currentFileList">
|
||||||
<div v-for="(fileData, index) in updateActionData.currentFileList"
|
<div v-for="(fileData, index) in updateActionData.currentFileList"
|
||||||
:key="fileData.apndFileId"
|
:key="fileData.apndFileId"
|
||||||
:class="['file-item d-flex justify-space-between', isDarkMode ? 'dark' : 'light']">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
||||||
<span @click.prevent="downloadFile(fileData)" href="#"
|
<span @click.prevent="downloadFile(fileData)" href="#"
|
||||||
@ -221,8 +226,7 @@
|
|||||||
@click="addFileToDeleteFileList(fileData)" />
|
@click="addFileToDeleteFileList(fileData)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="ant-btn-popup-default mt-2" color="primary" icon="upload"
|
<a-button class="ant-btn-popup-default mt-2" color="primary" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
||||||
@click="$refs.updateInputFile.$refs.input.click()">
|
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||||
@ -230,8 +234,10 @@
|
|||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')"
|
<a-button @click="updatePageButtonGroupClickEvent('cancel')"
|
||||||
class="ant-btn-popup-default mr-2" color="primary">취소</a-button>
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary"
|
||||||
|
>취소</a-button>
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -252,7 +258,6 @@ import '@toast-ui/editor/dist/toastui-editor.css';
|
|||||||
import { Editor } from '@toast-ui/vue-editor';
|
import { Editor } from '@toast-ui/vue-editor';
|
||||||
import '@toast-ui/editor/dist/toastui-editor-viewer.css';
|
import '@toast-ui/editor/dist/toastui-editor-viewer.css';
|
||||||
import { Viewer } from '@toast-ui/vue-editor';
|
import { Viewer } from '@toast-ui/vue-editor';
|
||||||
import pagination from '~/components/common/Pagination';
|
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
// const myPrgmId = "PRG0034";
|
// const myPrgmId = "PRG0034";
|
||||||
@ -279,7 +284,6 @@ export default {
|
|||||||
Utility,
|
Utility,
|
||||||
Editor,
|
Editor,
|
||||||
Viewer,
|
Viewer,
|
||||||
pagination,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -294,11 +298,6 @@ export default {
|
|||||||
loadGrid: false,
|
loadGrid: false,
|
||||||
selectedRowKey: null,
|
selectedRowKey: null,
|
||||||
selectedRowData: null,
|
selectedRowData: null,
|
||||||
itemsPerPage: 10,
|
|
||||||
itemsPerPageArray: [10, 20, 30],
|
|
||||||
limit: 20,
|
|
||||||
page: 1,
|
|
||||||
totalCount: 0,
|
|
||||||
writeActionData: {
|
writeActionData: {
|
||||||
title: '',
|
title: '',
|
||||||
postNo: null,
|
postNo: null,
|
||||||
@ -340,10 +339,7 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
chkIsFind(val) {
|
chkIsFind(val) {
|
||||||
if (val) {
|
if (val) this.search();
|
||||||
this.page = 1;
|
|
||||||
this.search();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
async beforeCreate() {
|
async beforeCreate() {
|
||||||
@ -429,7 +425,7 @@ export default {
|
|||||||
this.getGridData();
|
this.getGridData();
|
||||||
},
|
},
|
||||||
gridInit() {
|
gridInit() {
|
||||||
const gridHeight = this.$refs.contents.offsetHeight - 120;
|
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
header: {
|
header: {
|
||||||
@ -501,29 +497,16 @@ export default {
|
|||||||
async getGridData() {
|
async getGridData() {
|
||||||
var params = {
|
var params = {
|
||||||
bordNo: 'BORD0001',
|
bordNo: 'BORD0001',
|
||||||
limit: this.limit,
|
|
||||||
page: this.page,
|
|
||||||
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
|
|
||||||
const res = await this.postApiReturn({
|
const res = await this.postApiReturn({
|
||||||
apiKey: 'selectPostData',
|
apiKey: 'selectPostList',
|
||||||
resKey: 'postPage',
|
resKey: 'postData',
|
||||||
sendParam: params,
|
sendParam: params,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res2 = await this.postApiReturn({
|
|
||||||
apiKey: 'selectPostPageTotal',
|
|
||||||
resKey: 'postPageTotal',
|
|
||||||
sendParam: {
|
|
||||||
bordNo: 'BORD0001',
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.totalCount = res2[0].totalcount;
|
|
||||||
|
|
||||||
this.setGridData({
|
this.setGridData({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
value: res,
|
value: res,
|
||||||
@ -1055,12 +1038,6 @@ export default {
|
|||||||
|
|
||||||
return resultFlag;
|
return resultFlag;
|
||||||
},
|
},
|
||||||
changeGrid: async function (pageNum, limit) {
|
|
||||||
this.page = pageNum;
|
|
||||||
this.limit = limit;
|
|
||||||
|
|
||||||
this.search();
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1113,7 +1090,7 @@ const defaultData = {
|
|||||||
|
|
||||||
@each $theme in dark, light {
|
@each $theme in dark, light {
|
||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.toastui-editor-#{$theme} {
|
.toastui-editor-#{$theme} {
|
||||||
.toastui-editor-mode-switch {
|
.toastui-editor-mode-switch {
|
||||||
@ -1121,7 +1098,7 @@ const defaultData = {
|
|||||||
border: none;
|
border: none;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: map-deep-get($config, #{$theme}, "card-title-color") !important;
|
color: map-deep-get($config, #{$theme}, "card-title-color") !important;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
color: map-deep-get($config, #{$theme}, "card-text-info-color") !important;
|
color: map-deep-get($config, #{$theme}, "card-text-info-color") !important;
|
||||||
border-top: 1px solid map-deep-get($config, #{$theme}, "card-text-info-color");
|
border-top: 1px solid map-deep-get($config, #{$theme}, "card-text-info-color");
|
||||||
@ -1129,7 +1106,7 @@ const defaultData = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
|
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
|
||||||
class="no-gutters" customClass="select-large pa-0" />
|
class="no-gutters" customClass="select-large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<!-- 대상일 -->
|
<!-- 대상일 -->
|
||||||
@ -38,7 +38,7 @@
|
|||||||
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
@loadData="changeGrid" />
|
@loadData="changeGrid" />
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
||||||
</v-col>
|
</v-col>
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
<v-card-title class="pa-0">설비별 현황 리스트</v-card-title>
|
<v-card-title class="pa-0">설비별 현황 리스트</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div class="px-4" style="height:calc(100% - 76px)">
|
<div class="px-4" style="height:calc(100% - 76px)">
|
||||||
<div ref="gridParent" class="w100 h100">
|
<div ref="gridParent" class="w100 h100 enrg-effc">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -32,19 +32,15 @@
|
|||||||
</v-row>
|
</v-row>
|
||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<v-col :cols="12" >
|
<v-col :cols="12" >
|
||||||
<v-card>
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between py-4 px-4">
|
<div class="d-flex align-center justify-space-between py-4 px-4">
|
||||||
<v-card-title class="pa-0 custom-title-4">설비별 에너지 계획 리스트</v-card-title>
|
<v-card-title class="pa-0 custom-title-4">설비별 에너지 계획 리스트</v-card-title>
|
||||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
|
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
|
||||||
</div>
|
</div>
|
||||||
<div ref="gridParent" class="px-5" style="min-height: 50vh;">
|
<div ref="gridParent" class="px-5" style="min-height: 60vh;">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||||
:editorGrid="true" @getRowsData="getRowData" />
|
:editorGrid="true" @getRowsData="getRowData" />
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
|
||||||
@loadData="changeGrid" />
|
|
||||||
</div>
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -61,7 +57,7 @@ import Grid from '~/components/common/Grid';
|
|||||||
import Utility from '~/plugins/utility';
|
import Utility from '~/plugins/utility';
|
||||||
import Buttons from '~/components/common/button/Buttons';
|
import Buttons from '~/components/common/button/Buttons';
|
||||||
import EnrgUsePlanModiPop from '~/components/common/modal/EnrgUsePlanModiPop';
|
import EnrgUsePlanModiPop from '~/components/common/modal/EnrgUsePlanModiPop';
|
||||||
import pagination from '~/components/common/Pagination';
|
import DateUtility from '~/plugins/dateUtility';
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
let myPrgmId;
|
let myPrgmId;
|
||||||
@ -90,7 +86,6 @@ export default {
|
|||||||
Grid,
|
Grid,
|
||||||
Buttons,
|
Buttons,
|
||||||
EnrgUsePlanModiPop,
|
EnrgUsePlanModiPop,
|
||||||
pagination
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -109,11 +104,7 @@ export default {
|
|||||||
fromDt: new Date().getFullYear(),
|
fromDt: new Date().getFullYear(),
|
||||||
rowKey: null,
|
rowKey: null,
|
||||||
edtingFinishFlag: 'Y',
|
edtingFinishFlag: 'Y',
|
||||||
itemsPerPage: 10,
|
// gridName: 'rowGrid',
|
||||||
itemsPerPageArray: [10, 20, 30],
|
|
||||||
limit: 20,
|
|
||||||
page: 1,
|
|
||||||
totalCount: 0,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -143,10 +134,7 @@ export default {
|
|||||||
this.fromDt = val;
|
this.fromDt = val;
|
||||||
},
|
},
|
||||||
chkIsFind(val) {
|
chkIsFind(val) {
|
||||||
if (val) {
|
if (val) this.search();
|
||||||
this.page = 1;
|
|
||||||
this.search();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
async selectValue01(val) {
|
async selectValue01(val) {
|
||||||
if (this.initedFlag) {
|
if (this.initedFlag) {
|
||||||
@ -277,7 +265,7 @@ export default {
|
|||||||
gridInit() {
|
gridInit() {
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
let _this = this;
|
let _this = this;
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 40;
|
const gridHeight = this.$refs.gridParent.offsetHeight - 50;
|
||||||
let yyyyCol = this.pageData.fromDt + '년';
|
let yyyyCol = this.pageData.fromDt + '년';
|
||||||
let childCols1 = [];
|
let childCols1 = [];
|
||||||
let myComplexColumns = [
|
let myComplexColumns = [
|
||||||
@ -370,14 +358,14 @@ export default {
|
|||||||
{
|
{
|
||||||
header: 'FAB',
|
header: 'FAB',
|
||||||
name: 'fab',
|
name: 'fab',
|
||||||
width: 85,
|
width: 100,
|
||||||
align: 'left',
|
align: 'left',
|
||||||
// hidden: true,
|
// hidden: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: '공정명',
|
header: '공정명',
|
||||||
name: 'eccNm',
|
name: 'eccNm',
|
||||||
width: 150,
|
width: 100,
|
||||||
align: 'left',
|
align: 'left',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
},
|
},
|
||||||
@ -427,7 +415,7 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '구분',
|
header: '구분',
|
||||||
name: 'gubun',
|
name: 'gubun',
|
||||||
width: 150,
|
width: 200,
|
||||||
align: 'left',
|
align: 'left',
|
||||||
// hidden: true,
|
// hidden: true,
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
@ -459,7 +447,7 @@ export default {
|
|||||||
myColumns.push({
|
myColumns.push({
|
||||||
header: i.toString() + '월',
|
header: i.toString() + '월',
|
||||||
name: qty,
|
name: qty,
|
||||||
width: 70,
|
width: 80,
|
||||||
align: 'right',
|
align: 'right',
|
||||||
editor: 'text',
|
editor: 'text',
|
||||||
formatter: this.numberFormatter,
|
formatter: this.numberFormatter,
|
||||||
@ -512,25 +500,8 @@ export default {
|
|||||||
pastDt: parseInt(this.fromDt) - 1,
|
pastDt: parseInt(this.fromDt) - 1,
|
||||||
eqpmGrpId: this.selectValue03,
|
eqpmGrpId: this.selectValue03,
|
||||||
eccId: this.selectValue01,
|
eccId: this.selectValue01,
|
||||||
limit: this.limit,
|
|
||||||
page: this.page,
|
|
||||||
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res2 = await this.postApiReturn({
|
|
||||||
apiKey: 'selectEnrgUsePlanPageTotal',
|
|
||||||
resKey: 'enrgUsePlanPageTotal',
|
|
||||||
sendParam: {
|
|
||||||
fromDt: this.fromDt,
|
|
||||||
pastDt: parseInt(this.fromDt) - 1,
|
|
||||||
eqpmGrpId: this.selectValue03,
|
|
||||||
eccId: this.selectValue01,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
this.totalCount = res2[0].totalcount;
|
|
||||||
|
|
||||||
let fabText = this.pageData.eccIdList.filter(item => {
|
let fabText = this.pageData.eccIdList.filter(item => {
|
||||||
return item.value == this.selectValue01;
|
return item.value == this.selectValue01;
|
||||||
})[0]['text'];
|
})[0]['text'];
|
||||||
@ -763,12 +734,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changeGrid: async function (pageNum, limit) {
|
|
||||||
this.page = pageNum;
|
|
||||||
this.limit = limit;
|
|
||||||
|
|
||||||
this.search();
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const dt = new Date();
|
const dt = new Date();
|
||||||
|
@ -514,8 +514,6 @@ const INIT_URL_STATE = {
|
|||||||
|
|
||||||
// prgmId: "PRG0003" 공지사항
|
// prgmId: "PRG0003" 공지사항
|
||||||
selectPostList: 'comm/base/NoticeMngCtr/selectPostList',
|
selectPostList: 'comm/base/NoticeMngCtr/selectPostList',
|
||||||
selectPostData: 'comm/base/NoticeMngCtr/selectPostData',
|
|
||||||
selectPostPageTotal: 'comm/base/NoticeMngCtr/selectPostPageTotal',
|
|
||||||
deletePostList: 'comm/base/NoticeMngCtr/deletePost',
|
deletePostList: 'comm/base/NoticeMngCtr/deletePost',
|
||||||
|
|
||||||
//prgmId: "PRG0121" 공지사항 게시물 상세조회
|
//prgmId: "PRG0121" 공지사항 게시물 상세조회
|
||||||
@ -904,8 +902,6 @@ const INIT_URL_STATE = {
|
|||||||
//prgmId: PRG0079 에너지사용량계획
|
//prgmId: PRG0079 에너지사용량계획
|
||||||
selectFabCodeList: 'ems/effc/EnrgUsePlanCtr/selectFabCodeList',
|
selectFabCodeList: 'ems/effc/EnrgUsePlanCtr/selectFabCodeList',
|
||||||
selectEnrgUsePlanData: 'ems/effc/EnrgUsePlanCtr/selectEnrgUsePlanData',
|
selectEnrgUsePlanData: 'ems/effc/EnrgUsePlanCtr/selectEnrgUsePlanData',
|
||||||
selectEnrgUsePlanPageTotal: 'ems/effc/EnrgUsePlanCtr/selectEnrgUsePlanPageTotal',
|
|
||||||
|
|
||||||
saveEmsEqpmMmPlanDatas: 'ems/effc/EnrgUsePlanCtr/saveEmsEqpmMmPlanDatas',
|
saveEmsEqpmMmPlanDatas: 'ems/effc/EnrgUsePlanCtr/saveEmsEqpmMmPlanDatas',
|
||||||
|
|
||||||
//prgmId : PRG0080 에너지 사용량 - Total Summary
|
//prgmId : PRG0080 에너지 사용량 - Total Summary
|
||||||
|
Reference in New Issue
Block a user