Compare commits

..

7 Commits

21 changed files with 136 additions and 214 deletions

View File

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

View File

@ -63,6 +63,12 @@
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;
@ -76,15 +82,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;
letter-spacing: normal; // font-weight: normal;
text-align: right; // font-stretch: normal;
color: #fff; // font-style: normal;
// letter-spacing: normal;
// text-align: right;
// color: #fff;
// font-family: SpoqaHanSansNeo;
} }
.text-color--white-0 { .text-color--white-0 {

View File

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

View File

@ -6,7 +6,7 @@
</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" :dataPath="dataPathMock" /> @getRowsData="getRowData" :innerTabGridInfo="innerTabGridInfo" />
</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: true, loadGrid: false,
gridName: 'rowEqpmConstGrid', gridName: 'rowEqpmConstGrid',
detailList: myEqpmConstDetail, detailList: myEqpmConstDetail,
@ -232,7 +232,9 @@ export default {
value: myColumns, value: myColumns,
}); });
this.loadGrid = true; this.$nextTick(() => {
this.loadGrid = true;
});
}, },
async getRowData(data, gridName) { async getRowData(data, gridName) {
if (data.rowStat === 'I') { if (data.rowStat === 'I') {

View File

@ -19,7 +19,6 @@
:parentPrgmId="parentPrgmId" :parentPrgmId="parentPrgmId"
@getRowsData="getRowData" @getRowsData="getRowData"
:innerTabGridInfo="innerTabGridInfo" :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">
@ -60,7 +59,7 @@ export default {
}, },
data() { data() {
return { return {
loadGrid: true, loadGrid: false,
gridName: 'rowEqpmIaoGrid', gridName: 'rowEqpmIaoGrid',
detailList: myEqpmIaoDetail, detailList: myEqpmIaoDetail,
@ -297,7 +296,9 @@ export default {
value: myColumns, value: myColumns,
}); });
this.loadGrid = true; this.$nextTick(() => {
this.loadGrid = true;
});
}, },
async getRowData(data, gridName) { async getRowData(data, gridName) {
if (data.rowStat === 'I') { if (data.rowStat === 'I') {

View File

@ -131,8 +131,8 @@
$depth3rdBulletDark $depth3rdBulletDark
</v-icon> </v-icon>
<span v-if="item.url">{{ item.menuNm }} <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-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-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>
<span v-else-if="!item.url">{{ item.menuNm }}</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"> <v-icon v-if="item.lvl >= 1 && item.childeVo && item.childeVo.length > 0 && !item.url">
@ -392,6 +392,7 @@ export default {
deep: true, deep: true,
handler(value) { handler(value) {
if (value) { if (value) {
console.log(value)
const prgmId = value.prgmId; const prgmId = value.prgmId;
let thisPrgmId = this.$route.query.prgmId; let thisPrgmId = this.$route.query.prgmId;
var tmp = 0; var tmp = 0;

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.minHeight = `calc(100% - ${searchFilterHeight + 20}px)`; this.$refs.contents.style.height = `calc(100% - ${searchFilterHeight + 20}px)`;
} }
}, },
//init() {} //init() {}

View File

@ -12,6 +12,8 @@
:parentPrgmId="myPrgmId" :parentPrgmId="myPrgmId"
:sendParam="{ comId }" :sendParam="{ comId }"
customClass="select-large" customClass="select-large"
labelCols="12"
textCols="12"
/> />
<!-- <component <!-- <component
:is="'selectCodeList'" :is="'selectCodeList'"
@ -310,37 +312,9 @@ export default {
this.gridInit(); 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() { gridInit() {
// this.gridInitTest(); return
const gridHeight = this.$refs.gridParent.offsetHeight - 90; const gridHeight = this.$refs.gridParent.offsetHeight - 90;
const myOptions = { const myOptions = {

View File

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

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<common-page-title /> <CommonPageTitle />
<!-- 리스트 페이지 시작 --> <!-- 리스트 페이지 시작 -->
<div v-if="pageActionFlag == 'list'" class="h1001"> <div v-if="pageActionFlag == 'list'" class="h1001">
<v-card class="" > <v-card class="" >
@ -16,11 +16,9 @@
</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="h100 px-50"> <div ref="gridParent" class="px-50" style="min-height: 70vh;">
<!-- <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" :selectedRowDataWatchFlag="true" /> @getRowsData="getRowData" />
</div> </div>
</v-col> </v-col>
</v-row> </v-row>
@ -29,7 +27,7 @@
</div> </div>
<!-- 리스트 페이지 --> <!-- 리스트 페이지 -->
<!-- 상세보기 페이지 시작 --> <!-- 상세보기 페이지 시작 -->
<div v-if="pageActionFlag == 'view'" class="h1001"> <div v-if="pageActionFlag == 'view'" >
<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 ">
@ -47,25 +45,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"> <v-col :cols="12" class="mt-5">
<p class="custom-title-3 mb-2"> 제목 </p> <v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
<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: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" <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'" /> :class="[isDarkMode ? 'theme--white' : 'theme--black', 'custom-view pa-3']" />
</v-col> </v-col>
<v-col :cols="6"> <v-col :cols="6" class="mt-5">
<p class="custom-title-3 mb-2">파일목록</p> <v-card-title class="custom-title-7 pa-0">
파일목록
</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-space-between search-box-label"> <div class="d-flex justify-start search-box-label">
<v-icon>mdi-paperclip</v-icon> <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> </div>
</a> </a>
</div> </div>
@ -75,28 +73,24 @@
</div> </div>
<!-- 상세보기 페이지 --> <!-- 상세보기 페이지 -->
<!-- 작성 페이지 시작 --> <!-- 작성 페이지 시작 -->
<div v-if="pageActionFlag == 'write'" class="h1001"> <div v-if="pageActionFlag == 'write'" >
<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="custom-title-4-new mt-4"> <v-col :cols="12" class="mt-4">
<p class="custom-title-3 mb-2">제목</p> <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-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(90vh - 270px);"> <v-col :cols="12" style="min-height: calc(100vh - 450px);">
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" /> <editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" />
</v-col> </v-col>
<v-col :cols="12" class="mt-2"> <v-col :cols="6" class="mt-5">
<p class="custom-title-3 mb-2"> <v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
파일첨부
</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"
@ -132,25 +126,23 @@
</div> </div>
<!-- 작성 페이지 --> <!-- 작성 페이지 -->
<!-- 답글 작성 페이지 시작 --> <!-- 답글 작성 페이지 시작 -->
<div v-if="pageActionFlag == 'reply'" class="h1001"> <div v-if="pageActionFlag == 'reply'" >
<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"> <v-col :cols="12" class="mt-4">
<p class="custom-title-3 mb-2">제목</p> <v-card-title class="custom-title-7 pa-0">제목</v-card-title>
<v-text-field v-model="replyActionData.title" class="v-input__custom" placeholder="제목" outlined <v-text-field v-model="replyActionData.title" class="v-input__custom" 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-4"> <v-col :cols="6" class="mt-5">
<p class="custom-title-3 mb-2"> <v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
파일첨부
</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"
@ -178,7 +170,7 @@
</div> </div>
<!-- 답글 작성 페이지 --> <!-- 답글 작성 페이지 -->
<!-- 수정 페이지 시작 --> <!-- 수정 페이지 시작 -->
<div v-if="pageActionFlag == 'update'" class="h1001"> <div v-if="pageActionFlag == 'update'" >
<v-card> <v-card>
<div class="pa-5"> <div class="pa-5">
<v-row align="center" no-gutters> <v-row align="center" no-gutters>
@ -186,16 +178,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">
<p class="custom-title-3 mb-2">제목</p> <v-card-title class="custom-title-7 pa-0">제목</v-card-title>
<v-text-field v-model="updateActionData.title" class="v-input__custom" placeholder="" hide-details outlined> <v-text-field v-model="updateActionData.title" class="v-input__custom" 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"> <v-col :cols="6" class="mt-5">
<p class="pa-0 mb-2 custom-title-4-new-1">파일첨부</p> <v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
<div class="" v-if="updateActionData.fileData"> <div class="" v-if="updateActionData.fileData">
<div <div
v-for="(fileData, index) in updateActionData.fileData" v-for="(fileData, index) in updateActionData.fileData"
@ -406,7 +398,6 @@ 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 = {};
@ -470,13 +461,6 @@ 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() {
@ -492,25 +476,14 @@ 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: newRes, value: res,
});
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;
@ -1073,4 +1046,19 @@ 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

@ -64,7 +64,6 @@
:gridName="gridName" :gridName="gridName"
:parentPrgmId="myPrgmId" :parentPrgmId="myPrgmId"
@getRowsData="getRowData" @getRowsData="getRowData"
:dataPath="dataPathMock"
/> />
</div> </div>
</div> </div>
@ -137,24 +136,10 @@ export default {
return { return {
myPrgmId: myPrgmId, myPrgmId: myPrgmId,
gridName: 'rowGrid', gridName: 'rowGrid',
loadGrid: true, loadGrid: false,
tab: null, tab: null,
detailList: myDetail, detailList: myDetail,
initedFlag: false, 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: { computed: {
@ -351,8 +336,7 @@ export default {
this.search(); this.search();
}, },
async search() { async search() {
//process this.loadGrid = false;
this.loadGrid = true;
await this.getRowGridData(); await this.getRowGridData();
await this.setPageData({ await this.setPageData({
isFind: false, isFind: false,
@ -642,43 +626,7 @@ const myDetail = [
placeholder: '시스템 자동입력', 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> </script>
<style lang="scss">
@import '@/assets/scss/common.scss';
</style>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<common-page-title /> <CommonPageTitle />
<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">
<common-page-title /> <CommonPageTitle />
<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">
<common-page-title /> <CommonPageTitle />
<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,5 +1,6 @@
<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">
@ -34,23 +35,23 @@
</v-col> </v-col>
</v-row> </v-row>
<v-row ref="contents"> <v-row ref="contents">
<v-col :cols="5" class="h100"> <v-col :cols="5" >
<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 class="px-5" style="min-height:calc(100% - 76px)"> <div ref="gridParent" class="px-5" style="min-height:60vh;">
<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" class="h100"> <v-col :cols="7" >
<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)">
@ -287,7 +288,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">
<common-page-title /> <CommonPageTitle />
<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">
<common-page-title /> <CommonPageTitle />
<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

@ -59,18 +59,16 @@
:btnActionsFnc="btnActions" :btnActionsFnc="btnActions"
/> />
</div> </div>
<div class="h100 px-5" style="height:calc(100% - 70px)"> <div ref="gridParent" 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" :gridName="gridName"
:gridName="gridName" :parentPrgmId="myPrgmId"
:parentPrgmId="myPrgmId" @getRowsData="getRowData"
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
@sendSelectedRowStatInfo="getSelectedRowStatInfo" :selectedRowDataWatchFlag="true"
:selectedRowDataWatchFlag="true" />
/>
</div>
</div> </div>
</v-card> </v-card>
</v-col> </v-col>
@ -407,8 +405,6 @@ export default {
value: myColumns, value: myColumns,
}); });
this.loadGrid = true;
this.search(); this.search();
}, },
async getRowGridData() { async getRowGridData() {
@ -437,8 +433,9 @@ export default {
gridKey: this.gridName, gridKey: this.gridName,
value: newRes, value: newRes,
}); });
console.log('-------DEBUG-----newRes: ', newRes);
this.$nextTick(() => { this.$nextTick(() => {
this.loadGrid = true;
if (newRes.length > 0) { if (newRes.length > 0) {
try { try {
this.$refs[this.gridName].focus({ this.$refs[this.gridName].focus({

View File

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

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="l-layout"> <div class="l-layout">
<common-page-title /> <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">
<common-page-title /> <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">