Compare commits

..

3 Commits

46 changed files with 454 additions and 448 deletions

View File

@ -144,7 +144,7 @@ a {
& .router-tab__container { & .router-tab__container {
overflow-y: auto; overflow-y: auto;
height: calc(100vh - 105px); min-height: calc(100vh - 105px);
max-height: calc(100vh - 105px); max-height: calc(100vh - 105px);
padding: 20px; padding: 20px;
} }
@ -486,7 +486,7 @@ a {
.container--fluid { .container--fluid {
background-color: map-deep-get($config, #{$theme}, "container-fluid"); background-color: map-deep-get($config, #{$theme}, "container-fluid");
.menu-container { .menu-container {
height:calc(100vh - 60px); max-height:calc(100vh - 60px);
overflow-y: auto; overflow-y: auto;
} }
} }

View File

@ -254,23 +254,12 @@
"tui-grid-border-vertical-color" "tui-grid-border-vertical-color"
); );
// &-current-row{ &-current-row{
// } td {
td.row-selected {
.custom-radio { .custom-radio {
background-color: map-deep-get($config,
#{$theme},
"ant-btn-primary-color"
);
.radio-mark{ .radio-mark{
border-color: map-deep-get($config, border-color: #1677ff;
#{$theme}, background-color: #fff;
"arow-line-color"
);
background-color: map-deep-get($config,
#{$theme},
"arow-line-btn-bg-color"
);
&::after { &::after {
content: ""; content: "";
position: absolute; position: absolute;
@ -280,10 +269,8 @@
height: 11px; height: 11px;
width: 11px; width: 11px;
border-radius: 50%; border-radius: 50%;
background-color: map-deep-get($config, background-color: #1677ff;
#{$theme}, }
"arow-line-color"
);
} }
} }
} }

View File

@ -188,7 +188,7 @@
transform: translateY(-50%); transform: translateY(-50%);
height: 18px; height: 18px;
width: 18px; width: 18px;
// background-color: white; background-color: white;
border: 2px solid #ccc; border: 2px solid #ccc;
border-radius: 50%; border-radius: 50%;
transition: all 0.2s ease; transition: all 0.2s ease;
@ -263,6 +263,9 @@
"v-input-backgroundColor" "v-input-backgroundColor"
); );
&:not(.v-input--radio-group, .v-input--checkbox) { &:not(.v-input--radio-group, .v-input--checkbox) {
.v-input__slot { .v-input__slot {
background-color: map-deep-get($config, background-color: map-deep-get($config,
@ -369,17 +372,6 @@
} }
} }
} }
.radio-mark {
background-color: map-deep-get($config,
#{$theme},
"ant-btn-primary-color"
);
border-color: map-deep-get($config,
#{$theme},
"v-input-textarea-border"
);
}
} }
.v-radio { .v-radio {

View File

@ -63,12 +63,6 @@
line-height: 1.25 !important; line-height: 1.25 !important;
} }
.custom-title-7 {
font-size: 0.875rem !important;
font-weight: 400 !important;
line-height: 22px !important;
}
.custom-title-8 { .custom-title-8 {
font-size: 0.75rem !important; font-size: 0.75rem !important;
font-weight: 700 !important; font-weight: 700 !important;
@ -82,15 +76,15 @@
.custom-text-2 { .custom-text-2 {
opacity: 0.6; opacity: 0.6;
font-family: SpoqaHanSansNeo;
font-size: 14px; font-size: 14px;
font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: 2.17; line-height: 2.17;
// font-weight: normal; letter-spacing: normal;
// font-stretch: normal; text-align: right;
// font-style: normal; color: #fff;
// letter-spacing: normal;
// text-align: right;
// color: #fff;
// font-family: SpoqaHanSansNeo;
} }
.text-color--white-0 { .text-color--white-0 {

View File

@ -4,13 +4,12 @@
:data="chkGridData" :data="chkGridData"
:columns="chkGridColumns" :columns="chkGridColumns"
:options="chkGridOptions" :options="chkGridOptions"
@mousedown="onMousedown" @focusChange="focusChangeEvt"
@click="startEditing" @click="startEditing"
@editingFinish="editingFinish" @editingFinish="editingFinish"
@dblclick="dblClick" @dblclick="dblClick"
@mouseover="mouseoverEvent" @mouseover="mouseoverEvent"
@mouseout="mouseoutEvent" @mouseout="mouseoutEvent"
@focusChange="focusChangeEvt"
/> />
</template> </template>
<script> <script>
@ -108,13 +107,16 @@ export default {
}, },
chkGridOptions() { chkGridOptions() {
const options = { const options = {
// bodyHeight: 'fitToContent',
scrollX: false,
scrollY: false,
...this.gridData.option, ...this.gridData.option,
useIcon: false,
}; };
options.treeColumnOptions = { options.treeColumnOptions = {
useIcon: false, useIcon: false,
...options.treeColumnOptions, ...options.treeColumnOptions,
}; };
return options; return options;
}, },
defaultRow() { defaultRow() {
@ -161,7 +163,7 @@ export default {
}, },
created() {}, created() {},
async mounted() { async mounted() {
// console.log(this.dataPath); // console.log('--------------DEBUG----gridData: ', this.gridData);
if (this.gridName) { if (this.gridName) {
this.gridInstance = this.$refs['tuigrid' + this.gridName]; this.gridInstance = this.$refs['tuigrid' + this.gridName];
@ -184,13 +186,13 @@ export default {
}), }),
// true : 현재 행 혹은 연결된 그리드가 수정중인 상태 // true : 현재 행 혹은 연결된 그리드가 수정중인 상태
checkGridState() { checkGridState() {
const rowStatList = ['I', 'U', 'D']; var rowStatList = ['I', 'U', 'D'];
const row = this.gridInstance.invoke('getFocusedCell'); var row = this.gridInstance.invoke('getFocusedCell');
if (row) { if (row) {
const rowData = this.gridInstance.invoke('getRow', row.rowKey); var rowData = this.gridInstance.invoke('getRow', row.rowKey);
if (rowData) { if (rowData) {
const rowStat = rowData['rowStat']; var rowStat = rowData['rowStat'];
if (rowStatList.includes(rowStat)) { if (rowStatList.includes(rowStat)) {
return true; return true;
} }
@ -198,8 +200,8 @@ export default {
} }
if (this.preventFocusChangeEventTargetGridList) { if (this.preventFocusChangeEventTargetGridList) {
for (let gridInstance of this.preventFocusChangeEventTargetGridList) { for (var gridInstance of this.preventFocusChangeEventTargetGridList) {
const dataArr = gridInstance.save(); var dataArr = gridInstance.save();
if (dataArr.length > 0) { if (dataArr.length > 0) {
return true; return true;
@ -251,11 +253,9 @@ export default {
this.gridInstance.invoke('check', rowData.rowKey, instance); this.gridInstance.invoke('check', rowData.rowKey, instance);
}, },
setSelectionRange(rowKey) { setSelectionRange(rowKey) {
// console.log("------------------DEBUG-------setSelectionRange:", rowKey);
const rowDatas = this.gridInstance.invoke('getData'); const rowDatas = this.gridInstance.invoke('getData');
rowDatas.forEach(item => { rowDatas.forEach(item => {
if (item.rowKey == rowKey) { if (item.rowKey == rowKey) {
// console.log("------------------DEBUG-------setSelectionRange---item:", item);
this.gridInstance.invoke( this.gridInstance.invoke(
'addRowClassName', 'addRowClassName',
item.rowKey, item.rowKey,
@ -270,12 +270,7 @@ export default {
} }
}); });
}, },
onMousedown(evt) {
// console.log("------------------DEBUG-------onMousedown:", evt);
this.focusChangeEvt(evt);
},
focusChangeEvt(e) { focusChangeEvt(e) {
// console.log("------------------DEBUG-------focusChangeEvt:", e);
// console.log('focusChangeEvt1...') // console.log('focusChangeEvt1...')
if (this.preventFocusChangeEvent(e)) { if (this.preventFocusChangeEvent(e)) {
// console.log('prevent focusChangeEvt') // console.log('prevent focusChangeEvt')
@ -296,7 +291,6 @@ export default {
this.sendSelectedRowData(e.rowKey); this.sendSelectedRowData(e.rowKey);
}, },
startEditing(e) { startEditing(e) {
// console.log("------------------DEBUG-------startEditing:", e);
// console.log('startEditing1...') // console.log('startEditing1...')
if (this.preventFocusChangeEvent(e)) { if (this.preventFocusChangeEvent(e)) {
// console.log('prevent startEditing') // console.log('prevent startEditing')
@ -323,7 +317,6 @@ export default {
} }
}, },
async editingFinish(e) { async editingFinish(e) {
// console.log('------------------DEBUG-------editingFinish:', e);
// console.log("Editing END E::", e); // console.log("Editing END E::", e);
// editor 간 이동시 수정되는 문제 수정 // editor 간 이동시 수정되는 문제 수정
// e.rowEditingFg: grid의 한 row를 한번에 수정할 시 각각의 cell 마다 click 이벤트가 발생하지 않아 this.editorStartKey값이 제대로 입력 되지 않는 경우를 대비하여 만든 Fg // e.rowEditingFg: grid의 한 row를 한번에 수정할 시 각각의 cell 마다 click 이벤트가 발생하지 않아 this.editorStartKey값이 제대로 입력 되지 않는 경우를 대비하여 만든 Fg
@ -673,6 +666,8 @@ export default {
store.dimension.offsetLeft = offsetLeft; store.dimension.offsetLeft = offsetLeft;
}, },
setHeight(_a,height){ setHeight(_a,height){
return; // setting auto height
// console.log("setHeight"); // console.log("setHeight");
var dimension = _a.dimension; var dimension = _a.dimension;
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth; var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
@ -685,7 +680,6 @@ export default {
? this.gridInstance.invoke('getFocusedCell').rowKey ? this.gridInstance.invoke('getFocusedCell').rowKey
: eventRowKey; : eventRowKey;
var rowData = this.gridInstance.invoke('getRow', rowKey); var rowData = this.gridInstance.invoke('getRow', rowKey);
// console.log('------------------DEBUG-------sendSelectedRowData:', {eventRowKey, rowKey});
this.$emit('sendSelectedRowStatInfo', rowData); this.$emit('sendSelectedRowStatInfo', rowData);
} }
}, },
@ -711,6 +705,11 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .tui-grid-container { ::v-deep .tui-grid-container {
// .tui-grid-body-area {
// overflow: hidden !important;
// }
.tui-grid-content-area { .tui-grid-content-area {
.tui-grid-cell-content { .tui-grid-cell-content {
input[type='number'] { input[type='number'] {

View File

@ -2,7 +2,9 @@
<v-row class="search-box" align="center" no-gutters> <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"> <label for="" class="search-box-label">
<v-icon x-small color="primary" class="mr-1">mdi-record-circle</v-icon> <v-icon small color="primary"
:class="['mr-1', required ? 'icon-orange' : 'icon-blue']"
>$icoBulletPoint</v-icon>
{{ label }} {{ label }}
</label> </label>
</v-col> </v-col>
@ -17,14 +19,16 @@
readonly readonly
outlined outlined
> >
<template #append> <template #append >
<v-icon size="20">$icoCalendar</v-icon> <v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
</template> </template>
<template #append-outer> <template #append-outer>
<div ref="startpicker-container" id="startpicker-container"></div> <div ref="startpicker-container" id="startpicker-container"></div>
</template> </template>
</v-text-field> </v-text-field>
<div v-show="isRange" class="mx-3" :style="{ lineHeight: 0 }">~</div> <div v-if="isRange" class="mx-3" :style="{ lineHeight: 0 }">
<img :src="arrowIcon" alt="">
</div>
<v-text-field <v-text-field
v-show="isRange" v-show="isRange"
id="endpicker" id="endpicker"
@ -129,6 +133,12 @@ export default {
this.defaultRange === 'no limite' this.defaultRange === 'no limite'
); );
}, },
arrowIcon() {
if(this.isDarkMode){
return require('@/assets/images/arrow_datepicker_dm.png');
}
return require('@/assets/images/arrow_datepicker.png');
}
}, },
watch: { watch: {
myCmCycle() { myCmCycle() {

View File

@ -31,8 +31,8 @@ export default {
this.mode = !this.mode; this.mode = !this.mode;
this.$vuetify.theme.isDark = this.mode; this.$vuetify.theme.isDark = this.mode;
this.setThemeChange(this.mode); this.setThemeChange(this.mode);
// console.log(this.mode) console.log(this.mode)
// console.log(this.$vuetify.theme.isDark) console.log(this.$vuetify.theme.isDark)
}, },
}, },
}; };

View File

@ -125,7 +125,7 @@ export default {
modifyValue(e) { modifyValue(e) {
let val = e.target.value.replace(/[^-.0-9]/g, ''); let val = e.target.value.replace(/[^-.0-9]/g, '');
// console.log('val : ', val); console.log('val : ', val);
if(this.item.min != undefined && parseFloat(val) < this.item.min){ if(this.item.min != undefined && parseFloat(val) < this.item.min){
val = this.item.min; val = this.item.min;
@ -134,7 +134,7 @@ export default {
if(this.item.max != undefined && parseFloat(val) > this.item.max){ if(this.item.max != undefined && parseFloat(val) > this.item.max){
val = this.item.max; val = this.item.max;
} }
// console.log('val2 : ', val); console.log('val2 : ', val);
this.textValue = val; this.textValue = val;
// this.textValue = this.validateNumber(val); // this.textValue = this.validateNumber(val);

View File

@ -152,12 +152,12 @@ export default {
const snarData = this.searchParam.isMulti const snarData = this.searchParam.isMulti
? this.searchParam.snarInfoList ? this.searchParam.snarInfoList
: this.searchParam.snarInfo; : this.searchParam.snarInfo;
// console.log('this.searchParam.isMulti', this.searchParam.isMulti); console.log('this.searchParam.isMulti', this.searchParam.isMulti);
// console.log( console.log(
// 'this.searchParam.snarInfoList', 'this.searchParam.snarInfoList',
// this.searchParam.snarInfoList, this.searchParam.snarInfoList,
// ); );
// console.log('this.searchParam.snarInfo', this.searchParam.snarInfo); console.log('this.searchParam.snarInfo', this.searchParam.snarInfo);
if (Array.isArray(snarData)) { if (Array.isArray(snarData)) {
if (snarData.length > 0) { if (snarData.length > 0) {
for (const item of snarData) { for (const item of snarData) {

View File

@ -394,7 +394,7 @@ export default {
params: {}, params: {},
}, },
}); });
// console.log('statusCd', statusCd); console.log('statusCd', statusCd);
if (statusCd.data.retnCd == 0) { if (statusCd.data.retnCd == 0) {
const params2 = { const params2 = {
simulationId: statusCd.data.dataset.simulId, simulationId: statusCd.data.dataset.simulId,

View File

@ -46,10 +46,11 @@
v-model="searchWord" @keyup.enter="search"><template v-slot:append> v-model="searchWord" @keyup.enter="search"><template v-slot:append>
<!-- Custom SVG icon --> <!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon> <v-icon>$icoSearch</v-icon>
</template></v-text-field> </template></v-text-field>
</v-col> </v-col>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-col :cols="3" class="text-right"> <v-col cols="3" class="text-right">
<a-button icon="search" type="primary" @click="search()" <a-button icon="search" type="primary" @click="search()"
class="search-button">조회</a-button> class="search-button">조회</a-button>
<!-- <v-btn :ripple="false" @click="initSearch()"> <!-- <v-btn :ripple="false" @click="initSearch()">

View File

@ -286,8 +286,8 @@ export default {
// Row selection config // Row selection config
rowSelection: { rowSelection: {
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
// console.log('Selected Row Keys:', selectedRowKeys); console.log('Selected Row Keys:', selectedRowKeys);
// console.log('Selected Rows:', selectedRows); console.log('Selected Rows:', selectedRows);
}, },
} }
}; };
@ -332,7 +332,7 @@ export default {
// this.getRowGridData(); // this.getRowGridData();
// }, // },
searchFab() { searchFab() {
// console.log('tttttttttttt') console.log('tttttttttttt')
// this.filteredData = this.data.filter(item => { // this.filteredData = this.data.filter(item => {
// const matchGrp = this.eqpmGrpSelected ? item.group === this.eqpmGrpSelected : true; // const matchGrp = this.eqpmGrpSelected ? item.group === this.eqpmGrpSelected : true;
// const matchFab = this.localFabSelected ? item.fab === this.localFabSelected : true; // const matchFab = this.localFabSelected ? item.fab === this.localFabSelected : true;

View File

@ -1,5 +1,5 @@
<template> <template>
<v-row class="search-box" align="center"> <v-row class="search-box no-gutters" align="center">
<v-col :cols="option.labelCols" class="py-0"> <v-col :cols="option.labelCols" class="py-0">
<label for="" class="search-box-label"> <label for="" class="search-box-label">
<v-icon v-if="item.iconShow" small <v-icon v-if="item.iconShow" small
@ -8,13 +8,11 @@
</label> </label>
</v-col> </v-col>
<v-col :cols="option.textCols" class="py-0"> <v-col :cols="option.textCols" class="py-0">
<v-text-field readonly append-icon="" class="v-input__custom" outlined :hide-details="true" <v-text-field readonly append-icon="" :class="['v-select__custom', customClass]" outlined :hide-details="true"
v-model="searchWord" @keyup.enter="typeEnterKey" @click="dialogOpenCloseEvent(dialog)" v-model="selectValue" @keyup.enter="typeEnterKey" @click="dialogOpenCloseEvent(dialog)" style="padding: 0;"
:required="item.required || false"><template v-slot:append> :required="item.required || false"><template v-slot:append>
<!-- Custom SVG icon --> <!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon> <v-icon>$icoSearch</v-icon>
</template></v-text-field> </template></v-text-field>
</v-col> </v-col>
@ -43,8 +41,6 @@
class="search-button">조회</a-button> class="search-button">조회</a-button>
</v-row> </v-row>
</v-col> </v-col>
</v-row> </v-row>
<!-- <div :style="'height: calc(65vh)'"> --> <!-- <div :style="'height: calc(65vh)'"> -->
<div :style="'height: 600px'" class="px-5"> <div :style="'height: 600px'" class="px-5">

View File

@ -126,7 +126,7 @@ export default {
async chkDialog(val) { async chkDialog(val) {
if (val) { if (val) {
// 열릴 때 // 열릴 때
// console.log('dsfafds'); console.log('dsfafds');
await this.getData(); await this.getData();
// console.log("chkDialog: ", val); // console.log("chkDialog: ", val);
// if(this.searchParam.selecUserList.length > 0){ // if(this.searchParam.selecUserList.length > 0){

View File

@ -22,8 +22,8 @@
outlined outlined
:hide-details="true" :hide-details="true"
> >
<!-- Custom SVG icon -->
<template v-slot:append> <template v-slot:append>
<!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon> <v-icon>$icoSearch</v-icon>
</template> </template>
</v-text-field> </v-text-field>
@ -31,20 +31,28 @@
<v-dialog v-model="dialog" scrollable width="700px"> <v-dialog v-model="dialog" scrollable width="700px">
<v-card style="height: 100%"> <v-card style="height: 100%">
<v-card-title class="px-6 py-4 d-flex align-center justify-space-between"> <v-card-title class="pa-5 d-flex align-center justify-space-between">
<span class="custom-title-4">{{ option.modalTitle }}</span> <span class="custom-title-4">{{ option.modalTitle }}</span>
<a-button icon="close" type="text" @click="dialogOpenCloseEvent(dialog)"></a-button> <v-btn
icon
tile
:ripple="false"
@click="dialogOpenCloseEvent(dialog)"
>
<v-icon>mdi-close</v-icon>
</v-btn>
</v-card-title> </v-card-title>
<div class="pa-5"> <div class="pa-5">
<v-row align="center" no-gutters> <v-row align="center" no-gutters>
<v-col :cols="12"> <v-col :cols="3">
<label for="" class="search-box-label"> <label for="" class="search-box-label">
<!-- <v-icon x-small color="primary" class="mr-1">mdi-record-circle</v-icon> --> <v-icon x-small color="primary" class="mr-1"
<v-icon small :class="['mr-1 icon-blue']">$icoBulletPoint</v-icon> >mdi-record-circle</v-icon
>
검색 검색
</label> </label>
</v-col> </v-col>
<v-col :cols="9"> <v-col :cols="5">
<v-text-field <v-text-field
append-icon="mdi-magnify" append-icon="mdi-magnify"
class="v-input__custom" class="v-input__custom"
@ -55,19 +63,21 @@
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-col :cols="3" class="text-right"> <v-col cols="4" class="text-right">
<a-button type="primary" @click="search()" icon="search"> <v-btn :ripple="false" @click="search()">
조회 조회
</a-button> </v-btn>
<a-button @click="initSearch()"> <v-btn :ripple="false" @click="initSearch()">
초기화 초기화
</a-button> </v-btn>
</v-col> </v-col>
</v-row> </v-row>
</div> </div>
<!-- <v-divider></v-divider> --> <v-divider></v-divider>
<div style="height: 429px;" class="py-3 px-5"> <!-- <div :style="'height: calc(65vh)'"> -->
<div ref="modalGridParent" class="h100 w100"> <div :style="'height: 429px;'">
<!-- <div :style="{ height: 'calc(100% - 213px)' }"> -->
<div ref="modalGridParent" class="h100 w100 py-3">
<component <component
:is="loadGrid && dialog ? 'Grid' : null" :is="loadGrid && dialog ? 'Grid' : null"
:gridName="grid_01" :gridName="grid_01"
@ -78,9 +88,11 @@
/> />
</div> </div>
</div> </div>
<v-card-actions class="pa-5 d-flex align-center justify-end"> <v-card-actions class="pa-5 d-flex align-center justify-center">
<a-button class="mr-2" @click="dialogOpenCloseEvent(dialog)">닫기</a-button> <v-btn :ripple="false" @click="setUpdate($event)">확인</v-btn>
<a-button type="primary" @click="setUpdate($event)">확인</a-button> <v-btn :ripple="false" @click="dialogOpenCloseEvent(dialog)"
>닫기</v-btn
>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
</v-dialog> </v-dialog>
@ -324,7 +336,7 @@ export default {
})) }))
}; };
// console.log(res); console.log(res);
this.setModalGridData({ this.setModalGridData({
modalKey: this.myModalKey, modalKey: this.myModalKey,
@ -383,31 +395,7 @@ var FtnPlcFormPop = {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// @each $theme in dark, light {
// @include theme($theme);
// .v-application.#{$theme}-mode {
// .v-input--is-readonly {
// border-color: map-deep-get($config,
// #{$theme},
// "v-input-readonly-border-color"
// );
// ::v-deep {
// &:not(.v-input--radio-group, .v-input--checkbox) {
// .v-input__slot {
// background-color: map-deep-get($config,
// #{$theme},
// "v-input-backgroundColor"
// ) !important;
// }
// }
// }
// }
// }
// }
::v-deep { ::v-deep {
.v-dialog { .v-dialog {
overflow-y: hidden !important; overflow-y: hidden !important;
} }
@ -430,4 +418,26 @@ var FtnPlcFormPop = {
} }
} }
@each $theme in dark, light {
.v-application.#{$theme}-mode {
.v-dialog {
.v-card {
&__title {
color: map-deep-get($color, 'white', '0');
@if $theme == dark {
background-color: #2d3355;
.v-btn {
background-color: #2d3355;
}
} @else {
background-color: #3f4d7d;
.v-btn {
background-color: #3f4d7d;
}
}
}
}
}
}
}
</style> </style>

View File

@ -294,10 +294,10 @@ export default {
if (this.searchParam.energyCd < 0) { if (this.searchParam.energyCd < 0) {
roiIdVal = null; roiIdVal = null;
} else { } else {
// console.log( console.log(
// 'this.searchParam.energyList[this.searchParam.energyCd]', 'this.searchParam.energyList[this.searchParam.energyCd]',
// this.searchParam.energyList[this.searchParam.energyCd], this.searchParam.energyList[this.searchParam.energyCd],
// ); );
roiIdVal = this.searchParam.energyList[this.searchParam.energyCd + 1] roiIdVal = this.searchParam.energyList[this.searchParam.energyCd + 1]
.cd; .cd;
} }

View File

@ -239,13 +239,13 @@ export default {
this.selectedData.eccNm = ''; this.selectedData.eccNm = '';
if (this.bindOption === null) { if (this.bindOption === null) {
// console.log('this.bindOption is null...'); console.log('this.bindOption is null...');
this.setPageData({ this.setPageData({
modalEccId: '', modalEccId: '',
modalEccNm: '', modalEccNm: '',
}); });
} else { } else {
// console.log('this.bindOption is not null...'); console.log('this.bindOption is not null...');
this.setPageData({ this.setPageData({
[this.bindOption.eccId]: '', [this.bindOption.eccId]: '',
[this.bindOption.eccNm]: '', [this.bindOption.eccNm]: '',
@ -296,12 +296,12 @@ export default {
? localStorage.getItem(this.parentPrgmId + 'ModalEccNm') ? localStorage.getItem(this.parentPrgmId + 'ModalEccNm')
: '', : '',
}); });
// console.log( console.log(
// 'localStorage.getItem(this.parentPrgmId + "ModalEccNm") : ', 'localStorage.getItem(this.parentPrgmId + "ModalEccNm") : ',
// localStorage.getItem(this.parentPrgmId + 'ModalEccNm') != null localStorage.getItem(this.parentPrgmId + 'ModalEccNm') != null
// ? localStorage.getItem(this.parentPrgmId + 'ModalEccNm') ? localStorage.getItem(this.parentPrgmId + 'ModalEccNm')
// : '', : '',
// ); );
this.textFieldData = this.textFieldData =
localStorage.getItem(this.parentPrgmId + 'ModalEccNm') != null localStorage.getItem(this.parentPrgmId + 'ModalEccNm') != null
? localStorage.getItem(this.parentPrgmId + 'ModalEccNm') ? localStorage.getItem(this.parentPrgmId + 'ModalEccNm')

View File

@ -296,25 +296,25 @@ export default {
} }
}, },
strtDt(val) { strtDt(val) {
// console.log('strtDt : ', val); console.log('strtDt : ', val);
this.checkStrtAndEndDateTime('start'); this.checkStrtAndEndDateTime('start');
if (this.startDatepickerInstance3) { if (this.startDatepickerInstance3) {
this.startDatepickerInstance3.setDate(new Date(this.endDt)); this.startDatepickerInstance3.setDate(new Date(this.endDt));
} }
}, },
endDt(val) { endDt(val) {
// console.log('endDt : ', val); console.log('endDt : ', val);
this.checkStrtAndEndDateTime('end'); this.checkStrtAndEndDateTime('end');
if (this.startDatepickerInstance) { if (this.startDatepickerInstance) {
this.startDatepickerInstance.setDate(new Date(this.strtDt)); this.startDatepickerInstance.setDate(new Date(this.strtDt));
} }
}, },
strtHh(val) { strtHh(val) {
// console.log('strtHh : ', val); console.log('strtHh : ', val);
this.checkStrtAndEndDateTime('start'); this.checkStrtAndEndDateTime('start');
}, },
endHh(val) { endHh(val) {
// console.log('endHh : ', val); console.log('endHh : ', val);
this.checkStrtAndEndDateTime('end'); this.checkStrtAndEndDateTime('end');
}, },
strtMm(val) { strtMm(val) {

View File

@ -253,7 +253,7 @@ export default {
readObjid: this.searchParam.energyCd, readObjid: this.searchParam.energyCd,
}, },
}); });
// console.log('getTreeData : ', res); console.log('getTreeData : ', res);
// this.treeData = res; // this.treeData = res;
// const ROOT = res[0].plcCd; // const ROOT = res[0].plcCd;
const setTreeData = await this.setTree({ const setTreeData = await this.setTree({
@ -327,7 +327,7 @@ export default {
// 공정/설비 트리 row 클릭이벤트 // 공정/설비 트리 row 클릭이벤트
async getRowData(data) { async getRowData(data) {
// console.log("getRowData 시작..."); // console.log("getRowData 시작...");
// console.log('data', data); console.log('data', data);
this.activeRowData = data; this.activeRowData = data;
// if(data.enableFg == 1){ // if(data.enableFg == 1){
// this.activeRowData = data; // this.activeRowData = data;

View File

@ -70,7 +70,7 @@ export default {
return this.searchParam[this.parentPrgmId][this.enrgCd]; return this.searchParam[this.parentPrgmId][this.enrgCd];
}, },
set(value) { set(value) {
// console.log('value : ', value); console.log('value : ', value);
return this.setPageData({ [this.enrgCd]: value }); return this.setPageData({ [this.enrgCd]: value });
}, },
}, },

View File

@ -270,8 +270,8 @@ export default {
filteredData: [], filteredData: [],
rowSelection: { rowSelection: {
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
// console.log('Selected Row Keys:', selectedRowKeys); console.log('Selected Row Keys:', selectedRowKeys);
// console.log('Selected Rows:', selectedRows); console.log('Selected Rows:', selectedRows);
}, },
} }
}; };

View File

@ -213,7 +213,7 @@ export default {
let dataArr = []; let dataArr = [];
switch (action) { switch (action) {
case 'add': case 'add':
// console.log('add this.pageData : '); // , this.pageData); console.log('add this.pageData : '); // , this.pageData);
const defaultRow = { const defaultRow = {
dataSetId: this.pageData.dataSetId, dataSetId: this.pageData.dataSetId,
dataSetNm: this.pageData.dataSetNm, dataSetNm: this.pageData.dataSetNm,
@ -296,7 +296,7 @@ export default {
comId: this.selectedComId, comId: this.selectedComId,
dataSetId: this.selectedDataSetId, dataSetId: this.selectedDataSetId,
}; };
// console.log('data : ', data); console.log('data : ', data);
this.$emit('jamoviClickEvent', 'view1', data); this.$emit('jamoviClickEvent', 'view1', data);
}, },
}, },

View File

@ -1,7 +1,10 @@
<template> <template>
<div> <div>
<div class="d-flex justify-space-between align-center my-5" > <div
<span class="txt custom-subtitle-tab">설비 추가 정보</span> class="d-flex justify-space-between align-center"
style="height: 80px;"
>
<span class="txt custom-title-4-new">설비 추가 정보</span>
<Buttons <Buttons
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
:bindingData="gridName" :bindingData="gridName"
@ -17,6 +20,7 @@
:editorGrid="true" :editorGrid="true"
:innerTabGridInfo="innerTabGridInfo" :innerTabGridInfo="innerTabGridInfo"
@getRowsData="getRowData" @getRowsData="getRowData"
:dataPath="dataPathMock"
/> />
</div> </div>
</div> </div>
@ -48,7 +52,7 @@ export default {
}, },
data() { data() {
return { return {
loadGrid: false, loadGrid: true,
gridName: 'rowDetailGrid', gridName: 'rowDetailGrid',
rowKey: null, rowKey: null,
edtingFinishFlag: 'Y', edtingFinishFlag: 'Y',
@ -339,9 +343,7 @@ export default {
value: myColumns, value: myColumns,
}); });
this.$nextTick(() => {
this.loadGrid = true; this.loadGrid = true;
});
}, },
async btnActions(action) { async btnActions(action) {
let dataArr = []; let dataArr = [];

View File

@ -1,12 +1,12 @@
<template> <template>
<div> <div>
<div class="d-flex justify-space-between align-center my-5" > <div class="d-flex justify-space-between align-center" style="height: 80px;">
<span class="txt custom-subtitle-tab">설비 상수 정보</span> <span class="txt custom-title-4-new">설비 상수 정보</span>
<Buttons :parentPrgmId="parentPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" /> <Buttons :parentPrgmId="parentPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
</div> </div>
<div ref="gridParent" style="min-height: calc(100vh - 800px);"> <div ref="gridParent" style="min-height: calc(100vh - 800px);">
<Grid :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="parentPrgmId" <Grid :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="parentPrgmId"
@getRowsData="getRowData" :innerTabGridInfo="innerTabGridInfo" /> @getRowsData="getRowData" :innerTabGridInfo="innerTabGridInfo" :dataPath="dataPathMock" />
</div> </div>
<div style="min-height: calc(100vh - 900px);" class="mt-4"> <div style="min-height: calc(100vh - 900px);" class="mt-4">
<component :is="'Form'" :parentPrgmId="parentPrgmId" :bindingData="gridName" :detailList="detailList" <component :is="'Form'" :parentPrgmId="parentPrgmId" :bindingData="gridName" :detailList="detailList"
@ -41,7 +41,7 @@ export default {
}, },
data() { data() {
return { return {
loadGrid: false, loadGrid: true,
gridName: 'rowEqpmConstGrid', gridName: 'rowEqpmConstGrid',
detailList: myEqpmConstDetail, detailList: myEqpmConstDetail,
@ -232,9 +232,7 @@ export default {
value: myColumns, value: myColumns,
}); });
this.$nextTick(() => {
this.loadGrid = true; this.loadGrid = true;
});
}, },
async getRowData(data, gridName) { async getRowData(data, gridName) {
if (data.rowStat === 'I') { if (data.rowStat === 'I') {
@ -291,8 +289,8 @@ export default {
dataArr.map(item => { dataArr.map(item => {
for (var key of Object.keys(item)) { for (var key of Object.keys(item)) {
// console.log('key : ', key); console.log('key : ', key);
// console.log('item[key] : ', item[key]); console.log('item[key] : ', item[key]);
if (!item[key] && requiredKeyList.includes(key)) { if (!item[key] && requiredKeyList.includes(key)) {
validCheck = false; validCheck = false;
} }

View File

@ -1,24 +1,28 @@
<template> <template>
<div> <div>
<div class="d-flex justify-space-between align-center my-5" > <div
<span class="txt custom-subtitle-tab">설비 입출력 정보</span> class="d-flex justify-space-between align-center"
style="height: 80px;"
>
<span class="txt custom-title-4-new">설비 입출력 정보</span>
<Buttons <Buttons
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
:bindingData="gridName" :bindingData="gridName"
:btnActionsFnc="btnActions" :btnActionsFnc="btnActions"
/> />
</div> </div>
<div ref="gridParent" style="height: calc(100vh - 800px);"> <div ref="gridParent" style="min-height: calc(100vh - 800px);" >
<!-- :is="loadGrid ? 'Grid' : null" -->
<Grid <Grid
:ref="gridName" :ref="gridName"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName" :gridName="gridName"
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
@getRowsData="getRowData" @getRowsData="getRowData"
:innerTabGridInfo="innerTabGridInfo" :innerTabGridInfo="innerTabGridInfo"
:dataPath="dataPathMock"
/> />
</div> </div>
<div style="min-height: calc(100vh - 900px);"> <div style="min-height: calc(100vh - 900px);" class="mt-4">
<component <component
:is="'Form'" :is="'Form'"
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
@ -56,12 +60,28 @@ export default {
}, },
data() { data() {
return { return {
loadGrid: false, loadGrid: true,
gridName: 'rowEqpmIaoGrid', gridName: 'rowEqpmIaoGrid',
detailList: myEqpmIaoDetail, detailList: myEqpmIaoDetail,
inputList_emMapDiv: [], inputList_emMapDiv: [],
inputList_cmInOut: [], inputList_cmInOut: [],
dataPathMock: {
'rowEqpmIaoGrid' : {
column: [
{ header: '대상항목', name: 'id', headerAlign: 'left' },
{ header: '에너지원 명', name: 'lable', headerAlign: 'left' },
{ header: '대상 유형', name: 'type', headerAlign: 'left' },
{ header: '물리량', name: 'note', headerAlign: 'left' },
{ header: '계산여부', name: 'field1', headerAlign: 'left' },
{ header: '분배율', name: 'field2', headerAlign: 'left' }
],
data: dataPathDataExample,
defaultRow: dataPathDataExample,
option: {}
}
},
}; };
}, },
computed: { computed: {
@ -108,18 +128,18 @@ export default {
}, },
watch: { watch: {
selectedObjId(val) { selectedObjId(val) {
// console.log('selectedObjId : ', val); console.log('selectedObjId : ', val);
if (val === 'TAG') { if (val === 'TAG') {
this.detailList[2].class = 'py-3 d-none'; this.detailList[2].class = 'py-2 d-none';
this.detailList[3].class = 'py-3 pl-4 pt-1 d-none'; this.detailList[3].class = 'py-2 d-none';
this.detailList[4].class = 'py-3'; this.detailList[4].class = 'py-2';
this.detailList[5].class = 'py-3'; this.detailList[5].class = 'py-2';
} else { } else {
// }else if(val==="READ_PLC"){ // }else if(val==="READ_PLC"){
this.detailList[5].class = 'py-3 d-none'; this.detailList[5].class = 'py-2 d-none';
this.detailList[4].class = 'py-3 d-none'; this.detailList[4].class = 'py-2 d-none';
this.detailList[3].class = 'py-3 pl-4 pt-1'; this.detailList[3].class = 'py-2';
this.detailList[2].class = 'py-3'; this.detailList[2].class = 'py-2';
} }
}, },
selectedCalcFg(val) { selectedCalcFg(val) {
@ -152,7 +172,7 @@ export default {
}, },
}, },
mounted() { mounted() {
this.init(); // this.init();
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
@ -335,7 +355,7 @@ export default {
} }
if (dataArr.length > 0) { if (dataArr.length > 0) {
// console.log('dataArr : ', dataArr); console.log('dataArr : ', dataArr);
var requiredKeyList = this.detailList var requiredKeyList = this.detailList
.filter(item => { .filter(item => {
@ -396,7 +416,6 @@ export default {
}, },
}; };
function checkDuplicate(data, targetKey) { function checkDuplicate(data, targetKey) {
var duplicateFlag = false; var duplicateFlag = false;
var set = new Set(); var set = new Set();
@ -467,7 +486,7 @@ const myEqpmIaoDetail = [
}, },
{ {
type: 'EvtObjPop', type: 'EvtObjPop',
labelContent: '대상 항목', labelContent: '대상 항목 111',
valueNm: 'objId', valueNm: 'objId',
valueNm2: 'objNm', valueNm2: 'objNm',
bindNm: 'objNm', bindNm: 'objNm',
@ -482,7 +501,7 @@ const myEqpmIaoDetail = [
}, },
{ {
type: 'InputText', type: 'InputText',
cols: 6, cols: 5,
class: 'py-3 d-none', class: 'py-3 d-none',
valueNm: 'objNm', valueNm: 'objNm',
readonly: true, readonly: true,
@ -595,4 +614,13 @@ const myEqpmIaoDetail = [
iconShow: true iconShow: true
}, },
]; ];
import { getPathDataExample } from '@/const/const'
const dataPathDataExample = getPathDataExample({
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
lable: 'INCHEON 고온 냉동기 101호기 - 호로1',
type: '사용', note: '-',
field1: '1111',
field2: '2222',
});
</script> </script>

View File

@ -1,7 +1,7 @@
<template> <template>
<v-card class="pb-5"> <v-card class="pb-5">
<v-card-title class="d-flex justify-space-between align-end"> <v-card-title class="d-flex justify-space-between align-end">
<span class="tit ft-size_20 ft-weight_600">TAG 추가 정보</span> <span style="color:#000000A6" class="tit custom-title-4-new">TAG 추가 정보</span>
<Buttons <Buttons
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
:bindingData="gridName" :bindingData="gridName"

View File

@ -58,7 +58,7 @@ export default {
layoutInit() { layoutInit() {
if (this.$refs.searchFilter) { if (this.$refs.searchFilter) {
const searchFilterHeight = this.$refs.searchFilter.offsetHeight; const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
this.$refs.contents.style.height = `calc(100% - ${searchFilterHeight + 20}px)`; this.$refs.contents.style.minHeight = `calc(100% - ${searchFilterHeight + 20}px)`;
} }
}, },
//init() {} //init() {}

View File

@ -36,7 +36,11 @@
<v-card-title> <v-card-title>
<span class="custom-title-4">역할 리스트</span> <span class="custom-title-4">역할 리스트</span>
</v-card-title> </v-card-title>
<div ref="gridParent" class="px-5" style="height: 60vh;"> <div class="px-5" style="height:calc(100% - 100px)">
<div
ref="gridParent"
class="w100 h100"
>
<component <component
:is="loadGrid ? 'Grid' : null" :is="loadGrid ? 'Grid' : null"
:ref="gridName + myPrgmId" :ref="gridName + myPrgmId"
@ -45,6 +49,7 @@
@getRowsData="getRowData" @getRowsData="getRowData"
/> />
</div> </div>
</div>
</v-card> </v-card>
</v-col> </v-col>
<v-col cols="12" lg="10" > <v-col cols="12" lg="10" >
@ -64,12 +69,11 @@
:style="{ minHeight: '36px' }" :style="{ minHeight: '36px' }"
>[미배정]메뉴리스트</span >[미배정]메뉴리스트</span
> >
<div ref="treeGridParent" class="px-0 mt-2" style="height: 60vh;"> <div class="px-0 mt-2" style="height:calc(100% - 64px)">
<!-- <div <div
ref="treeGridParent" ref="treeGridParent"
class="w100 h100" class="w100 h100"
> >
</div> -->
<component <component
:is="loadTreeGrid ? 'Grid' : null" :is="loadTreeGrid ? 'Grid' : null"
:ref="gridName2 + myPrgmId" :ref="gridName2 + myPrgmId"
@ -78,6 +82,7 @@
@getRowsData="getUnAsgnRowData" @getRowsData="getUnAsgnRowData"
/> />
</div> </div>
</div>
</v-col> </v-col>
<v-col :cols="1"> <v-col :cols="1">
<ActionButtons <ActionButtons
@ -107,12 +112,11 @@
/> />
</v-col> </v-col>
</v-row> </v-row>
<div ref="treeGridParent2" class="px-0 mt-2" style="height: 60vh;"> <div class="px-0 mt-2" style="height:calc(100% - 64px)">
<!-- <div <div
ref="treeGridParent2" ref="treeGridParent2"
class="w100 h100" class="w100 h100"
> >
</div> -->
<component <component
:is="loadTreeGrid2 ? 'Grid' : null" :is="loadTreeGrid2 ? 'Grid' : null"
:ref="gridName3 + myPrgmId" :ref="gridName3 + myPrgmId"
@ -122,6 +126,7 @@
@getRowsData="getAsgnRowData" @getRowsData="getAsgnRowData"
/> />
</div> </div>
</div>
</v-col> </v-col>
</v-row> </v-row>
</v-card> </v-card>
@ -403,9 +408,9 @@ export default {
align: 'center', align: 'center',
width: 30, width: 30,
formatter: (props) => { formatter: (props) => {
return `<span class="custom-radio"> return `<label class="custom-radio">
<span class="radio-mark"></span> <span class="radio-mark"></span>
</span>`; </label>`;
} }
}, },
{ {
@ -426,9 +431,9 @@ export default {
align: 'center', align: 'center',
width: 30, width: 30,
formatter: (props) => { formatter: (props) => {
return `<span class="custom-radio"> return `<label class="custom-radio">
<span class="radio-mark"></span> <span class="radio-mark"></span>
</span>`; </label>`;
} }
}, },
{ header: '역할ID', name: 'roleId', hidden: true }, { header: '역할ID', name: 'roleId', hidden: true },
@ -568,7 +573,6 @@ export default {
}); });
}, },
async getRowData(data) { async getRowData(data) {
await this.setPageData({ await this.setPageData({
rowGridSelectKey: data.rowKey, rowGridSelectKey: data.rowKey,
rowGridSelectData: { rowGridSelectData: {
@ -674,8 +678,6 @@ export default {
}, },
getUnAsgnRowData(data) { getUnAsgnRowData(data) {
console.log("------------------DEBUG-------getUnAsgnRowData:", data);
const getRowData = data; const getRowData = data;
this.leftSelectRowData = Object.assign({}, getRowData); this.leftSelectRowData = Object.assign({}, getRowData);
}, },

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<CommonPageTitle /> <common-page-title />
<!-- 리스트 페이지 시작 --> <!-- 리스트 페이지 시작 -->
<div v-if="pageActionFlag == 'list'" class="h1001"> <div v-if="pageActionFlag == 'list'" class="h1001">
<v-card class="" > <v-card class="" >
@ -16,9 +16,11 @@
</div> </div>
</v-col> </v-col>
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);"> <v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
<div ref="gridParent" class="px-50" style="min-height: 70vh;"> <div ref="gridParent" class="h100 px-50">
<!-- <component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
@getRowsData="getRowData" /> -->
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId" <component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
@getRowsData="getRowData" /> @getRowsData="getRowData" :selectedRowDataWatchFlag="true" />
</div> </div>
</v-col> </v-col>
</v-row> </v-row>
@ -27,7 +29,7 @@
</div> </div>
<!-- 리스트 페이지 --> <!-- 리스트 페이지 -->
<!-- 상세보기 페이지 시작 --> <!-- 상세보기 페이지 시작 -->
<div v-if="pageActionFlag == 'view'" > <div v-if="pageActionFlag == 'view'" class="h1001">
<v-card> <v-card>
<v-row class="pa-5"> <v-row class="pa-5">
<v-col :cols="12" class="d-flex align-center justify-space-between "> <v-col :cols="12" class="d-flex align-center justify-space-between ">
@ -45,25 +47,25 @@
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button> <a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button>
</div> </div>
</v-col> </v-col>
<v-col :cols="12" class="mt-5"> <v-col :cols="12">
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title> <p class="custom-title-3 mb-2"> 제목 </p>
<v-text-field v-model="viewActionData.title" class="v-input__custom" hide-details :readonly="true">
</v-text-field>
</v-col> </v-col>
<v-col :cols="12" style="min-height: 30vh;" class="pa-0"> <v-col :cols="12" style="min-height:calc(90vh - 218px);" class="pa-5">
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit" <viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
:initialValue="viewActionData.content" theme="white" :initialValue="viewActionData.content" theme="white"
:class="[isDarkMode ? 'theme--white' : 'theme--black', 'custom-view pa-3']" /> :class="isDarkMode ? 'theme--white' : 'theme--black'" />
</v-col> </v-col>
<v-col :cols="6" class="mt-5"> <v-col :cols="6">
<v-card-title class="custom-title-7 pa-0"> <p class="custom-title-3 mb-2">파일목록</p>
파일목록
</v-card-title>
<div v-for="fileData in viewActionData.fileData" <div v-for="fileData in viewActionData.fileData"
:key="fileData.apndFileId" :key="fileData.apndFileId"
class="file-item"> class="file-item">
<a @click.prevent="downloadFile(fileData)"> <a @click.prevent="downloadFile(fileData)">
<div class="d-flex justify-start search-box-label"> <div class="d-flex justify-space-between search-box-label">
<v-icon>mdi-paperclip</v-icon> <v-icon>mdi-paperclip</v-icon>
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span> <span class="file-item-name">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
</div> </div>
</a> </a>
</div> </div>
@ -73,24 +75,28 @@
</div> </div>
<!-- 상세보기 페이지 --> <!-- 상세보기 페이지 -->
<!-- 작성 페이지 시작 --> <!-- 작성 페이지 시작 -->
<div v-if="pageActionFlag == 'write'" > <div v-if="pageActionFlag == 'write'" class="h1001">
<v-card> <v-card>
<div class="pa-5"> <div class="pa-5">
<v-row class="pa-50"> <v-row class="pa-50">
<v-col :cols="12" class=""> <v-col :cols="12" class="">
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title> <v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
</v-col> </v-col>
<v-col :cols="12" class="mt-4"> <v-col :cols="12" class="custom-title-4-new mt-4">
<v-card-title class="custom-title-7 pa-0">제목</v-card-title> <p class="custom-title-3 mb-2">제목</p>
<v-text-field v-model="writeActionData.title" class="v-input__custom" hide-details outlined> <v-text-field v-model="writeActionData.title" class="v-input__custom" hide-details outlined>
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col :cols="12" style="min-height: calc(100vh - 450px);"> <v-col :cols="12" style="min-height: calc(90vh - 270px);">
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" /> <editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" />
</v-col> </v-col>
<v-col :cols="6" class="mt-5"> <v-col :cols="12" class="mt-2">
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title> <p class="custom-title-3 mb-2">
파일첨부
</p>
</v-col>
<v-col :cols="6">
<div class="" v-if="writeActionData.fileData"> <div class="" v-if="writeActionData.fileData">
<div <div
v-for="(fileData, index) in writeActionData.fileData" v-for="(fileData, index) in writeActionData.fileData"
@ -126,23 +132,25 @@
</div> </div>
<!-- 작성 페이지 --> <!-- 작성 페이지 -->
<!-- 답글 작성 페이지 시작 --> <!-- 답글 작성 페이지 시작 -->
<div v-if="pageActionFlag == 'reply'" > <div v-if="pageActionFlag == 'reply'" class="h1001">
<v-card class="pa-5"> <v-card class="pa-5">
<v-row align="center" class="mt-0"> <v-row align="center" class="mt-0">
<v-col :cols="12" class=""> <v-col :cols="12" class="">
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title> <v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
</v-col> </v-col>
<v-col :cols="12" class="mt-4"> <v-col :cols="12">
<v-card-title class="custom-title-7 pa-0">제목</v-card-title> <p class="custom-title-3 mb-2">제목</p>
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined <v-text-field v-model="replyActionData.title" class="v-input__custom" placeholder="제목" outlined
hide-details> hide-details>
</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" />
</v-col> </v-col>
<v-col :cols="6" class="mt-5"> <v-col :cols="6" class="mt-4">
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title> <p class="custom-title-3 mb-2">
파일첨부
</p>
<div class="" v-if="replyActionData.fileData"> <div class="" v-if="replyActionData.fileData">
<div <div
v-for="(fileData, index) in replyActionData.fileData" v-for="(fileData, index) in replyActionData.fileData"
@ -170,7 +178,7 @@
</div> </div>
<!-- 답글 작성 페이지 --> <!-- 답글 작성 페이지 -->
<!-- 수정 페이지 시작 --> <!-- 수정 페이지 시작 -->
<div v-if="pageActionFlag == 'update'" > <div v-if="pageActionFlag == 'update'" class="h1001">
<v-card> <v-card>
<div class="pa-5"> <div class="pa-5">
<v-row align="center" no-gutters> <v-row align="center" no-gutters>
@ -178,16 +186,16 @@
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title> <v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
</v-col> </v-col>
<v-col :cols="12" class="mt-4"> <v-col :cols="12" class="mt-4">
<v-card-title class="custom-title-7 pa-0">제목</v-card-title> <p class="custom-title-3 mb-2">제목</p>
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details outlined> <v-text-field v-model="updateActionData.title" class="v-input__custom" placeholder="" hide-details outlined>
</v-text-field> </v-text-field>
</v-col> </v-col>
<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" />
</v-col> </v-col>
<v-col :cols="6" class="mt-5"> <v-col :cols="6">
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title> <p class="pa-0 mb-2 custom-title-4-new-1">파일첨부</p>
<div class="" v-if="updateActionData.fileData"> <div class="" v-if="updateActionData.fileData">
<div <div
v-for="(fileData, index) in updateActionData.fileData" v-for="(fileData, index) in updateActionData.fileData"
@ -398,6 +406,7 @@ export default {
this.getGridData(); this.getGridData();
}, },
gridInit() { gridInit() {
this.loadGrid = false;
const gridHeight = this.$refs.contents.offsetHeight - 76; const gridHeight = this.$refs.contents.offsetHeight - 76;
const myOptions = {}; const myOptions = {};
@ -461,6 +470,13 @@ export default {
gridKey: this.gridName, gridKey: this.gridName,
value: columnList, value: columnList,
}); });
// // -----------------------TEST------------------
// this.dataPathMock[this.gridName] = {
// column: columnList,
// data: dataPathDataExample,
// }
// // -----------------------END TEST--------------
this.getGridData(); this.getGridData();
}, },
async getGridData() { async getGridData() {
@ -476,14 +492,25 @@ export default {
sendParam: params, sendParam: params,
}); });
// console.log('----------DEBUG--------res: ', res);
const newRes = res.map(item => {
const newObj = {
...item,
rowStat: null,
dataSetId: item.dataSetId,
dataSetNm: item.dataSetNm,
useFg: item.useFg === '1' ? true : false, // 화면 개발 편의를 위해 boolean 타입으로 교체, 저장시 "1", "0" 으로 바꿔 보내야 함
};
return newObj;
});
this.setGridData({ this.setGridData({
gridKey: this.gridName, gridKey: this.gridName,
value: res, value: newRes,
});
this.$nextTick(() => {
this.loadGrid = true;
}); });
this.setPageData({ isFind: false }); this.setPageData({ isFind: false });
this.loadGrid = true;
}, },
getRowData(data) { getRowData(data) {
this.selectedRowKey = data.rowKey; this.selectedRowKey = data.rowKey;
@ -1046,19 +1073,4 @@ const dataPathDataExample = getPathDataExample({
color: #1677FF; color: #1677FF;
} }
} }
::v-deep {
.v-input__slot {
padding-left: 8px;
padding-right: 8px;
}
.custom-view {
border: 1px solid;
border-radius: 6px;
height: 100%;
@each $theme in dark, light {
@include theme($theme);
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");;
}
}
}
</style> </style>

View File

@ -16,7 +16,7 @@
customClass="select-large" customClass="select-large"
/> />
</v-col> </v-col>
<v-col :cols="3"> <v-col :cols="4">
<InputText <InputText
:parentPrgmId="myPrgmId" :parentPrgmId="myPrgmId"
label="프로그램명" label="프로그램명"
@ -50,17 +50,18 @@
/> />
</div> </div>
</div> </div>
<div ref="gridParent" style="height: 60vh"> <div style="min-height: 60vh">
<!-- <div ref="gridParent" class="px-5 h100"> <div ref="gridParent" class="px-5 h100">
</div> -->
<component <component
:ref="gridName" :ref="gridName"
:is="loadGrid ? 'Grid' : null" :is="loadGrid ? 'Grid' : null"
:parentPrgmId="myPrgmId" :parentPrgmId="myPrgmId"
:gridName="gridName" :gridName="gridName"
@getRowsData="getRowData" @getRowsData="getRowData"
:dataPath="dataPathMock"
/> />
</div> </div>
</div>
</v-card> </v-card>
</v-col> </v-col>
<!-- 프로그램 상세 --> <!-- 프로그램 상세 -->
@ -261,6 +262,8 @@ export default {
}); });
// this.getRowGridData(); // this.getRowGridData();
this.loadGrid = true;
}, },
async search() { async search() {
await this.getRowGridData(); await this.getRowGridData();
@ -293,7 +296,6 @@ export default {
gridKey: this.gridName, gridKey: this.gridName,
value: newRes, value: newRes,
}); });
this.loadGrid = true;
this.$nextTick(() => { this.$nextTick(() => {
if (newRes.length > 0) { if (newRes.length > 0) {
@ -314,12 +316,6 @@ export default {
}); });
}, },
async getRowData(data, gridName) { async getRowData(data, gridName) {
// console.log("-----------------------DEBUG--getRowData--------------", {
// gridKey: gridName,
// gridSelect: true,
// rowGridSelectKey: data.rowKey,
// rowGridSelectData: data,
// });
this.setGridSelectData({ this.setGridSelectData({
gridKey: gridName, gridKey: gridName,
gridSelect: true, gridSelect: true,
@ -331,7 +327,6 @@ export default {
rowGridSelectKey: data.rowKey, rowGridSelectKey: data.rowKey,
rowGridSelectData: data, rowGridSelectData: data,
}); });
}, },
compareData(type, newDt) { compareData(type, newDt) {
if (this.selectedCommCdData[type] == newDt) { if (this.selectedCommCdData[type] == newDt) {

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<CommonPageTitle /> <common-page-title />
<v-row ref="searchFilter" class="mt-2"> <v-row ref="searchFilter" class="mt-2">
<v-col :cols="12"> <v-col :cols="12">
<v-card class="searchFilter"> <v-card class="searchFilter">

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<CommonPageTitle /> <common-page-title />
<v-row ref="searchFilter" class="mt-2"> <v-row ref="searchFilter" class="mt-2">
<v-col :cols="12"> <v-col :cols="12">
<v-card class="searchFilter"> <v-card class="searchFilter">

View File

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

View File

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

View File

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

View File

@ -1,6 +1,5 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<CommonPageTitle />
<v-row ref="searchFilter"> <v-row ref="searchFilter">
<v-col :cols="12"> <v-col :cols="12">
<v-card class="searchFilter"> <v-card class="searchFilter">
@ -35,23 +34,23 @@
</v-col> </v-col>
</v-row> </v-row>
<v-row ref="contents"> <v-row ref="contents">
<v-col :cols="5" > <v-col :cols="5" class="h100">
<v-card class="pb-5"> <v-card class="pb-5">
<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 custom-title-4">설비 정보</v-card-title> <v-card-title class="pa-0 custom-title-4">설비 정보</v-card-title>
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList" <Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList"
:btnActionsFnc="btnActions" /> :btnActionsFnc="btnActions" />
</div> </div>
<div ref="gridParent" class="px-5" style="min-height:60vh;"> <div class="px-5" style="min-height:calc(100% - 76px)">
<div ref="gridParent" class="w100 h100">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId" <component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo" @getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
:selectedRowDataWatchFlag="true" :preventFocusChangeEventFlag="false" /> :selectedRowDataWatchFlag="true" :preventFocusChangeEventFlag="false" :dataPath="dataPathMock" />
<!-- <div ref="gridParent" class="w100 h100"> </div>
</div> -->
</div> </div>
</v-card> </v-card>
</v-col> </v-col>
<v-col :cols="7" > <v-col :cols="7" class="h100">
<v-card class="pb-5"> <v-card class="pb-5">
<v-card-title class="custom-title-4" style="min-height:76px;">설비 상세</v-card-title> <v-card-title class="custom-title-4" style="min-height:76px;">설비 상세</v-card-title>
<div class="px-5" style="min-height:calc(100% - 76px)"> <div class="px-5" style="min-height:calc(100% - 76px)">
@ -288,7 +287,7 @@ export default {
blocId: this.userInfo.blocId, blocId: this.userInfo.blocId,
}, },
}); });
// console.log('res : ', res); console.log('res : ', res);
res.map(item => { res.map(item => {
const it = { text: item.ercNm, value: item.ercId }; const it = { text: item.ercNm, value: item.ercId };
ercList.push(it); ercList.push(it);

View File

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

View File

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

View File

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

View File

@ -59,7 +59,8 @@
:btnActionsFnc="btnActions" :btnActionsFnc="btnActions"
/> />
</div> </div>
<div ref="gridParent" class="h100 px-5" style="height:calc(100% - 70px)"> <div class="h100 px-5" style="height:calc(100% - 70px)">
<div ref="gridParent" class="w100 h100">
<component <component
:ref="gridName" :ref="gridName"
:is="loadGrid ? 'Grid' : null" :is="loadGrid ? 'Grid' : null"
@ -70,6 +71,7 @@
:selectedRowDataWatchFlag="true" :selectedRowDataWatchFlag="true"
/> />
</div> </div>
</div>
</v-card> </v-card>
</v-col> </v-col>
<v-col :cols="7" class="h100"> <v-col :cols="7" class="h100">

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<CommonPageTitle /> <common-page-title />
<v-row ref="searchFilter"> <v-row ref="searchFilter">
<!-- 조회조견 --> <!-- 조회조견 -->
<v-col :cols="12"> <v-col :cols="12">
@ -91,7 +91,7 @@
</a-button> </a-button>
</div> </div>
</div> </div>
<div ref="gridParent" class="px-5 w100" style="height: 55vh;"> <div ref="gridParent" class="px-5 w100" style="min-height: 60vh">
<component <component
:is="loadGrid ? 'Grid' : null" :is="loadGrid ? 'Grid' : null"
:ref="gridName" :ref="gridName"
@ -242,10 +242,6 @@ export default {
columnOptions: { columnOptions: {
resizable: true, resizable: true,
}, },
pageOptions: {
useClient: true,
perPage: 13,
},
}; };
this.setGridOption({ this.setGridOption({
gridKey: this.gridName, gridKey: this.gridName,

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<PageTitle/> <CommonPageTitle/>
<v-row ref="searchFilter"> <v-row ref="searchFilter">
<v-col :cols="12"> <v-col :cols="12">
<v-card class="searchFilter"> <v-card class="searchFilter">
@ -58,7 +58,7 @@
@sendSelectedRowStatInfo="getSelectedRowStatInfo" :selectedRowDataWatchFlag="true" /> @sendSelectedRowStatInfo="getSelectedRowStatInfo" :selectedRowDataWatchFlag="true" />
</div> </div>
</v-card-actions> </v-card-actions>
<!-- <div class="d-flex align-center justify-space-between"> <div class="d-flex align-center justify-space-between">
<pagination <pagination
id="pagination" id="pagination"
:total-count="totalCount" :total-count="totalCount"
@ -66,7 +66,7 @@
:limit="limit" :limit="limit"
@loadData="changeGrid" @loadData="changeGrid"
/> />
</div> --> </div>
</v-card> </v-card>
</v-col> </v-col>
<v-col :cols="7" class="h100"> <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 Grid from '~/components/common/Grid';
import Utility from '~/plugins/utility'; import Utility from '~/plugins/utility';
import pagination from '~/components/Pagination'; import pagination from '~/components/Pagination';
import PageTitle from "~/components/common/PageTitle";
let myTitle; let myTitle;
// const myPrgmId = "PRG0051"; // const myPrgmId = "PRG0051";
@ -140,13 +139,12 @@ export default {
TagAddInfoTab, TagAddInfoTab,
Grid, Grid,
pagination, pagination,
PageTitle
}, },
data() { data() {
return { return {
myPrgmId: myPrgmId, myPrgmId: myPrgmId,
gridName: 'rowGrid', gridName: 'rowGrid',
loadGrid: true, loadGrid: false,
tab: null, tab: null,
items: [ items: [
{ name: 'TAG 정보', id: 'tagBaseInfoTab', disabledFlag: false }, { name: 'TAG 정보', id: 'tagBaseInfoTab', disabledFlag: false },
@ -275,16 +273,12 @@ export default {
this.gridInit(); this.gridInit();
}, },
gridInit() { gridInit() {
const gridHeight = this.$refs.gridParent.offsetHeight - 180; const gridHeight = this.$refs.gridParent.offsetHeight - 16;
const myOptions = { const myOptions = {
columnOptions: { columnOptions: {
resizable: true, resizable: true,
}, },
pageOptions: {
useClient: true,
perPage: 10,
},
scrollX: true, scrollX: true,
header: { header: {
height: 38, height: 38,
@ -536,7 +530,7 @@ export default {
columnName: 'tagId', columnName: 'tagId',
setScroll: true, setScroll: true,
}); });
} catch (error) { } } catch (error) {}
// this.$refs[this.gridName].focus({ // this.$refs[this.gridName].focus({
// rowKey: 0, // rowKey: 0,
// columnName: "tagId", // columnName: "tagId",
@ -773,7 +767,7 @@ export default {
gridEditingFinish(data) { gridEditingFinish(data) {
this.$refs[this.gridName].editingFinish(data); this.$refs[this.gridName].editingFinish(data);
}, },
changeGrid: async function (pageNum, limit) { changeGrid: async function(pageNum, limit) {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;

View File

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

View File

@ -975,7 +975,7 @@ export default {
var seriesData = null; var seriesData = null;
xAxisData = this.makeChartGroup01XaxisData(); xAxisData = this.makeChartGroup01XaxisData();
// console.log("text xaxis", xAxisData); console.log("text xaxis", xAxisData);
for (var i = 0; i < dataKeyList.length; i++) { for (var i = 0; i < dataKeyList.length; i++) {
seriesData = new Array(xAxisData.length).fill(10); seriesData = new Array(xAxisData.length).fill(10);
@ -988,12 +988,12 @@ export default {
currentChartData["data"][j]["totVal"]; currentChartData["data"][j]["totVal"];
} }
// console.log("text seri data", seriesData); console.log("text seri data", seriesData);
this.$store.state.pageData[myPrgmId][chartKey]["xAxis"]["data"] = xAxisData; this.$store.state.pageData[myPrgmId][chartKey]["xAxis"]["data"] = xAxisData;
this.$store.state.pageData[myPrgmId][chartKey]["series"][0]["data"] = seriesData; this.$store.state.pageData[myPrgmId][chartKey]["series"][0]["data"] = seriesData;
// console.log("chart data", this.$store.state.pageData[myPrgmId][chartKey]); console.log("chart data", this.$store.state.pageData[myPrgmId][chartKey]);
} }
}, },
getGroup01ChartOption() { getGroup01ChartOption() {
@ -1007,7 +1007,7 @@ export default {
}; };
chartOption["series"][0]["symbol"] = "none"; chartOption["series"][0]["symbol"] = "none";
// console.log("chartOption: ", chartOption); console.log("chartOption: ", chartOption);
return chartOption; return chartOption;
}, },
makeChartGroup01XaxisData() { makeChartGroup01XaxisData() {

View File

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

View File

@ -669,7 +669,8 @@ const INIT_URL_STATE = {
// prgmId : PRG0052 과거 검침 데이터 조회 // prgmId : PRG0052 과거 검침 데이터 조회
selectTagRawDataByQuarter: selectTagRawDataByQuarter:
'ems/base/PastRsltDataReadCtr/selectTagRawDataByQuarter', 'ems/base/PastRsltDataReadCtr/selectTagRawDataByQuarter',
selectTagRawDataByQuarterPageTotal:
'ems/base/PastRsltDataReadCtr/selectTagRawDataByQuarterPageTotal',
// prgmId : PRG4107 개인화 대시보드 // prgmId : PRG4107 개인화 대시보드
selectIndvWidgetList: 'ems/base/DashboardHfemsCtr/selectIndvWidgetList', selectIndvWidgetList: 'ems/base/DashboardHfemsCtr/selectIndvWidgetList',
selectEnergyUseReadHourAddup: selectEnergyUseReadHourAddup: