Compare commits

...

10 Commits

10 changed files with 88 additions and 104 deletions

View File

@ -173,8 +173,9 @@ export default {
this.gridScrollTop = e.target.scrollTop; this.gridScrollTop = e.target.scrollTop;
this.gridScrollLeft = e.target.scrollLeft; this.gridScrollLeft = e.target.scrollLeft;
}); });
if (this.scrollBody.scrollHeight > this.scrollBody.clientHeight) {
if (!(this.scrollBody.scrollHeight > this.scrollBody.clientHeight)) { this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.remove('tui-grid-no-scroll-y');
} else {
this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.add('tui-grid-no-scroll-y'); this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.add('tui-grid-no-scroll-y');
} }
} }

View File

@ -2,17 +2,14 @@
<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" class="mr-2"> <v-col v-if="label" :cols="labelCols" class="mr-2">
<label for="" class="search-box-label"> <label for="" class="search-box-label">
<v-icon v-if="iconShow" small <v-icon v-if="iconShow" small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
:class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
{{ label }} {{ label }}
</label> </label>
</v-col> </v-col>
<v-col :cols="textCols"> <v-col :cols="textCols">
<v-text-field readonly v-model="selectValue" append-icon="" :class="['v-input__custom', customClass]" <v-text-field readonly v-model="selectValue" append-icon="" :class="['v-input__custom', customClass]"
@click="dialogOpenCloseEvent(dialog)" outlined :hide-details="true" :required="required || false" @click="dialogOpenCloseEvent(dialog)" outlined :hide-details="true" :required="required || false"
:disabled="disabled || false" :disabled="disabled || false" :placeholder="placeholder">
:placeholder="placeholder"
>
<template v-slot:append> <template v-slot:append>
<!-- Custom SVG icon --> <!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon> <v-icon>$icoSearch</v-icon>
@ -31,17 +28,17 @@
<v-row align="end"> <v-row align="end">
<v-col :cols="3.5"> <v-col :cols="3.5">
<!-- 설비그룹 --> <!-- 설비그룹 -->
<component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01" <component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01" :label="'설비그룹'"
:label="'설비그룹'" :disabled="eqpmGrpDisabled" @update:propsValue="selectValue01 = $event" :disabled="eqpmGrpDisabled" @update:propsValue="selectValue01 = $event" :labelCols="12" :textCols="12"
:labelCols="12" :textCols="12" :iconShow="true" /> :iconShow="true" />
</v-col> </v-col>
<v-col> <v-col>
<!-- FAB --> <!-- FAB -->
<component :is="'SelectBoxMulti'" :propsValue="selectValue02" :itemList="selectValueList02" <component :is="'SelectBoxMulti'" :propsValue="selectValue02" :itemList="selectValueList02" :label="'FAB'"
:label="'FAB'" :labelCols="12" :multiple="true" :disabled="fabDisabled" :labelCols="12" :multiple="true" :disabled="fabDisabled" @update:propsValue="selectValue02 = $event"
@update:propsValue="selectValue02 = $event" :textCols="12" :iconShow="true" /> :textCols="12" :iconShow="true" />
</v-col> </v-col>
<v-col > <v-col>
<v-row> <v-row>
<v-col :cols="12" class="py-0"> <v-col :cols="12" class="py-0">
<label for="" class="search-box-label"> <label for="" class="search-box-label">
@ -86,15 +83,16 @@
</div> </div>
<div class="pa-5" style="height:calc(100% - 30px)"> <div class="pa-5" style="height:calc(100% - 30px)">
<div ref="modalGridParent" class="h100 w100"> <div ref="modalGridParent" :class="['h100', 'w100', isDarkMode ? 'dark-mode' : 'light-mode']">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" <component :ref="gridName" :is="loadGrid ? 'Grid' : null"
:dataPath="searchParam.eqpmSelectPopData.eqpmSelectPop" :gridName="gridName" :dataPath="searchParam.eqpmSelectPopData.eqpmSelectPop" :gridName="gridName" :parentPrgmId="parentPrgmId"
:parentPrgmId="parentPrgmId" @getRowsData="getRowData" /> @getRowsData="getRowData" />
</div> </div>
</div> </div>
<v-card-actions class="px-6 py-4 d-flex align-center justify-end"> <v-card-actions class="px-6 py-4 d-flex align-center justify-end">
<a-button :ripple="false" @click="dialogOpenCloseEvent(dialog)" class="ant-btn-popup-default mr-2">닫기</a-button> <a-button :ripple="false" @click="dialogOpenCloseEvent(dialog)"
class="ant-btn-popup-default mr-2">닫기</a-button>
<a-button :ripple="false" type="primary" @click="setUpdate($event)">확인</a-button> <a-button :ripple="false" type="primary" @click="setUpdate($event)">확인</a-button>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
@ -247,6 +245,7 @@ export default {
eqpmKindId: data.eqpmKindId, eqpmKindId: data.eqpmKindId,
} }
}, },
isDarkMode: "isDarkMode",
}), }),
selectValue: { selectValue: {
get() { get() {
@ -585,8 +584,9 @@ var eqpmSelectPop = {
.tui-grid-lside-area { .tui-grid-lside-area {
.tui-grid-table { .tui-grid-table {
.tui-grid-cell-header { .tui-grid-cell-header {
&.tui-grid-cell { &.tui-grid-cell {
input[type=checkbox] { input[type=checkbox] {
margin-top: 0px; margin-top: 0px;
} }
@ -594,7 +594,23 @@ var eqpmSelectPop = {
} }
} }
} }
} }
@each $theme in dark, light {
@include theme($theme);
.#{$theme}-mode {
::v-deep {
.tui-grid-lside-area {
.tui-grid-table{
border-right: 1px solid map-deep-get($config,
#{$theme},
"tui-grid-border-vertical-color"
) !important;
}
}
}
}
}
</style> </style>

View File

@ -347,6 +347,12 @@ export default {
//console.log("localPageData", this.pageData); //console.log("localPageData", this.pageData);
}, },
}, },
isDarkMode(){
this.loadingStackCnt = 1;
setTimeout(() => {
this.loadingStackCnt = 0;
}, 1000);
},
// menuLink: { // menuLink: {
// deep: true, // deep: true,
// handler() { // handler() {

View File

@ -143,7 +143,7 @@ export default {
chkIsFind(val) { chkIsFind(val) {
if (val) { if (val) {
this.page = 1; this.page = 1;
this.search(); this.search(false);
} }
}, },
chkExecRsltCd() { chkExecRsltCd() {
@ -249,14 +249,16 @@ export default {
this.loadGrid = true; this.loadGrid = true;
}, },
async search() { async search(isPaging) {
await this.getRowGridData(); await this.getRowGridData(isPaging);
await this.setPageData({ await this.setPageData({
isFind: false, isFind: false,
}); });
}, },
async getRowGridData() { async getRowGridData(isPaging) {
this.loadGrid = false; if(!isPaging) {
this.loadGrid = false;
}
// this.setGridData({ // this.setGridData({
// gridKey: this.gridName, // gridKey: this.gridName,
// value: [], // value: [],
@ -369,7 +371,7 @@ export default {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;
this.search(); this.search(true);
}, },
}, },
}; };

View File

@ -426,7 +426,7 @@ export default {
} }
}, },
search() { search() {
this.getGridData(); this.getGridData(false);
}, },
gridInit() { gridInit() {
const gridHeight = this.$refs.contents.offsetHeight - 120; const gridHeight = this.$refs.contents.offsetHeight - 120;
@ -498,18 +498,18 @@ export default {
}); });
this.getGridData(); this.getGridData();
}, },
async getGridData() { async getGridData(isPaging) {
var params = { var params = {
bordNo: 'BORD0001', bordNo: 'BORD0001',
limit: this.limit, limit: this.limit,
page: this.page, page: this.page,
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨 offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
}; };
if(!isPaging) {
this.loadGrid = false; this.loadGrid = false;
}
const res = await this.postApiReturn({ const res = await this.postApiReturn({
apiKey: 'selectPostPage', apiKey: 'selectPostData',
resKey: 'postPage', resKey: 'postPage',
sendParam: params, sendParam: params,
}); });
@ -1059,7 +1059,8 @@ export default {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;
this.search(); // this.search();
this.getGridData(true);
}, },
}, },
}; };

View File

@ -63,7 +63,7 @@
<v-tabs-items v-model="tab" style="height: calc(100% - 65px);" class="pt-6 py-2"> <v-tabs-items v-model="tab" style="height: calc(100% - 65px);" class="pt-6 py-2">
<v-tab-item v-for="(item, idx) in items" :key="item.id"> <v-tab-item v-for="(item, idx) in items" :key="item.id">
<component v-if="item.id == 'readPlcBaseInfoTab'" :is="'Form'" :parentPrgmId="myPrgmId" <component v-if="item.id == 'readPlcBaseInfoTab'" :is="'Form'" :parentPrgmId="myPrgmId"
:detailList="f" :bindingData="gridName" :detailList="detailList" :bindingData="gridName"
@gridEditingFinish="gridEditingFinish" /> @gridEditingFinish="gridEditingFinish" />
<ReadPlcAddInfoTab v-if="item.id == 'readPlcAddInfoTab'" :parentPrgmId="myPrgmId" <ReadPlcAddInfoTab v-if="item.id == 'readPlcAddInfoTab'" :parentPrgmId="myPrgmId"
:innerTabGridInfo="{ tab, idx }" /> :innerTabGridInfo="{ tab, idx }" />
@ -923,51 +923,6 @@ const defaultData = {
}, },
}; };
const sampleData = [
{
readPlcNm: '서울 본사',
plcKind: '본사',
useFg: '사용',
_children: [
{
readPlcNm: '서울 본사 - 1층',
plcKind: '층',
useFg: '사용',
},
{
readPlcNm: '서울 본사 - 2층',
plcKind: '층',
useFg: '미사용',
},
],
},
{
readPlcNm: '부산 지사',
plcKind: '지사',
useFg: '사용',
_children: [
{
readPlcNm: '부산 지사 - A동',
plcKind: '건물',
useFg: '사용',
_children: [
{
readPlcNm: '부산 지사 - A동 1층',
plcKind: '층',
useFg: '사용',
},
],
},
],
},
{
readPlcNm: '대전 창고',
plcKind: '창고',
useFg: '미사용',
},
];
const myDetail = [ const myDetail = [
{ {
type: 'InputText', type: 'InputText',

View File

@ -12,7 +12,7 @@
</v-col> </v-col>
<v-col :cols="3"> <v-col :cols="3">
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem" <component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
class="no-gutters" customClass="select-large" /> class="no-gutters" customClass="select-large pa-0" />
</v-col> </v-col>
<v-col :cols="3"> <v-col :cols="3">
<!-- 대상일 --> <!-- 대상일 -->
@ -144,17 +144,17 @@ export default {
chkIsFind(val) { chkIsFind(val) {
if (val) { if (val) {
this.page = 1; this.page = 1;
this.search(); this.search(false);
} }
}, },
chkTagId(val) { chkTagId(val) {
if (this.initFlag && val != null) { if (this.initFlag && val != null) {
this.search(); this.search(false);
} }
}, },
chkTagNm() { chkTagNm() {
if (this.initFlag) { if (this.initFlag) {
this.search(); this.search(false);
} }
}, },
chkReadPlcId() { chkReadPlcId() {
@ -193,13 +193,13 @@ export default {
postApiReturn: 'modules/list/postApiReturn', postApiReturn: 'modules/list/postApiReturn',
chkOpenTabList: 'chkOpenTabList', chkOpenTabList: 'chkOpenTabList',
}), }),
async search() { async search(isPaging) {
// this.gridInit(); // this.gridInit();
if (this.initFlag) { if (this.initFlag) {
if (this.pageData.tagId == '' || this.pageData.tagId == null) { if (this.pageData.tagId == '' || this.pageData.tagId == null) {
alert('TAG를 선택해 주세요'); alert('TAG를 선택해 주세요');
} else { } else {
this.getRowGridData(); this.getRowGridData(isPaging);
} }
} }
this.setPageData({ this.setPageData({
@ -289,9 +289,10 @@ export default {
this.loadGrid = true; this.loadGrid = true;
}, },
async getRowGridData() { async getRowGridData(isPaging) {
this.loadGrid = false; if(!isPaging) {
this.loadGrid = false;
}
let res = []; let res = [];
let res2 = []; let res2 = [];
let yearQuarterData = []; let yearQuarterData = [];
@ -476,7 +477,7 @@ export default {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;
this.search(); this.search(true);
}, },
}, },
}; };

View File

@ -198,7 +198,7 @@ export default {
chkIsFind(val) { chkIsFind(val) {
if (val) { if (val) {
this.page = 1; this.page = 1;
this.search(); this.search(false);
} }
}, },
chkBlocId() { chkBlocId() {
@ -265,12 +265,13 @@ export default {
value: myColumns, value: myColumns,
}); });
}, },
async search() { async search(isPaging) {
await this.getRowGridData(); await this.getRowGridData(isPaging);
}, },
async getRowGridData() { async getRowGridData(isPaging) {
this.loadGrid = false; if(!isPaging) {
this.loadGrid = false;
}
if ( if (
this.pageData.blocMstrList.length > 0 && this.pageData.blocMstrList.length > 0 &&
this.pageData.commCdList.length > 0 && this.pageData.commCdList.length > 0 &&
@ -356,7 +357,7 @@ export default {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;
this.search(); this.search(true);
}, },
}, },
}; };

View File

@ -211,7 +211,7 @@ export default {
} }
}, },
chkIsFind(val) { chkIsFind(val) {
if (val) this.search(); if (val) this.search(false);
}, },
fabId(val) { }, fabId(val) { },
fabNm(val) { }, fabNm(val) { },
@ -371,8 +371,8 @@ export default {
} }
await this.gridInit(); await this.gridInit();
}, },
async search() { async search(isPaging) {
await this.getRowGridData(); await this.getRowGridData(isPaging);
this.setPageData({ this.setPageData({
isFind: false, isFind: false,
}); });
@ -725,9 +725,10 @@ export default {
this.getRowGridData(); this.getRowGridData();
}, },
async getRowGridData() { async getRowGridData(isPaging) {
this.loadGrid = false; if(!isPaging) {
this.loadGrid = false;
}
var res = await this.postApiReturn({ var res = await this.postApiReturn({
apiKey: 'selectEnrgEffcEqpmDetlMntr', apiKey: 'selectEnrgEffcEqpmDetlMntr',
resKey: 'eqpmDetlData', resKey: 'eqpmDetlData',
@ -806,7 +807,7 @@ export default {
this.page = pageNum; this.page = pageNum;
this.limit = limit; this.limit = limit;
this.search(); this.search(true);
}, },
}, },
}; };

View File

@ -514,7 +514,7 @@ const INIT_URL_STATE = {
// prgmId: "PRG0003" 공지사항 // prgmId: "PRG0003" 공지사항
selectPostList: 'comm/base/NoticeMngCtr/selectPostList', selectPostList: 'comm/base/NoticeMngCtr/selectPostList',
selectPostPage: 'comm/base/NoticeMngCtr/selectPostPage', selectPostData: 'comm/base/NoticeMngCtr/selectPostData',
selectPostPageTotal: 'comm/base/NoticeMngCtr/selectPostPageTotal', selectPostPageTotal: 'comm/base/NoticeMngCtr/selectPostPageTotal',
deletePostList: 'comm/base/NoticeMngCtr/deletePost', deletePostList: 'comm/base/NoticeMngCtr/deletePost',