Compare commits
10 Commits
dev-luannv
...
98c26a156e
Author | SHA1 | Date | |
---|---|---|---|
98c26a156e | |||
b4f8e41c7e | |||
e9bdd80f14 | |||
eeadcd254d | |||
b56bd12bb7 | |||
0f66d84b48 | |||
8f83e1d60c | |||
54220aa4eb | |||
315aafc528 | |||
8963a92475 |
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -4,13 +4,14 @@
|
|||||||
:data="chkGridData"
|
:data="chkGridData"
|
||||||
:columns="chkGridColumns"
|
:columns="chkGridColumns"
|
||||||
:options="chkGridOptions"
|
:options="chkGridOptions"
|
||||||
@focusChange="focusChangeEvt"
|
@mousedown="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>
|
||||||
import { mapState, mapMutations } from 'vuex';
|
import { mapState, mapMutations } from 'vuex';
|
||||||
@ -107,16 +108,13 @@ 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() {
|
||||||
@ -163,7 +161,7 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
// console.log('--------------DEBUG----gridData: ', this.gridData);
|
// console.log(this.dataPath);
|
||||||
if (this.gridName) {
|
if (this.gridName) {
|
||||||
this.gridInstance = this.$refs['tuigrid' + this.gridName];
|
this.gridInstance = this.$refs['tuigrid' + this.gridName];
|
||||||
|
|
||||||
@ -271,6 +269,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
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')
|
||||||
@ -291,6 +290,7 @@ 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')
|
||||||
@ -666,8 +666,6 @@ 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;
|
||||||
@ -705,11 +703,6 @@ 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'] {
|
||||||
|
@ -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 = [];
|
||||||
|
@ -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') {
|
||||||
|
@ -4,25 +4,24 @@
|
|||||||
class="d-flex justify-space-between align-center"
|
class="d-flex justify-space-between align-center"
|
||||||
style="height: 80px;"
|
style="height: 80px;"
|
||||||
>
|
>
|
||||||
<span class="txt custom-title-4-new">설비 입출력 정보</span>
|
<span class="txt">설비 입출력 정보</span>
|
||||||
<Buttons
|
<Buttons
|
||||||
:parentPrgmId="parentPrgmId"
|
:parentPrgmId="parentPrgmId"
|
||||||
:bindingData="gridName"
|
:bindingData="gridName"
|
||||||
:btnActionsFnc="btnActions"
|
:btnActionsFnc="btnActions"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div ref="gridParent" style="min-height: calc(100vh - 800px);" >
|
<div ref="gridParent" style="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);" class="mt-4">
|
<div style="min-height: calc(100vh - 900px);">
|
||||||
<component
|
<component
|
||||||
:is="'Form'"
|
:is="'Form'"
|
||||||
:parentPrgmId="parentPrgmId"
|
:parentPrgmId="parentPrgmId"
|
||||||
@ -60,28 +59,12 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loadGrid: true,
|
loadGrid: false,
|
||||||
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: {
|
||||||
@ -130,16 +113,16 @@ export default {
|
|||||||
selectedObjId(val) {
|
selectedObjId(val) {
|
||||||
console.log('selectedObjId : ', val);
|
console.log('selectedObjId : ', val);
|
||||||
if (val === 'TAG') {
|
if (val === 'TAG') {
|
||||||
this.detailList[2].class = 'py-2 d-none';
|
this.detailList[2].class = 'py-3 d-none';
|
||||||
this.detailList[3].class = 'py-2 d-none';
|
this.detailList[3].class = 'py-3 pl-4 pt-1 d-none';
|
||||||
this.detailList[4].class = 'py-2';
|
this.detailList[4].class = 'py-3';
|
||||||
this.detailList[5].class = 'py-2';
|
this.detailList[5].class = 'py-3';
|
||||||
} else {
|
} else {
|
||||||
// }else if(val==="READ_PLC"){
|
// }else if(val==="READ_PLC"){
|
||||||
this.detailList[5].class = 'py-2 d-none';
|
this.detailList[5].class = 'py-3 d-none';
|
||||||
this.detailList[4].class = 'py-2 d-none';
|
this.detailList[4].class = 'py-3 d-none';
|
||||||
this.detailList[3].class = 'py-2';
|
this.detailList[3].class = 'py-3 pl-4 pt-1';
|
||||||
this.detailList[2].class = 'py-2';
|
this.detailList[2].class = 'py-3';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
selectedCalcFg(val) {
|
selectedCalcFg(val) {
|
||||||
@ -172,7 +155,7 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations({
|
...mapMutations({
|
||||||
@ -416,6 +399,7 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function checkDuplicate(data, targetKey) {
|
function checkDuplicate(data, targetKey) {
|
||||||
var duplicateFlag = false;
|
var duplicateFlag = false;
|
||||||
var set = new Set();
|
var set = new Set();
|
||||||
@ -486,7 +470,7 @@ const myEqpmIaoDetail = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'EvtObjPop',
|
type: 'EvtObjPop',
|
||||||
labelContent: '대상 항목 111',
|
labelContent: '대상 항목',
|
||||||
valueNm: 'objId',
|
valueNm: 'objId',
|
||||||
valueNm2: 'objNm',
|
valueNm2: 'objNm',
|
||||||
bindNm: 'objNm',
|
bindNm: 'objNm',
|
||||||
@ -501,7 +485,7 @@ const myEqpmIaoDetail = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'InputText',
|
type: 'InputText',
|
||||||
cols: 5,
|
cols: 6,
|
||||||
class: 'py-3 d-none',
|
class: 'py-3 d-none',
|
||||||
valueNm: 'objNm',
|
valueNm: 'objNm',
|
||||||
readonly: true,
|
readonly: true,
|
||||||
@ -614,13 +598,4 @@ 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>
|
||||||
|
@ -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() {}
|
||||||
|
@ -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() {
|
||||||
@ -491,26 +475,15 @@ export default {
|
|||||||
resKey: 'postData',
|
resKey: 'postData',
|
||||||
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>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
customClass="select-large"
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="4">
|
<v-col :cols="3">
|
||||||
<InputText
|
<InputText
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
label="프로그램명"
|
label="프로그램명"
|
||||||
@ -50,17 +50,16 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="min-height: 60vh">
|
<div ref="gridParent" style="height: 100vh">
|
||||||
<div ref="gridParent" class="px-5 h100">
|
<!-- <div ref="gridParent" class="px-5 h100">
|
||||||
<component
|
</div> -->
|
||||||
:ref="gridName"
|
<component
|
||||||
:is="loadGrid ? 'Grid' : null"
|
:ref="gridName"
|
||||||
:parentPrgmId="myPrgmId"
|
:is="loadGrid ? 'Grid' : null"
|
||||||
:gridName="gridName"
|
:parentPrgmId="myPrgmId"
|
||||||
@getRowsData="getRowData"
|
:gridName="gridName"
|
||||||
:dataPath="dataPathMock"
|
@getRowsData="getRowData"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -262,8 +261,6 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// this.getRowGridData();
|
// this.getRowGridData();
|
||||||
|
|
||||||
this.loadGrid = true;
|
|
||||||
},
|
},
|
||||||
async search() {
|
async search() {
|
||||||
await this.getRowGridData();
|
await this.getRowGridData();
|
||||||
@ -296,7 +293,8 @@ 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) {
|
||||||
this.$refs[this.gridName].focus({
|
this.$refs[this.gridName].focus({
|
||||||
@ -316,6 +314,12 @@ 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,
|
||||||
@ -327,6 +331,7 @@ 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) {
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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);
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
Reference in New Issue
Block a user