Compare commits

..

6 Commits

29 changed files with 243 additions and 310 deletions

View File

@ -144,7 +144,7 @@ a {
& .router-tab__container {
overflow-y: auto;
min-height: calc(100vh - 105px);
height: calc(100vh - 105px);
max-height: calc(100vh - 105px);
padding: 20px;
}

View File

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

View File

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

View File

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

View File

@ -20,7 +20,6 @@
:editorGrid="true"
:innerTabGridInfo="innerTabGridInfo"
@getRowsData="getRowData"
:dataPath="dataPathMock"
/>
</div>
</div>
@ -52,7 +51,7 @@ export default {
},
data() {
return {
loadGrid: true,
loadGrid: false,
gridName: 'rowDetailGrid',
rowKey: null,
edtingFinishFlag: 'Y',
@ -343,7 +342,9 @@ export default {
value: myColumns,
});
this.$nextTick(() => {
this.loadGrid = true;
});
},
async btnActions(action) {
let dataArr = [];

View File

@ -6,7 +6,7 @@
</div>
<div ref="gridParent" style="min-height: calc(100vh - 800px);">
<Grid :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="parentPrgmId"
@getRowsData="getRowData" :innerTabGridInfo="innerTabGridInfo" :dataPath="dataPathMock" />
@getRowsData="getRowData" :innerTabGridInfo="innerTabGridInfo" />
</div>
<div style="min-height: calc(100vh - 900px);" class="mt-4">
<component :is="'Form'" :parentPrgmId="parentPrgmId" :bindingData="gridName" :detailList="detailList"
@ -41,7 +41,7 @@ export default {
},
data() {
return {
loadGrid: true,
loadGrid: false,
gridName: 'rowEqpmConstGrid',
detailList: myEqpmConstDetail,
@ -232,7 +232,9 @@ export default {
value: myColumns,
});
this.$nextTick(() => {
this.loadGrid = true;
});
},
async getRowData(data, gridName) {
if (data.rowStat === 'I') {

View File

@ -19,7 +19,6 @@
:parentPrgmId="parentPrgmId"
@getRowsData="getRowData"
:innerTabGridInfo="innerTabGridInfo"
:dataPath="dataPathMock"
/>
</div>
<div style="min-height: calc(100vh - 900px);" class="mt-4">
@ -60,7 +59,7 @@ export default {
},
data() {
return {
loadGrid: true,
loadGrid: false,
gridName: 'rowEqpmIaoGrid',
detailList: myEqpmIaoDetail,
@ -297,7 +296,9 @@ export default {
value: myColumns,
});
this.$nextTick(() => {
this.loadGrid = true;
});
},
async getRowData(data, gridName) {
if (data.rowStat === 'I') {

View File

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

View File

@ -131,8 +131,8 @@
$depth3rdBulletDark
</v-icon>
<span v-if="item.url">{{ item.menuNm }}
<!-- <span v-if="item.bookmark" class="material-icons" style="font-size: 17px; vertical-align: middle;" @click="addBookMark(item.menuId, item.url, item.bookmark)">star</span>
<span v-else-if="!item.bookmark" class="material-icons" style="font-size: 17px; vertical-align: middle;" @click="addBookMark(item.menuId, item.url, item.bookmark)">star_border</span> -->
<span v-if="item.bookmark" class="material-icons" style="font-size: 17px; vertical-align: middle;" @click="addBookMark(item.menuId, item.url, item.bookmark)">star</span>
<span v-else-if="!item.bookmark" class="material-icons" style="font-size: 17px; vertical-align: middle;" @click="addBookMark(item.menuId, item.url, item.bookmark)">star_border</span>
</span>
<span v-else-if="!item.url">{{ item.menuNm }}</span>
<v-icon v-if="item.lvl >= 1 && item.childeVo && item.childeVo.length > 0 && !item.url">
@ -392,6 +392,7 @@ export default {
deep: true,
handler(value) {
if (value) {
console.log(value)
const prgmId = value.prgmId;
let thisPrgmId = this.$route.query.prgmId;
var tmp = 0;

View File

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

View File

@ -12,6 +12,8 @@
:parentPrgmId="myPrgmId"
:sendParam="{ comId }"
customClass="select-large"
labelCols="12"
textCols="12"
/>
<!-- <component
:is="'selectCodeList'"
@ -310,37 +312,9 @@ export default {
this.gridInit();
},
gridInitTest() {
const rowGrid = {
column: [
{ header: '사용자No', name: 'userNo', align: 'center', hidden: true },
{ header: '사용자명', name: 'userNm' },
{ header: '사용자ID', name: 'userLoginId' },
{ header: '사용자비밀번호', name: 'userPswd', hidden: true },
{ header: '사업장', name: 'blocId', hidden: true },
{ header: 'email', name: 'email', hidden: true },
{ header: '등록자NO', name: 'regUserNo', hidden: true },
{ header: '등록일시', name: 'regDttm', hidden: true },
{ header: '수정자NO', name: 'procUserNo', hidden: true },
{ header: '수정일시', name: 'procDttm', hidden: true },
{ header: 'comId', name: 'comId', hidden: true },
{ header: 'deptId', name: 'deptId', hidden: true },
],
data: dataMockExample,
defaultRow: dataMockExample,
option: [],
}
this.dataPathMock = {rowGrid};
this.$nextTick(() => {
this.loadGrid = true;
});
},
// 사용자 리스트 그리드 세팅
gridInit() {
// this.gridInitTest(); return
const gridHeight = this.$refs.gridParent.offsetHeight - 90;
const myOptions = {

View File

@ -4,24 +4,28 @@
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
<v-row align="center" no-gutters>
<v-col :cols="2">
<v-row align="end" no-gutters>
<v-col :cols="2.5">
<InputText
:parentPrgmId="myPrgmId"
label="배치ID"
valueNm="batchId"
:searchOption="true"
:iconShow="true"
customClass="input-large"
/>
</v-col>
<v-col :cols="2">
<v-col :cols="2.5">
<InputText
:parentPrgmId="myPrgmId"
label="배치명"
valueNm="batchNm"
:searchOption="true"
:iconShow="true"
customClass="input-large"
/>
</v-col>
<v-col :cols="2">
<v-col :cols="2.5">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
@ -29,19 +33,21 @@
:dataKey="'execRsltCd'"
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
:addAll="true"
:iconShow="true"
customClass="select-large"
/>
</v-col>
<v-col :cols="2">
<v-col :cols="2.5">
<component
:is="'Datepicker'"
:parentPrgmId="myPrgmId"
:label="'조회기간'"
:customClass="'input-large'"
/>
</v-col>
<v-spacer></v-spacer>
<v-col :cols="4" class="text-right">
<BtnSearch />
<BtnExcelDownload :parentPrgmId="myPrgmId" :gridName="gridName" />
<v-col :cols="2" class="text-right d-flex align-end justify-end ga-1" style="gap: 4px">
<BtnSearch size="large" />
<BtnExcelDownload :parentPrgmId="myPrgmId" :gridName="gridName" size="large" />
</v-col>
</v-row>
</v-card>
@ -135,7 +141,7 @@ export default {
myPrgmId: myPrgmId,
loadGrid: false,
gridName: 'rowGrid',
// rowGridOrigin: [],
rowGridOrigin: [],
detailList: myDetail,
};
},
@ -291,7 +297,7 @@ export default {
// 엑셀 다운로드용 데이터 재정렬
this.xlsDataBind(res);
// this.rowGridOrigin = Utility.copyObj(newRes);
this.rowGridOrigin = Utility.copyObj(newRes);
this.setGridData({
gridKey: this.gridName,
value: newRes,
@ -427,6 +433,3 @@ const myDetail = [
},
];
</script>
<style lang="scss">
@import '@/assets/scss/common.scss';
</style>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -59,8 +59,7 @@
:btnActionsFnc="btnActions"
/>
</div>
<div class="h100 px-5" style="height:calc(100% - 70px)">
<div ref="gridParent" class="w100 h100">
<div ref="gridParent" class="h100 px-5" style="height:calc(100% - 70px)">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
@ -71,7 +70,6 @@
:selectedRowDataWatchFlag="true"
/>
</div>
</div>
</v-card>
</v-col>
<v-col :cols="7" class="h100">
@ -407,8 +405,6 @@ export default {
value: myColumns,
});
this.loadGrid = true;
this.search();
},
async getRowGridData() {
@ -437,8 +433,9 @@ export default {
gridKey: this.gridName,
value: newRes,
});
console.log('-------DEBUG-----newRes: ', newRes);
this.$nextTick(() => {
this.loadGrid = true;
if (newRes.length > 0) {
try {
this.$refs[this.gridName].focus({

View File

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

View File

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

View File

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

View File

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

View File

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