Compare commits
10 Commits
dev-luannv
...
bc96d2ae45
Author | SHA1 | Date | |
---|---|---|---|
bc96d2ae45 | |||
4fd2eac344 | |||
c40352e37c | |||
6583d68ea7 | |||
5859c5d681 | |||
d6dd66c4b3 | |||
f666110a1a | |||
d22b09cc47 | |||
ecfbeb3afa | |||
1ece377457 |
@ -9,6 +9,7 @@
|
||||
@import "./common/card.scss";
|
||||
@import "./common/tabs.scss";
|
||||
@import "./common/numericInput.scss";
|
||||
@import "./common/pagination.scss";
|
||||
@import "./common/editor.scss";
|
||||
|
||||
|
||||
|
@ -140,6 +140,7 @@
|
||||
&.ant-btn-popup-default {
|
||||
background:map-deep-get($config, #{$theme}, "ant-btn-popup-bg");
|
||||
color:map-deep-get($config, #{$theme}, "ant-btn-popup-color");
|
||||
border: 1px solid map-deep-get($config, #{$theme}, "ant-btn-popup-border");
|
||||
}
|
||||
|
||||
&.ant-btn-danger {
|
||||
|
43
assets/scss/common/pagination.scss
Normal file
43
assets/scss/common/pagination.scss
Normal file
@ -0,0 +1,43 @@
|
||||
@each $theme in dark, light {
|
||||
|
||||
// @include theme($theme);
|
||||
.v-application.#{$theme}-mode {
|
||||
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next {
|
||||
// border: none !important;
|
||||
// box-shadow: none !important;
|
||||
background-color: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||
border: 0.5px solid #424242;
|
||||
|
||||
.ant-pagination-item-link {
|
||||
border: none;
|
||||
background-color: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-pagination-item-active {
|
||||
border-color: #1890ff !important;
|
||||
color: #1890ff !important
|
||||
}
|
||||
|
||||
.ant-pagination-options-size-changer {
|
||||
.ant-select-selection {
|
||||
border: 0.5px solid #424242;
|
||||
background: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||
}
|
||||
|
||||
.ant-select-arrow {
|
||||
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||
}
|
||||
|
||||
.ant-select-selection__rendered {
|
||||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -181,6 +181,9 @@ $config: (
|
||||
ant-checkbox-border: #424242,
|
||||
ant-btn-popup-bg: #212224,
|
||||
ant-btn-popup-color: #FFFFFFD9,
|
||||
ant-btn-popup-border: #424242,
|
||||
paging-background: #212224,
|
||||
paging-text: #FFFFFFD9
|
||||
),
|
||||
light: (w-g5: $--color-gray_555,
|
||||
g5-w: $--color-white,
|
||||
@ -325,5 +328,8 @@ $config: (
|
||||
ant-checkbox-border: #D9D9D9,
|
||||
ant-btn-popup-bg: #FFFFFF,
|
||||
ant-btn-popup-color: #000000E0,
|
||||
ant-btn-popup-border: #D9D9D9,
|
||||
paging-background: #FFFFFF,
|
||||
paging-text: #000000E0
|
||||
),
|
||||
);
|
@ -1,14 +1,12 @@
|
||||
<template>
|
||||
<v-row class="search-box" align="center" no-gutters>
|
||||
<v-col v-if="label" :cols="labelCols">
|
||||
<v-col v-if="label" :cols="labelCols" >
|
||||
<label for="" class="search-box-label">
|
||||
<v-icon v-if="iconShow" small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
|
||||
{{ label }}
|
||||
</label>
|
||||
</v-col>
|
||||
<v-col :cols="label ? textCols : ''">
|
||||
|
||||
|
||||
<a-checkbox v-model="chkValue" :disabled="disabledFlag" :readonly="readonly || false"
|
||||
:required="required || false" @change="modifyValue">
|
||||
</a-checkbox>
|
||||
@ -63,6 +61,10 @@ export default {
|
||||
require: false,
|
||||
default: true
|
||||
},
|
||||
labelClass: {
|
||||
type: String,
|
||||
require: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -158,7 +158,7 @@ export default {
|
||||
}, 500);
|
||||
},
|
||||
},
|
||||
created() {},
|
||||
created() { },
|
||||
async mounted() {
|
||||
// console.log(this.dataPath);
|
||||
if (this.gridName) {
|
||||
@ -166,9 +166,9 @@ export default {
|
||||
|
||||
this.scrollBody = document
|
||||
.getElementsByClassName('tui-grid-rside-area')
|
||||
[
|
||||
document.getElementsByClassName('tui-grid-rside-area').length - 1
|
||||
].getElementsByClassName('tui-grid-body-area')[0];
|
||||
[
|
||||
document.getElementsByClassName('tui-grid-rside-area').length - 1
|
||||
].getElementsByClassName('tui-grid-body-area')[0];
|
||||
|
||||
this.scrollBody.addEventListener('scroll', e => {
|
||||
this.gridScrollTop = e.target.scrollTop;
|
||||
@ -344,14 +344,14 @@ export default {
|
||||
'row-removed',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
await this.gridInstance.invoke(
|
||||
e.rowEditingFg != undefined ? 'setValue' : this.editorGrid ? 'finishEditing' : 'setValue',
|
||||
rowIdxKey,
|
||||
columnName,
|
||||
value,
|
||||
);
|
||||
|
||||
|
||||
|
||||
if (isBaseRow) {
|
||||
const isSameData = await this.compareData(editingData);
|
||||
@ -606,18 +606,20 @@ export default {
|
||||
list.map(item => this.gridInstance.invoke('check', item));
|
||||
},
|
||||
refreshLayout() {
|
||||
// console.log("---------DEBUG---refreshLayout: ");
|
||||
this.gridInstance.invoke('refreshLayout');
|
||||
setTimeout(() => {
|
||||
this.gridInstance.invoke('refreshLayout');
|
||||
}, 150);
|
||||
// this.gridInstance.invoke('refreshLayout');
|
||||
},
|
||||
refreshGrid(){
|
||||
refreshGrid() {
|
||||
// console.log("refreshLayout",this.$refs['tuigrid' + this.gridName])
|
||||
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
|
||||
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
|
||||
// var containerEl = document.querySelector('.tui-grid-container')
|
||||
var parentEl = containerEl.parentElement;
|
||||
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
|
||||
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
|
||||
// var containerEl = document.querySelector('.tui-grid-container')
|
||||
var parentEl = containerEl.parentElement;
|
||||
|
||||
// console.log("---------DEBUG---containerEl: ",containerEl);
|
||||
// console.log('---------DEBUG---parentEl: ', parentEl)
|
||||
// console.log('---------DEBUG---parentEl: ', parentEl)
|
||||
// function refreshLayout(store, containerEl, parentEl) {
|
||||
var dimension = store.dimension;
|
||||
var autoWidth = dimension.autoWidth, fitToParentHeight = dimension.fitToParentHeight;
|
||||
@ -636,35 +638,35 @@ export default {
|
||||
// console.log("parentEl.clientHeight" , parentEl.clientHeight)
|
||||
// console.log("clientHeight : ",clientHeight);
|
||||
if (parentEl && parentEl.clientHeight !== clientHeight) {
|
||||
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
|
||||
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
|
||||
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
|
||||
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
|
||||
}
|
||||
// }
|
||||
// }
|
||||
},
|
||||
setOffsetTop(store, offsetTop) {
|
||||
setOffsetTop(store, offsetTop) {
|
||||
// console.log("---------DEBUG---setOffsetTop: ");
|
||||
store.dimension.offsetTop = offsetTop;
|
||||
},
|
||||
setWidth(_a, width, autoWidth) {
|
||||
store.dimension.offsetTop = offsetTop;
|
||||
},
|
||||
setWidth(_a, width, autoWidth) {
|
||||
// console.log("---------DEBUG---setWidth: ");
|
||||
var dimension = _a.dimension;
|
||||
dimension.autoWidth = autoWidth;
|
||||
dimension.width = width;
|
||||
},
|
||||
setHeaderHeight(store, height) {
|
||||
var dimension = _a.dimension;
|
||||
dimension.autoWidth = autoWidth;
|
||||
dimension.width = width;
|
||||
},
|
||||
setHeaderHeight(store, height) {
|
||||
// console.log("---------DEBUG---setHeaderHeight: ");
|
||||
store.dimension.headerHeight = height;
|
||||
},
|
||||
setOffsetLeft(store, offsetLeft) {
|
||||
store.dimension.headerHeight = height;
|
||||
},
|
||||
setOffsetLeft(store, offsetLeft) {
|
||||
// console.log("---------DEBUG---setOffsetLeft: ");
|
||||
store.dimension.offsetLeft = offsetLeft;
|
||||
},
|
||||
setHeight(_a,height){
|
||||
store.dimension.offsetLeft = offsetLeft;
|
||||
},
|
||||
setHeight(_a, height) {
|
||||
// console.log("---------DEBUG---setHeight: ");
|
||||
var dimension = _a.dimension;
|
||||
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
|
||||
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
|
||||
},
|
||||
var dimension = _a.dimension;
|
||||
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
|
||||
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
|
||||
},
|
||||
sendSelectedRowData(eventRowKey) {
|
||||
if (this.selectedRowDataWatchFlag) {
|
||||
var rowKey =
|
||||
|
93
components/common/Pagination.vue
Normal file
93
components/common/Pagination.vue
Normal file
@ -0,0 +1,93 @@
|
||||
|
||||
<template>
|
||||
<div class="custom-pagination">
|
||||
<a-pagination
|
||||
:current="pageNum"
|
||||
:total="totalCount"
|
||||
:page-size="itemsPerPage"
|
||||
:show-size-changer="useLimit"
|
||||
:page-size-options="itemsPerPageArray.map(String)"
|
||||
@change="handlePageChange"
|
||||
@showSizeChange="changePageLeng"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
useLimit: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
totalCount: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
pageNum: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
itemsPerPageArray: {
|
||||
type: Array,
|
||||
default: () => [20, 50, 100],
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
moveToPage: '',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
page: function() {
|
||||
return this.numberOfPages + '-' + this.lastPage;
|
||||
},
|
||||
lastPage: function() {
|
||||
//grid data가 없을 경우 1 리턴
|
||||
if (this.totalCount == 0) return 1;
|
||||
|
||||
let pageLength = Math.floor(this.totalCount / this.itemsPerPage);
|
||||
if (this.totalCount % this.itemsPerPage > 0) {
|
||||
pageLength++;
|
||||
}
|
||||
return pageLength;
|
||||
},
|
||||
itemsPerPage: function() {
|
||||
return this.limit;
|
||||
},
|
||||
numberOfPages: function() {
|
||||
return Number(this.pageNum);
|
||||
},
|
||||
plusPage: function() {
|
||||
return Number(this.pageNum) + 1;
|
||||
},
|
||||
minusPage: function() {
|
||||
return Number(this.pageNum) - 1;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
totalCount: function(newData) {
|
||||
return (this.moveToPage = newData > 0 ? this.moveToPage : '');
|
||||
},
|
||||
moveToPage: function() {
|
||||
return (this.moveToPage = this.moveToPage.replaceAll(/[^0-9]/g, ''));
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handlePageChange(newPage) {
|
||||
// Emit an event to the parent to load data for the selected page
|
||||
this.$emit('loadData', newPage, this.itemsPerPage);
|
||||
},
|
||||
changePageLeng: function(current, newLimit) {
|
||||
//부모 컴포넌트에서 loadData(데이터 조회) 구현
|
||||
//this.$emit('loadData', this.pageNum, limit);
|
||||
// limit 변경 시 1 페이지로 초기화
|
||||
this.$emit('loadData', 1, newLimit);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -2,9 +2,9 @@
|
||||
<div class="d-flex justify-center align-center"
|
||||
:class="directionBtn === 'vertically'?'flex-row':'flex-column'"
|
||||
style="gap: 12px">
|
||||
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" class="custom-action-btn">
|
||||
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') : btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.remove :icons.add " class="custom-action-btn">
|
||||
</a-button>
|
||||
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add" class="custom-action-btn">
|
||||
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') :btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.add :icons.remove" class="custom-action-btn">
|
||||
</a-button>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -70,6 +70,7 @@ export default function getLineChartOption({
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed', // Options: 'solid', 'dashed', 'dotted'
|
||||
color: isDarkMode ? '#444444' : '#EEEEEE',
|
||||
},
|
||||
},
|
||||
|
46
components/common/chartoptions/SankeyChart.js
Normal file
46
components/common/chartoptions/SankeyChart.js
Normal file
@ -0,0 +1,46 @@
|
||||
// Sankey chart options
|
||||
export function getSankeyChartOption({ isDarkMode = false, data = [], links = [] }) {
|
||||
const chartOption = {
|
||||
backgroundColor: '#FFFFFF',
|
||||
series: [
|
||||
{
|
||||
data,
|
||||
links,
|
||||
|
||||
layoutIterations: 0,
|
||||
type: 'sankey',
|
||||
left: 25.0,
|
||||
top: 20.0,
|
||||
right: 120,
|
||||
bottom: 50.0,
|
||||
nodeGap: 10,
|
||||
nodeAlign: 'left',
|
||||
lineStyle: {
|
||||
color: 'source',
|
||||
curveness: 0.5,
|
||||
},
|
||||
// nodeWidth:10,
|
||||
// triggerEvent: true,
|
||||
itemStyle: {
|
||||
//color: '#1f77b4',
|
||||
//borderColor: '#1f77b4'
|
||||
},
|
||||
label: {
|
||||
color: isDarkMode
|
||||
? '#FFFFFFD9'
|
||||
: '#000000E0',
|
||||
// fontFamily: 'Arial',
|
||||
fontSize: 14,
|
||||
},
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
},
|
||||
};
|
||||
|
||||
return chartOption;
|
||||
}
|
||||
|
||||
export default getSankeyChartOption;
|
||||
|
@ -75,7 +75,7 @@
|
||||
<v-card-actions class="pb-4">
|
||||
<v-spacer></v-spacer>
|
||||
<!-- <v-btn color="primary" dark @click="setUpdate()">확인</v-btn> -->
|
||||
<div class="pr-3">
|
||||
<div class="d-flex" style="gap: 8px">
|
||||
<a-button @click="close()" class="ant-btn-popup-default">닫기</a-button>
|
||||
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
||||
확인
|
||||
|
@ -404,8 +404,8 @@ export default {
|
||||
rowHeight: 'auto',
|
||||
};
|
||||
if (this.isMulti) {
|
||||
// myOptions['rowHeaders'] = [{ type: 'checkbox' }];
|
||||
// myOptions['rowHeight'] = 'auto';
|
||||
myOptions['rowHeaders'] = [{ type: 'checkbox' }];
|
||||
myOptions['rowHeight'] = 'auto';
|
||||
}
|
||||
|
||||
|
||||
@ -523,12 +523,11 @@ export default {
|
||||
|
||||
|
||||
this.loadGrid = true;
|
||||
// this.$nextTick(() => {
|
||||
// if (this.isMulti) {
|
||||
// this.getChecked();
|
||||
// }
|
||||
// });
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (this.isMulti) {
|
||||
this.getChecked();
|
||||
}
|
||||
});
|
||||
},
|
||||
setUpdate() {
|
||||
if (this.isMulti) {
|
||||
|
@ -11,7 +11,7 @@
|
||||
:btnActionsFnc="btnActions"
|
||||
/>
|
||||
</div>
|
||||
<div ref="gridParent" >
|
||||
<div ref="gridParent" style="height: calc(100vh - 700px);">
|
||||
<component
|
||||
:ref="gridName"
|
||||
:is="loadGrid ? 'Grid' : null"
|
||||
@ -21,7 +21,7 @@
|
||||
:innerTabGridInfo="innerTabGridInfo"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<div style="height: 60vh;" class="mt-5">
|
||||
<component
|
||||
:is="'Form'"
|
||||
:bindingData="gridName"
|
||||
@ -503,3 +503,10 @@ const myDetail = [
|
||||
},
|
||||
];
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep{
|
||||
.tui-grid-layer-state{
|
||||
top: 40px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div
|
||||
class="d-flex justify-space-between"
|
||||
class="d-flex justify-space-between mb-3 pr-4"
|
||||
style="height: 45px;"
|
||||
>
|
||||
<span class="txt custom-subtitle-tab">검침 대상 추가 정보</span>
|
||||
@ -102,7 +102,7 @@ export default {
|
||||
this.gridInit();
|
||||
},
|
||||
gridInit() {
|
||||
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
||||
const gridHeight = this.$refs.gridParent.offsetHeight - 31;
|
||||
|
||||
const myOptions = {
|
||||
columnOptions: {
|
||||
@ -113,8 +113,8 @@ export default {
|
||||
header: {
|
||||
height: 28,
|
||||
},
|
||||
rowHeight: 29,
|
||||
minRowHeight: 29,
|
||||
rowHeight: 36,
|
||||
minRowHeight: 36,
|
||||
selectionUnit: 'row',
|
||||
editingEvent: 'click',
|
||||
};
|
||||
@ -440,3 +440,15 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped >
|
||||
::v-deep {
|
||||
.tui-grid-layer-state {
|
||||
top: 40px !important;
|
||||
}
|
||||
|
||||
.tui-grid-cell-content-editor {
|
||||
height: 36px !important;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
@ -432,7 +432,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
value: { '1': true, '0': false },
|
||||
required: true,
|
||||
},
|
||||
@ -445,7 +445,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
},
|
||||
// {
|
||||
// type: "InputText",
|
||||
@ -464,7 +464,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
placeholder: '시스템 자동입력',
|
||||
},
|
||||
{
|
||||
@ -476,7 +476,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
placeholder: '시스템 자동입력',
|
||||
},
|
||||
{
|
||||
@ -488,7 +488,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
placeholder: '시스템 자동입력',
|
||||
},
|
||||
{
|
||||
@ -500,7 +500,7 @@ const myDetail = [
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
iconShow: true,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
placeholder: '시스템 자동입력',
|
||||
},
|
||||
];
|
||||
|
@ -49,7 +49,7 @@
|
||||
<v-col :cols="12" class="mt-5 pb-4">
|
||||
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="min-height: 30vh;" class="pa-0 custom-view">
|
||||
<v-col :cols="12" style="min-height: 50vh;" class="pa-0 custom-view">
|
||||
<v-card class="pa-3" style="overflow-y:auto;">
|
||||
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
|
||||
:initialValue="viewActionData.content" theme="white"
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div ref="mainDiv" class="l-layout">
|
||||
<CommonPageTitle/>
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -287,7 +288,7 @@ export default {
|
||||
header: 'Data 형식',
|
||||
name: 'addInfoDataKind',
|
||||
minWidth: 85,
|
||||
align: 'center',
|
||||
align: 'left',
|
||||
formatter({ value }) {
|
||||
let retVal = '';
|
||||
const newValue = _this.pageData.addInfoDataKindList.filter(
|
||||
@ -304,7 +305,7 @@ export default {
|
||||
header: '사용여부',
|
||||
name: 'useFg',
|
||||
minWidth: 85,
|
||||
align: 'center',
|
||||
align: 'left',
|
||||
formatter({ value }) {
|
||||
let retVal = '';
|
||||
value = value === true ? '1' : '0';
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle/>
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -12,6 +13,7 @@
|
||||
dataKey="searchLocKind"
|
||||
:sendParam="{ commGrpCd: 'EM_LOC_KIND', useFg: '1' }"
|
||||
:addAll="true"
|
||||
customClass="select-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
@ -22,6 +24,7 @@
|
||||
dataKey="searchEccKind"
|
||||
:sendParam="{ commGrpCd: 'EM_ECC_KIND', useFg: '1' }"
|
||||
:addAll="true"
|
||||
customClass="select-large"
|
||||
/>
|
||||
</v-col>
|
||||
<!-- 사업장 -->
|
||||
@ -42,6 +45,7 @@
|
||||
dataKey="useFg"
|
||||
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
|
||||
:addAll="true"
|
||||
customClass="select-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
@ -52,6 +56,7 @@
|
||||
:labelCols="12"
|
||||
:textCols="12"
|
||||
:searchOption="true"
|
||||
customClass="input-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col class="text-right">
|
||||
@ -64,6 +69,7 @@
|
||||
:is="'SelectBlocMstr'"
|
||||
ref="SelectBlocMstr"
|
||||
:parentPrgmId="myPrgmId"
|
||||
customClass="select-large"
|
||||
/>
|
||||
</div>
|
||||
</v-row>
|
||||
@ -99,7 +105,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="7" style="min-height:75vh;">
|
||||
<v-card class="pb-5">
|
||||
<v-card-title class="custom-title-4" style="min-height:76px;"
|
||||
<v-card-title class="custom-title-4" style="min-height:65px;"
|
||||
>공정 상세
|
||||
</v-card-title>
|
||||
<div class="px-5" style="height:calc(100% - 76px)">
|
||||
@ -471,7 +477,7 @@ export default {
|
||||
header: '사용 여부',
|
||||
name: 'useFg',
|
||||
width: gridWidth * 0.18,
|
||||
align: 'center',
|
||||
align: 'left',
|
||||
formatter({ value }) {
|
||||
value = value === true ? '1' : '0';
|
||||
const newValue = _this.pageData.useFgList.filter(
|
||||
@ -921,7 +927,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'pb-0 mb-0 pr-4',
|
||||
class: 'pb-0 mb-0 pr-4 mt-2',
|
||||
disableContent: true,
|
||||
},
|
||||
{
|
||||
@ -932,7 +938,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'py-2 mb-0 pb-0 pl-4',
|
||||
class: 'py-2 mb-0 pb-0 pl-4 mt-2',
|
||||
list: 'locKindList',
|
||||
itemText: 'commCdNm',
|
||||
itemValue: 'commCd',
|
||||
@ -944,13 +950,13 @@ const myDetail = [
|
||||
valueNm: 'upEccNm',
|
||||
readonly: true,
|
||||
cols: 6,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
},
|
||||
{
|
||||
// 공백 처리
|
||||
type: 'Label',
|
||||
cols: 6,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
disabled: false,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
@ -964,7 +970,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
list: 'eccKindList',
|
||||
itemText: 'commCdNm',
|
||||
itemValue: 'commCd',
|
||||
@ -979,7 +985,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
inputType: 'number',
|
||||
iconShow: true
|
||||
// onkeydown : "if(this.value > 100) this.value = 100;if(this.value < 0) this.value = 0;if(this.value == '') this.value = 0;"
|
||||
@ -992,7 +998,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
list: 'blocIdList',
|
||||
itemText: 'blocNm',
|
||||
itemValue: 'blocId',
|
||||
@ -1006,7 +1012,7 @@ const myDetail = [
|
||||
cols: 6,
|
||||
labelCols: 12,
|
||||
textCols: 12,
|
||||
class: 'py-2 pl-4',
|
||||
class: 'py-2 pl-4 mt-2',
|
||||
value: { '1': true, '0': false },
|
||||
iconShow: true,
|
||||
required: true,
|
||||
@ -1017,7 +1023,7 @@ const myDetail = [
|
||||
valueNm: 'eccFg',
|
||||
disabled: false,
|
||||
cols: 6,
|
||||
class: 'py-2 pr-4',
|
||||
class: 'py-2 pr-4 mt-2',
|
||||
iconShow: true,
|
||||
value: { '1': true, '0': false },
|
||||
},
|
||||
|
@ -50,7 +50,7 @@
|
||||
<v-col :cols="5" class="h100">
|
||||
<v-card class="pb-5">
|
||||
<div class="d-flex align-center justify-space-between pa-5">
|
||||
<v-card-title class="pa-0 custom-title-4-new"
|
||||
<v-card-title class="pa-0 custom-title-4"
|
||||
>검침 대상 정보</v-card-title
|
||||
>
|
||||
<Buttons
|
||||
@ -75,7 +75,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="7" class="h100">
|
||||
<v-card class="pb-5">
|
||||
<v-card-title class="custom-title-4-new" style="min-height:76px;"
|
||||
<v-card-title class="custom-title-4-new" style="min-height:65px;"
|
||||
>검침대상 상세
|
||||
</v-card-title>
|
||||
<div class="px-5" style="height:calc(100% - 76px)">
|
||||
@ -315,7 +315,7 @@ export default {
|
||||
header: '검침 대상 ID',
|
||||
name: 'readObjId',
|
||||
width: 130,
|
||||
align: 'center',
|
||||
align: 'left',
|
||||
},
|
||||
{
|
||||
header: '검침 대상 명',
|
||||
@ -385,7 +385,7 @@ export default {
|
||||
{
|
||||
header: '사용여부',
|
||||
name: 'useFg',
|
||||
align: 'center',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
formatter({ value }) {
|
||||
value = value === true ? '1' : '0';
|
||||
@ -854,6 +854,17 @@ const myDetail = [
|
||||
},
|
||||
];
|
||||
</script>
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
@import '@/assets/scss/common.scss';
|
||||
</style>
|
||||
::v-deep {
|
||||
.tui-grid-layer-state {
|
||||
top: 40px !important;
|
||||
}
|
||||
|
||||
.tui-grid-layer-selection,
|
||||
.tui-grid-cell-content-editor{
|
||||
height: 36px !important;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
@ -14,9 +14,9 @@
|
||||
<!-- 대상일 -->
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
|
||||
</v-col>
|
||||
<v-col :cols="4" class="text-right">
|
||||
<BtnSearch @click="search" size="large" />
|
||||
<v-col :cols="6" class="text-right">
|
||||
<!-- 조회버튼 -->
|
||||
<BtnSearch @click="search" size="large" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card>
|
||||
@ -47,8 +47,13 @@
|
||||
</v-row>
|
||||
<div class="px-5" style="height: 80%">
|
||||
<div ref="chartParent" class="w100 h100">
|
||||
<component :ref="chartName" class="w100 h100" :is="loadChart ? 'Chart' : null" :parentPrgmId="myPrgmId"
|
||||
:chartName="chartName" />
|
||||
<component
|
||||
:ref="chartName"
|
||||
class="w100 h100"
|
||||
:is="loadChart ? 'Chart' : null"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:chartName="chartName"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</v-card>
|
||||
@ -68,6 +73,8 @@ import SelectBox from '@/components/common/select/SelectBox';
|
||||
import DateUtility from '~/plugins/dateUtility';
|
||||
import Chart from '~/components/common/Chart';
|
||||
|
||||
import getSankeyChartOption from "~/components/common/chartoptions/sankeyChart";
|
||||
|
||||
let myTitle;
|
||||
let myPrgmId;
|
||||
|
||||
@ -101,6 +108,8 @@ export default {
|
||||
selectValue01: null,
|
||||
loadChart: false,
|
||||
chartName: 'sankeyChart',
|
||||
sankeyChartData: [],
|
||||
sankeyChartLinks: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -148,6 +157,16 @@ export default {
|
||||
});
|
||||
}
|
||||
},
|
||||
isDarkMode(newVal) {
|
||||
this.setChartOption({
|
||||
chartKey: this.chartName,
|
||||
value: getSankeyChartOption({
|
||||
isDarkMode: newVal,
|
||||
data: this.sankeyChartData,
|
||||
links: this.sankeyChartLinks
|
||||
})
|
||||
});
|
||||
},
|
||||
},
|
||||
async beforeCreate() {
|
||||
myPrgmId = this.$route.query.prgmId;
|
||||
@ -159,9 +178,6 @@ export default {
|
||||
},
|
||||
async created() { },
|
||||
async mounted() {
|
||||
// this.initTest();
|
||||
// return;
|
||||
|
||||
this.init();
|
||||
// document.querySelector('.icon_arrow').style.width = document.querySelector('.iconArrowCols').clientWidth-20 + "px";
|
||||
},
|
||||
@ -176,10 +192,8 @@ export default {
|
||||
...mapActions({
|
||||
getCodeList: 'modules/search/getCodeList',
|
||||
}),
|
||||
initTest() {
|
||||
|
||||
const randomNumber = n => Math.floor(Math.random() * n) + 1;
|
||||
|
||||
initTestChart() {
|
||||
const randomNumber = n => Math.floor(Math.random() * n) + 1;
|
||||
const makeData = [
|
||||
{ name: 'A' },
|
||||
{ name: 'B' },
|
||||
@ -205,45 +219,13 @@ export default {
|
||||
]);
|
||||
}
|
||||
|
||||
const chartOption = {
|
||||
backgroundColor: '#FFFFFF',
|
||||
series: [
|
||||
{
|
||||
layoutIterations: 0,
|
||||
type: 'sankey',
|
||||
left: 25.0,
|
||||
top: 20.0,
|
||||
right: 120,
|
||||
bottom: 50.0,
|
||||
// nodeWidth:10,
|
||||
nodeGap: 10,
|
||||
nodeAlign: 'left',
|
||||
data: makeData,
|
||||
links: makeLinks,
|
||||
lineStyle: {
|
||||
color: 'source',
|
||||
curveness: 0.5,
|
||||
},
|
||||
// triggerEvent: true,
|
||||
itemStyle: {
|
||||
//color: '#1f77b4',
|
||||
//borderColor: '#1f77b4'
|
||||
},
|
||||
label: {
|
||||
color: this.isDarkMode
|
||||
? 'rgba(250,250,250,0.7)'
|
||||
: 'rgba(0,0,0,0.7)',
|
||||
fontFamily: 'Arial',
|
||||
fontSize: 12,
|
||||
},
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
this.sankeyChartData = makeData;
|
||||
this.sankeyChartLinks = makeLinks;
|
||||
const chartOption = getSankeyChartOption({
|
||||
isDarkMode: this.isDarkMode,
|
||||
data: makeData,
|
||||
links: makeLinks
|
||||
});
|
||||
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
||||
this.$nextTick(() => {
|
||||
this.loadChart = true;
|
||||
@ -254,7 +236,11 @@ export default {
|
||||
this.setFromDt();
|
||||
},
|
||||
async search() {
|
||||
await this.getChartData();
|
||||
try{
|
||||
await this.getChartData();
|
||||
}catch(err){
|
||||
this.initTestChart();
|
||||
}
|
||||
this.setPageData({
|
||||
isFind: false,
|
||||
});
|
||||
@ -458,43 +444,13 @@ export default {
|
||||
};
|
||||
}
|
||||
|
||||
const chartOption = {
|
||||
backgroundColor: '#FFFFFF',
|
||||
series: [
|
||||
{
|
||||
layoutIterations: 0,
|
||||
type: 'sankey',
|
||||
left: 25.0,
|
||||
top: 20.0,
|
||||
right: 120,
|
||||
bottom: 50.0,
|
||||
// nodeWidth:10,
|
||||
nodeGap: 10,
|
||||
nodeAlign: 'left',
|
||||
data: makeData,
|
||||
links: makeLinks,
|
||||
lineStyle: {
|
||||
color: 'source',
|
||||
curveness: 0.5,
|
||||
},
|
||||
// triggerEvent: true,
|
||||
itemStyle: {
|
||||
//color: '#1f77b4',
|
||||
//borderColor: '#1f77b4'
|
||||
},
|
||||
label: {
|
||||
color: this.isDarkMode
|
||||
? 'rgba(250,250,250,0.7)'
|
||||
: 'rgba(0,0,0,0.7)',
|
||||
fontFamily: 'Arial',
|
||||
fontSize: 12,
|
||||
},
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
},
|
||||
};
|
||||
this.sankeyChartData = makeData;
|
||||
this.sankeyChartLinks = makeLinks;
|
||||
const chartOption = getSankeyChartOption({
|
||||
isDarkMode: this.isDarkMode,
|
||||
data: makeData,
|
||||
links: makeLinks
|
||||
});
|
||||
|
||||
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
||||
|
||||
|
@ -52,6 +52,8 @@
|
||||
</v-card-title>
|
||||
<v-row>
|
||||
<v-col :cols="3" v-for="(item, i) in value.chartData" :key="'key2_' + i">
|
||||
<v-card>
|
||||
|
||||
<div
|
||||
class="v-box"
|
||||
style="height: 330px; position: relative"
|
||||
@ -73,7 +75,7 @@
|
||||
<!-- Information area -->
|
||||
<v-col :cols="5" style="height: 100%">
|
||||
<div style="height: 10%">
|
||||
<strong style="font-size: 20px; font-weight: 600">{{
|
||||
<strong class="v-card v-card__title pa-0" >{{
|
||||
item.fabNm
|
||||
}}</strong>
|
||||
</div>
|
||||
@ -123,6 +125,8 @@
|
||||
</div>
|
||||
</v-col>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
|
@ -97,14 +97,25 @@
|
||||
<v-card-title class="d-flex align-center justify-space-between pa-5">
|
||||
<span class="tit ft-size_20 ft-weight_600">설비별 현황 리스트</span>
|
||||
</v-card-title>
|
||||
<div class="px-5" style="height: calc(100% - 106px)">
|
||||
<div ref="gridParent" class="w100 h100">
|
||||
<div class="px-5" style="height: calc(100% - 56px)">
|
||||
<div ref="gridParent" class="w100 h100" style="height: calc(100% - 166px)">
|
||||
<component
|
||||
:ref="gridName"
|
||||
:is="loadGrid ? 'Grid' : null"
|
||||
:gridName="gridName"
|
||||
:parentPrgmId="myPrgmId"
|
||||
/>
|
||||
|
||||
<div class="pagination-wrapper">
|
||||
<pagination
|
||||
id="pagination"
|
||||
:total-count="totalCount"
|
||||
:page-num="page"
|
||||
:limit="limit"
|
||||
:itemsPerPageArray="itemsPerPageArray"
|
||||
@loadData="changeGrid"
|
||||
/>
|
||||
</div>
|
||||
<!--
|
||||
<component
|
||||
:ref="gridName"
|
||||
@ -142,6 +153,7 @@ import SelectBox from "@/components/common/select/SelectBox";
|
||||
import SelectCmCycle from "@/components/common/select/SelectCmCycle";
|
||||
import DatePicker from "@/components/common/Datepicker";
|
||||
import Grid from "~/components/common/Grid";
|
||||
import pagination from "~/components/common/Pagination";
|
||||
|
||||
let myTitle;
|
||||
let myPrgmId;
|
||||
@ -168,6 +180,7 @@ export default {
|
||||
SelectCmCycle,
|
||||
DatePicker,
|
||||
Grid,
|
||||
pagination,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -188,6 +201,11 @@ export default {
|
||||
gridName: "grid01",
|
||||
|
||||
enrgUseMainIdxDesc: [],
|
||||
itemsPerPage: 10,
|
||||
itemsPerPageArray: [10, 20, 30],
|
||||
limit: 10,
|
||||
page: 1,
|
||||
totalCount: 0,
|
||||
|
||||
// tooltipData: {
|
||||
// show: false,
|
||||
@ -263,6 +281,11 @@ export default {
|
||||
this.chkOpenTabList({ key: "destroy", prgmId: myPrgmId });
|
||||
},
|
||||
methods: {
|
||||
changeGrid: async function (pageNum, limit) {
|
||||
this.page = pageNum;
|
||||
this.limit = limit;
|
||||
this.search();
|
||||
},
|
||||
async init() {
|
||||
await this.getSelectValueList();
|
||||
await this.setQueryParams();
|
||||
@ -367,50 +390,54 @@ export default {
|
||||
const _this = this;
|
||||
// Define custom button
|
||||
class CustomButton {
|
||||
constructor(props,pageData) {
|
||||
const { grid, rowKey, columnInfo } = props;
|
||||
const gridData = grid.store.data.rawData;
|
||||
const value = gridData[rowKey][columnInfo.name];
|
||||
const onClickCallback = columnInfo.renderer.options.onClick;
|
||||
constructor(props, pageData) {
|
||||
const { grid, rowKey, columnInfo } = props;
|
||||
const gridData = grid.store.data.rawData;
|
||||
const value = gridData[rowKey][columnInfo.name];
|
||||
const onClickCallback = columnInfo.renderer.options.onClick;
|
||||
|
||||
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||
const elDiv = document.createElement('div');
|
||||
elDiv.innerHTML = `<span>${value}</span>`;
|
||||
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
||||
const el2 = document.createElement('button');
|
||||
$(el2).addClass('edit-btn blue--text');
|
||||
el2.innerText = '보기';
|
||||
elDiv.appendChild(el2);
|
||||
this.el = elDiv;
|
||||
if (!this.disabled && typeof onClickCallback === 'function') {
|
||||
// click 이벤트
|
||||
this.el.addEventListener('click', function(event) {
|
||||
onClickCallback(rowKey);
|
||||
});
|
||||
}
|
||||
}
|
||||
getElement() {
|
||||
return this.el;
|
||||
}
|
||||
getValue() {
|
||||
// return this.el.value;
|
||||
}
|
||||
mounted() {
|
||||
// this.el.focus();
|
||||
}
|
||||
}
|
||||
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||
const elDiv = document.createElement("div");
|
||||
elDiv.innerHTML = `<span>${value}</span>`;
|
||||
$(elDiv).addClass("tui-grid-cell-content d-flex justify-space-between");
|
||||
const el2 = document.createElement("button");
|
||||
$(el2).addClass("edit-btn blue--text");
|
||||
el2.innerText = "보기";
|
||||
elDiv.appendChild(el2);
|
||||
this.el = elDiv;
|
||||
if (!this.disabled && typeof onClickCallback === "function") {
|
||||
// click 이벤트
|
||||
this.el.addEventListener("click", function (event) {
|
||||
onClickCallback(rowKey);
|
||||
});
|
||||
}
|
||||
}
|
||||
getElement() {
|
||||
return this.el;
|
||||
}
|
||||
getValue() {
|
||||
// return this.el.value;
|
||||
}
|
||||
mounted() {
|
||||
// this.el.focus();
|
||||
}
|
||||
}
|
||||
|
||||
var columnList = [
|
||||
{ header: "NO", name: "no", align: "right", width: 80 },
|
||||
{ header: "fabId", name: "fabId", hidden: true },
|
||||
{ header: "FAB", name: "fabNm", align: "left" },
|
||||
{ header: "eqpmGrpId", name: "eqpmGrpId", hidden: true },
|
||||
{ header: "설비그룹", name: "eqpmGrpNm", align: "left", width: 200,
|
||||
{
|
||||
header: "설비그룹",
|
||||
name: "eqpmGrpNm",
|
||||
align: "left",
|
||||
width: 200,
|
||||
// Render custom button to switch page instead of double click on row
|
||||
renderer: {
|
||||
type: CustomButton,
|
||||
options: {
|
||||
value: '보기',
|
||||
value: "보기",
|
||||
onClick: (rowKey) => {
|
||||
const gridInstance = this.$refs[this.gridName].gridInstance;
|
||||
const eventRowData = gridInstance.invoke("getRow", rowKey);
|
||||
@ -434,9 +461,9 @@ export default {
|
||||
key: key,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{ header: "eqpmId", name: "eqpmId", hidden: true },
|
||||
{ header: "설비명", name: "eqpmNm", align: "left", width: 200 },
|
||||
@ -546,10 +573,10 @@ export default {
|
||||
},
|
||||
],
|
||||
},
|
||||
pageOptions: {
|
||||
useClient: true,
|
||||
perPage: 3,
|
||||
}
|
||||
// pageOptions: {
|
||||
// useClient: true,
|
||||
// perPage: 3,
|
||||
// }
|
||||
};
|
||||
|
||||
this.setGridOption({
|
||||
@ -566,26 +593,39 @@ export default {
|
||||
this.loadGrid = false;
|
||||
this.enrgUseMainIdxDesc = [];
|
||||
var apiKey = null;
|
||||
var apiKey2 = null;
|
||||
var params = {
|
||||
fabId: this.selectValue01,
|
||||
eqpmKindId: this.selectValue02,
|
||||
eqpmGrpId: this.selectValue03,
|
||||
fromDt: this.pageData.fromDt,
|
||||
limit: this.limit,
|
||||
page: this.page,
|
||||
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
||||
};
|
||||
|
||||
if (this.pageData.cmCycle == "CYC_DAY") {
|
||||
params["fromDtMm"] = String(this.pageData.fromDt).substring(0, 6);
|
||||
apiKey = "selectDailyEnrgUseMainIdx";
|
||||
apiKey2 = "selectDailyEnrgUseMainIdxPageTotal";
|
||||
} else if (this.pageData.cmCycle == "CYC_MONTH") {
|
||||
apiKey = "selectMonthlyEnrgUseMainIdx";
|
||||
apiKey2 = "selectMonthlyEnrgUseMainIdxPageTotal";
|
||||
}
|
||||
|
||||
var res = await this.postApiReturn({
|
||||
apiKey: apiKey,
|
||||
resKey: "eqpmIndMntrData",
|
||||
sendParam: params,
|
||||
});
|
||||
|
||||
var res2 = await this.postApiReturn({
|
||||
apiKey: apiKey2,
|
||||
resKey: "eqpmIndMntrPageTotal",
|
||||
sendParam: params,
|
||||
});
|
||||
|
||||
this.totalCount = res2[0].totalcount;
|
||||
|
||||
this.enrgUseMainIdxDesc = await this.postApiReturn({
|
||||
apiKey: "selectEnrgUseMainIdxDesc",
|
||||
resKey: "eqpmIndMntrData",
|
||||
@ -654,7 +694,7 @@ export default {
|
||||
// id값 설정
|
||||
elementList[i].id = "tooltipTargetElement_" + i;
|
||||
tooltipElement.id = "tooltipElement_" + i;
|
||||
|
||||
tooltipElement.classList.add(this.isDarkmode ? "dark-mode" : "light-mode");
|
||||
// element 추가
|
||||
elementList[i].append(tooltipElement);
|
||||
}
|
||||
@ -849,5 +889,12 @@ function numberFormatter({ value }) {
|
||||
overflow-y: visible;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 12px 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -1,6 +1,6 @@
|
||||
import Vue from "vue";
|
||||
// import Antd from "ant-design-vue";
|
||||
import { Row, Col, Card, Button, Checkbox, DatePicker, Select, Table, Modal, Input, Icon, Divider } from "ant-design-vue";
|
||||
import { Row, Col, Card, Button, Checkbox, DatePicker, Select, Table, Modal, Input, Icon, Divider, Pagination } from "ant-design-vue";
|
||||
|
||||
import 'ant-design-vue/dist/antd.css'
|
||||
// import { RangePicker } from "ant-design-vue/types/date-picker/range-picker";
|
||||
@ -17,4 +17,5 @@ Vue.component(Modal.name, Modal)
|
||||
Vue.component(Input.name, Input)
|
||||
Vue.component(Icon.name, Icon)
|
||||
Vue.component(Divider.name, Divider)
|
||||
Vue.component(Pagination.name, Pagination)
|
||||
// Vue.component(RangePicker.name, RangePicker)
|
@ -910,6 +910,11 @@ const INIT_URL_STATE = {
|
||||
'ems/effc/eqpmIndMntrCtr/selectDailyEnrgUseMainIdx',
|
||||
selectMonthlyEnrgUseMainIdx:
|
||||
'ems/effc/eqpmIndMntrCtr/selectMonthlyEnrgUseMainIdx',
|
||||
selectDailyEnrgUseMainIdxPageTotal:
|
||||
'ems/effc/eqpmIndMntrCtr/selectDailyEnrgUseMainIdxPageTotal',
|
||||
selectMonthlyEnrgUseMainIdxPageTotal:
|
||||
'ems/effc/eqpmIndMntrCtr/selectMonthlyEnrgUseMainIdxPageTotal',
|
||||
|
||||
|
||||
//prgmId : PRG0082 에너지 사용량 - 설비상세 모니터링
|
||||
selectDailyEnrgUseMainGuideIdx:
|
||||
|
Reference in New Issue
Block a user