This commit is contained in:
Hoang Xuan Mai/(Hoang Xuan Mai)/현장대리인/SK
2025-08-04 16:41:29 +07:00
16 changed files with 1242 additions and 1232 deletions

View File

@ -266,7 +266,7 @@ a {
}
&>.v-treeview-node__root:hover:before {
opacity: 1 !important;
opacity: 0 !important;
}
.v-treeview-node__children {
@ -280,15 +280,19 @@ a {
.v-treeview-node--click[aria-expanded="true"] {
&>.v-treeview-node__root:before {
opacity: 1 !important;
opacity: 0 !important;
}
}
.v-treeview-node[aria-expanded="true"] {
&>.v-treeview-node__root>.v-treeview-node__content>.v-treeview-node__label>button>.v-icon.mdi-chevron-down {
&>.v-treeview-node__root>.v-treeview-node__content
>.v-treeview-node__label>button {
>.anticon,
>.v-icon.mdi-chevron-down {
transform: rotate(-180deg);
}
}
}
.v-treeview-node__label {
&>button {
@ -298,15 +302,17 @@ a {
// justify-content: center;
}
& .anticon,
& .v-icon.mdi-chevron-down {
margin-left: auto;
animation-duration: 0.5s;
}
}
}
.v-treeview-node--active {
&:before {
opacity: 1 !important;
opacity: 0 !important;
}
}
@ -322,7 +328,8 @@ a {
.v-treeview-node__content span:not(.v-icon),
.v-treeview-node__root>button,
.v-treeview-node__level,
.v-treeview-node__content .v-icon.mdi-chevron-down {
.v-treeview-node__content .v-icon.mdi-chevron-down,
.v-treeview-node__content .anticon {
display: none;
}
@ -615,36 +622,36 @@ a {
.v-navigation-drawer__append {
>p {
@if $theme ==dark {
color: rgba(255, 255, 255, 0.6);
}
color: map-deep-get($config, #{$theme}, "v-banner-border-color" ) !important;
// @if $theme ==dark {
// color: rgba(255, 255, 255, 0.6);
// }
@else {
color: #999;
}
// @else {
// color: #999;
// }
}
}
.v-footer {
@if $theme ==light {
background-color: #dfdfe5;
color: #767d83;
}
}
// .v-footer {
// @if $theme ==light {
// background-color: #dfdfe5;
// color: #767d83;
// }
// }
.bd {
@if $theme ==dark {
&-r-1 {
border-right: 1px #373f45 solid;
}
}
@else {
&-r-1 {
border-right: 1px #efefef solid;
}
}
}
// .bd {
// @if $theme ==dark {
// &-r-1 {
// border-right: 1px #373f45 solid;
// }
// }
// @else {
// &-r-1 {
// border-right: 1px #efefef solid;
// }
// }
// }
.border-bottom-1 {
border-bottom: 1px solid map-deep-get($config, #{$theme}, "border-color");
@ -692,183 +699,224 @@ a {
}
&>.v-treeview-node {
.v-treeview-node--active {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-node-label-active-bg"
);
border: 1px solid map-deep-get($config,
#{$theme},
"v-treeview-node-label-active-border"
);
.v-treeview-node__root {
border-radius: 8px;
&:before {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-node-subroot-backgroundColor"
);
&:hover {
background-color: map-deep-get($config, #{$theme}, "v-calendar-weekday-border-color" );
}
&>.v-treeview-node__content {
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-label-active-color"
);
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-icon-active-color"
);
color: map-deep-get($config, #{$theme}, "tui-grid-title-color");
}
}
}
&[aria-expanded="true"]{
// Level 1
&>.v-treeview-node__root {
background-color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-bg" );
border: 1px solid map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border" );
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border");
&:before {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-backgroundColor"
);
background-color: map-deep-get($config, #{$theme}, "v-treeview-node-subroot-backgroundColor");
}
&>.v-treeview-node__content {
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-label-color"
);
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border");
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-icon-color"
);
.v-icon:first-child,
.v-icon:first-child::before {
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border" );
}
}
}
&>.v-treeview-node__children {
// Level 2
.v-treeview-node__root {
color: map-deep-get($config, #{$theme}, "v-treeview-node-root-label-color");
&:hover {
background-color: map-deep-get($config, #{$theme}, "v-calendar-weekday-backgroundColor");
}
}
&>[aria-expanded="true"] >.v-treeview-node__root,
.v-treeview-node__root.v-treeview-node--active {
background-color: map-deep-get($config, #{$theme}, "v-calendar-day-in-not-month-color" );
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config, #{$theme}, "card-title-color");
}
.v-icon,
.v-icon::before,
.anticon {
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border" );
}
}
}
// Level 3
.v-treeview-node__children {
.v-treeview-node {
>.v-treeview-node__root {
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config, #{$theme}, "card-default-color");
}
}
*:hover,
:hover {
border-width: 0;
}
&:hover {
&>.v-treeview-node__content {
border: 1px solid map-deep-get($config, #{$theme}, "v-input-textarea-border");
border-radius: 8px;
background-color: rgba(0, 0, 0, 0);
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-label-active-color"
);
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-icon-active-color"
);
}
}
color: map-deep-get($config, #{$theme}, "tui-grid-title-color");
}
}
&>.v-treeview-node__children {
&>.v-treeview-node {
&>.v-treeview-node__root {
&:before {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-node-subroot-backgroundColor"
);
}
&>.v-treeview-node__content {
&.v-treeview-node--active {
// color: map-deep-get($config, #{$theme}, "card-title-color");
background-color: rgba(0, 0, 0, 0);
.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-label-color"
);
color: map-deep-get($config, #{$theme}, "tui-grid-title-color");
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-icon-color"
);
}
}
&:not(.v-treeview-node--active):hover {
&:before {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-leaf-active-backgroundColor"
);
}
&>.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-leaf-active-color"
);
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-leaf-active-color"
);
}
.v-icon,
.v-icon::before,
.anticon {
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border" );
}
}
}
&>.v-treeview-node__children {
background-color: map-deep-get($config,
#{$theme},
"v-treeview-leaf-subchildren-backgroundColor"
);
}
&[aria-expanded="true"] {
& .v-treeview-node__root>.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-label-children-color"
);
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-icon-active-color"
);
}
}
}
}
}
&[aria-expanded="true"] {
& .v-treeview-node__root>.v-treeview-node__content {
.v-treeview-node__label {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-label-active-color"
);
}
.v-icon {
color: map-deep-get($config,
#{$theme},
"v-treeview-node-root-icon-active-color"
);
}
}
}
// &>.v-treeview-node__root {
// &:before {
// background-color: map-deep-get($config, #{$theme}, "v-treeview-node-root-backgroundColor" );
// }
// &>.v-treeview-node__content {
// .v-treeview-node__label {
// color: map-deep-get($config, #{$theme}, "v-treeview-node-root-label-color");
// }
// }
// &:hover {
// &>.v-treeview-node__content {
// .v-treeview-node__label {
// color: map-deep-get($config,
// #{$theme},
// "v-treeview-node-root-label-active-color"
// );
// }
// .v-icon {
// color: map-deep-get($config,
// #{$theme},
// "v-treeview-node-root-icon-active-color"
// );
// }
// }
// }
// }
// &>.v-treeview-node__children {
// &>.v-treeview-node {
// &>.v-treeview-node__root {
// &:before {
// background-color: map-deep-get($config,
// #{$theme},
// "v-treeview-node-subroot-backgroundColor"
// );
// }
// &>.v-treeview-node__content {
// .v-treeview-node__label {
// color: map-deep-get($config, #{$theme}, "v-treeview-node-label-color" );
// }
// .v-icon {
// color: map-deep-get($config, #{$theme}, "v-treeview-icon-color" );
// }
// }
// &:not(.v-treeview-node--active):hover {
// &:before {
// background-color: map-deep-get($config,
// #{$theme},
// "v-treeview-leaf-active-backgroundColor"
// );
// }
// &>.v-treeview-node__content {
// .v-treeview-node__label {
// color: map-deep-get($config,
// #{$theme},
// "v-treeview-leaf-active-color"
// );
// }
// .v-icon {
// color: map-deep-get($config,
// #{$theme},
// "v-treeview-leaf-active-color"
// );
// }
// }
// }
// }
// &>.v-treeview-node__children {
// // background-color: map-deep-get($config,
// // #{$theme},
// // "v-treeview-leaf-subchildren-backgroundColor"
// // );
// }
// // &[aria-expanded="true"] {
// // & .v-treeview-node__root>.v-treeview-node__content {
// // .v-treeview-node__label {
// // color: map-deep-get($config,
// // #{$theme},
// // "v-treeview-node-label-children-color"
// // );
// // }
// // .v-icon {
// // color: map-deep-get($config,
// // #{$theme},
// // "v-treeview-icon-active-color"
// // );
// // }
// // }
// // }
// }
// }
}
}

View File

@ -58,7 +58,7 @@
<div class="pa-5">
<!-- <v-text-field label="위치정보 선택"></v-text-field> -->
<v-row align="center" no-gutters>
<v-col :cols="label ? 3 : ''">
<v-col :cols="label ? 3 : ''" class="pr-3" >
<component
:is="'selectCodeList'"
:parentPrgmId="parentPrgmId"
@ -66,41 +66,66 @@
dataKey="searchElecContKind"
:sendParam="{ commGrpCd: 'EM_CONT', useFg: '1' }"
:addAll="true"
:customClass="'select-large'"
/>
</v-col>
<v-col :cols="label ? 3 : ''">
<v-col :cols="label ? 3 : ''" class="pr-3" >
<component
:is="'selectCodeList'"
:parentPrgmId="parentPrgmId"
:label="'전압구분'"
dataKey="searchVoltKind"
:sendParam="{ commGrpCd: 'EM_VOLT_KIND', useFg: '1' }"
:customClass="'select-large'"
:addAll="true"
/>
</v-col>
<v-col :cols="label ? 3 : ''">
<v-col :cols="label ? 3 : ''" class="pr-3" >
<component
:is="'selectCodeList'"
:parentPrgmId="parentPrgmId"
:label="'전압구분'"
dataKey="searchOptKind"
:sendParam="{ commGrpCd: 'EM_VOLT_OPT', useFg: '1' }"
:customClass="'select-large'"
:addAll="true"
/>
</v-col>
<v-col cols="3" class="text-right">
<v-btn
<div style="height: 25px"></div>
<!-- <v-btn
v-if="!searchParam.isMulti"
:ripple="false"
@click="search()"
>검색</v-btn
> -->
<a-button
v-if="!searchParam.isMulti"
type="primary"
class="mr-1"
icon="search"
:ripple="false"
@click="search"
style="height: 40px"
>
<v-btn
검색
</a-button>
<!-- <v-btn
v-if="!searchParam.isMulti"
:ripple="false"
@click="initVal()"
>초기화</v-btn
> -->
<a-button
v-if="!searchParam.isMulti"
type="primary"
class="mr-1"
:ripple="false"
@click="initVal"
style="height: 40px"
>
초기화
</a-button>
</v-col>
</v-row>
</div>
@ -310,7 +335,11 @@ export default {
},
// 공정/설비 트리 그리드 세팅
gridInit() {
const myOptions = {};
const myOptions = {
header: {
height: 38,
},
};
this.setModalGridOption({
modalKey: this.myModalKey,
gridKey: this.gridName,
@ -606,11 +635,11 @@ const myColumns = [
{ header: '전력계약 ID', name: 'eleclContId', hidden: true},
{ header: '전력계약 명', name: 'eleclContNm', hidden: true},
{ header: '전력계약구분CD', name: 'elecContKind', hidden: true},
{ header: '전력계약구분', name: 'elecContKindNm', align: 'center'},
{ header: '전력계약구분', name: 'elecContKindNm', align: 'left'},
{ header: '전압구분CD', name: 'voltKind', hidden: true },
{ header: '전압구분', name: 'voltKindNm', align: 'center' },
{ header: '전압구분', name: 'voltKindNm', align: 'left' },
{ header: '옵션CD', name: 'optKind', hidden: true },
{ header: '옵션', name: 'optKindNm', align: 'center' },
{ header: '옵션', name: 'optKindNm', align: 'left' },
{
header: '기본요금(원/kW)',
name: 'baseChrg',
@ -620,7 +649,7 @@ const myColumns = [
},
},
{ header: '시간대CD', name: 'peakKind', hidden: true },
{ header: '시간대', name: 'peakKindNm', align: 'center' },
{ header: '시간대', name: 'peakKindNm', align: 'left' },
{
header: '여름철(6~8월)',
name: 'unitPrcSum',

View File

@ -16,15 +16,16 @@
</template></v-text-field>
</v-col>
<v-dialog ref="popModal" v-model="dialog" width="800" overlay-color="#000" overlay-opacity="0.8" scrollable>
<v-card style="height: 100%">
<v-dialog ref="popModal" v-model="dialog" width="800" scrollable>
<v-card style="height: 90vh;">
<v-card-title class="px-5 py-4 d-flex align-center justify-space-between">
<span class="custom-title-4">설비 선택</span>
<a-button icon="close" type="text" @click="dialogOpenCloseEvent(dialog)"></a-button>
</v-card-title>
<div class="pa-2 pt-0">
<v-card class="searchFilter">
<v-row align="end">
<!-- <v-card class="searchFilter">
</v-card> -->
<v-row align="end" class="searchFilter">
<v-col :cols="3.5">
<!-- 설비그룹 -->
<component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01"
@ -60,10 +61,7 @@
</v-row>
</v-col>
<a-button icon="search" type="primary" @click="search()" class="search-button">조회</a-button>
</v-row>
</v-card>
<!-- <v-row align="center" no-gutters style="margin-top: 14px;">
<v-col :cols="1">
@ -77,14 +75,20 @@
:hide-details="true" v-model="searchWord" @keyup.enter="search"></v-text-field>
</v-col>
</v-row> -->
<!-- <v-row>
<v-col :col="12">
</v-col>
</v-row> -->
</div>
<div class="px-5" style="height:429px;">
<div ref="modalGridParent" class="w100 h100">
<v-card-text class="px-2 w100">
<div ref="modalGridParent" style="height: 450px;" class="h100 w100">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null"
:dataPath="searchParam.eqpmSelectPopData.eqpmSelectPop" :gridName="gridName"
:parentPrgmId="parentPrgmId" @getRowsData="getRowData" />
</div>
</div>
</v-card-text>
<v-card-actions class="px-6 py-4 d-flex align-center justify-end">
<a-button :ripple="false" @click="dialogOpenCloseEvent(dialog)" class="mr-2">닫기</a-button>
<a-button :ripple="false" type="primary" @click="setUpdate($event)">확인</a-button>

View File

@ -273,9 +273,9 @@ export default {
});
},
async created() {
// await this.setSelectValueList01();
// await this.setSelectValueList02();
// await this.setSelectValueList03();
await this.setSelectValueList01();
await this.setSelectValueList02();
await this.setSelectValueList03();
this.init();
// if(this.searchParam.isMulti == true){
// this.setPageData({
@ -487,40 +487,40 @@ export default {
eqpmId: this.selectValue03,
searchWord: this.searchWord,
};
let res = [
{
eqpmGrpNm: "냉각 시스템",
eqpmGrpId: "GRP001",
eqpmId: "EQ001",
eqpmNm: "냉각기 A",
tagId: "TAG001-001",
tagNm: "냉각 온도 센서",
rowStat: "I",
},
{
eqpmGrpNm: "전력 시스템",
eqpmGrpId: "GRP002",
eqpmId: "EQ002",
eqpmNm: "변압기 B",
tagId: "TAG002-002",
tagNm: "전류 센서",
rowStat: "U",
},
{
eqpmGrpNm: "공기압 시스템",
eqpmGrpId: "GRP003",
eqpmId: "EQ003",
eqpmNm: "압축기 C",
tagId: "TAG003-003",
tagNm: "압력 센서",
rowStat: "D",
},
];
// res = await this.postApiReturn({
// apiKey: "selectTagAndEqpmList",
// resKey: "tagTrndDatas",
// sendParam: searchParam,
// });
// let res = [
// {
// eqpmGrpNm: "냉각 시스템",
// eqpmGrpId: "GRP001",
// eqpmId: "EQ001",
// eqpmNm: "냉각기 A",
// tagId: "TAG001-001",
// tagNm: "냉각 온도 센서",
// rowStat: "I",
// },
// {
// eqpmGrpNm: "전력 시스템",
// eqpmGrpId: "GRP002",
// eqpmId: "EQ002",
// eqpmNm: "변압기 B",
// tagId: "TAG002-002",
// tagNm: "전류 센서",
// rowStat: "U",
// },
// {
// eqpmGrpNm: "공기압 시스템",
// eqpmGrpId: "GRP003",
// eqpmId: "EQ003",
// eqpmNm: "압축기 C",
// tagId: "TAG003-003",
// tagNm: "압력 센서",
// rowStat: "D",
// },
// ];
let res = await this.postApiReturn({
apiKey: "selectTagAndEqpmList",
resKey: "tagTrndDatas",
sendParam: searchParam,
});
let newRes = [];
if (this.searchParam["tagList"].length > 0) {
newRes = res.filter((item) => {

View File

@ -9,7 +9,6 @@
<div class="lnb-logo">
<img v-if="isDarkMode" src="@/assets/images/logo_dm.png" />
<img v-else src="@/assets/images/logo_lm.png" />
<!-- <img v-else src="@/assets/images/logo_lm.png" /> -->
</div>
<!-- <div class="lnb-logo">FEMS</div>-->
</router-link>
@ -62,10 +61,10 @@
</v-list-item>
</v-list>
</v-menu>
<a-button id="refresh" class="btn-header" @click="removeBookMark" v-if="bookmarkBtn == 1">
<a-button id="removeBm" class="btn-header" @click="removeBookMark" v-if="bookmarkBtn == 1">
<span class="material-icons" style="font-size: 17px">star</span>
</a-button>
<a-button id="refresh" class="btn-header" :style="{
<a-button id="addBm" class="btn-header" :style="{
display: 'flex',
alignItems: 'center'}" @click="addBookMark" v-if="bookmarkBtn == 0">
<span class="material-icons" style="font-size: 17px">star_border</span>
@ -88,32 +87,12 @@
</v-row>
</div>
<v-main>
<v-container fluid>
<v-row class="flex-nowrap">
<div class="menu-container">
<v-navigation-drawer ref="navigationdrawer" :value="drawer" :mini-variant="miniVariant" :clipped="clipped"
:absolute="false" mini-variant-width="60">
<div class="d-flex align-center justify-space-between py-4 px-3" v-if="false">
<router-link class="home" :to="myHome.root">
<div class="lnb-logo">
<img v-if="isDarkMode" src="@/assets/images/logo_dm.png" />
<img v-else src="@/assets/images/logo_lm.png" />
</div>
<!-- <div class="lnb-logo">FEMS</div>-->
</router-link>
<ThemeSwitch style="margin-right: 20px" />
<v-app-bar-nav-icon ref="appbarnavicon" id="appbarnavicon" @click.stop="miniVariant = !miniVariant"
@click="updateTreeview" :style="{
backgroundColor: 'transparent',
color: isDarkMode ? '#fff' : '#111',
}" />
<!-- <router-view :key="$route.fullPath"/> -->
</div>
<AdminMenu :miniVariant="miniVariant" :userNm="this.userInfo.userNm" :comId="this.userInfo.comId" v-if="false" />
<component ref="changePswdPop" :is="'ChangePswdPop'" v-show="false" :comId="this.userInfo.comId" />
<v-treeview ref="treeview" :active.sync="activeTree" active-class="v-treeview-node--active"
:items="treevieItems" activatable hoverable color="#3896ff" open-on-click @update:open="openNode">
@ -130,14 +109,16 @@
:class="miniVariant === false ? 'mr-2' : ''" size="9">
$depth3rdBulletDark
</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-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">
<!-- <v-icon v-if="item.lvl >= 1 && item.childeVo && item.childeVo.length > 0 && !item.url">
mdi-chevron-down
</v-icon>
</v-icon> -->
<a-icon type="down" v-if="item.lvl >= 1 && item.childeVo && item.childeVo.length > 0 && !item.url" />
</button>
</template>
</v-treeview>
@ -805,7 +786,7 @@ export default {
// console.log('if isLoading stmt3');
// return;
// }
alert("move to", url);
// alert("move to", url);
this.$router.push({
path: url + "?prgmId=" + prgmId,
});

View File

@ -10,8 +10,8 @@
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
<div class="d-flex align-center">
<!-- <v-btn @click="listPageButtonGroupClickEvent('view')" :ripple="false" class="mr-1">상세보기</v-btn> -->
<a-button type="primary" size="large" @click="listPageButtonGroupClickEvent('write')"
:ripple="false" icon="edit" class="mr-1">작성</a-button>
<a-button type="primary" @click="listPageButtonGroupClickEvent('write')" :ripple="false"
icon="edit" class="mr-1">작성</a-button>
<!-- <v-btn @click="listPageButtonGroupClickEvent('delete')" :ripple="false">삭제</v-btn> -->
</div>
</v-col>
@ -1053,16 +1053,16 @@ const defaultData = {
}
}
.toastui-editor-mode-switch{
.toastui-editor-mode-switch {
font-family: Inter !important;
font-size: 1.0rem !important;
}
.toastui-editor-mode-switch .tab-item.active{
.toastui-editor-mode-switch .tab-item.active {
color: #1677FF
}
.toastui-editor-mode-switch .tab-item{
.toastui-editor-mode-switch .tab-item {
color: #000000E0
}
}

View File

@ -53,7 +53,7 @@
</v-col>
<v-col :cols="7" >
<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 pb-1" >설비 상세</v-card-title>
<div class="px-5" style="min-height:calc(100% - 76px)">
<v-tabs v-model="tab">
<v-tab v-for="item in items" :key="item.id" :disabled="item.disabledFlag">

View File

@ -43,6 +43,7 @@
:is="'Datepicker'"
:parentPrgmId="myPrgmId"
:label="'조회기간'"
customClass="datepicker-large"
/>
</v-col>
<div class="d-flex">

View File

@ -49,7 +49,7 @@
<v-col :cols="3">
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="12"
:textCols="12" :customClass="'input-large'" />
:textCols="12" :customClass="'datepicker-large'" />
</v-col>
<v-col :cols="3" class="text-right">
<!-- 조회버튼 -->

View File

@ -1,5 +1,6 @@
<template>
<div class="l-layout">
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -25,7 +26,7 @@
<component
:is="'Datepicker'"
:parentPrgmId="myPrgmId"
:customClass="'select-large'"
:customClass="'datepicker-large'"
:label="'대상일'"
:labelCols="3"
/>
@ -99,7 +100,6 @@ export default {
async asyncData(context) {
const myState = context.store.state;
myPrgmId = context.route.query.prgmId;
console.log("active menu:", myState.menuData);
await context.store.commit("setActiveMenuInfo", myState.menuData[myPrgmId]);
myTitle = await myState.activeMenuInfo.menuNm;
},
@ -319,7 +319,6 @@ export default {
},
};
console.log("data : ", data);
data.map((item) => {
xAxisData.push(item.fabNm);
});
@ -374,8 +373,6 @@ export default {
];
}
// console.log("xAxisData : ", xAxisData);
console.log("seriesData : ", seriesData);
var chartOption = {
legend: {
top: xAxisData.length > 7 ? "top" : "bottom",

View File

@ -5,14 +5,14 @@
<v-col :cols="12">
<v-card class="searchFilter">
<v-row align="end" no-gutters>
<v-col :cols="4">
<v-col :cols="3">
<!-- 차트목록 -->
<component :is="'SelectBox'" ref="SelectBox" :propsValue="selectValue01" :itemList="selectValueList01"
:label="'차트'" @update:propsValue="selectValue01 = $event" :textCols="12" customClass="select-large" />
</v-col>
<v-col :cols="4">
<v-col :cols="3">
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" />
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
</v-col>
<v-col :cols="4" class="text-right">
<BtnSearch @click="search" size="large" />

View File

@ -32,7 +32,7 @@
</v-col>
<v-col :cols="3">
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" />
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
</v-col>
<v-col :cols="6" class="text-right d-flex align-end justify-end align-self-end">
<!-- 조회버튼 -->
@ -99,6 +99,8 @@ import EqpmSelectPop from '~/components/common/modal/EqpmSelectPop';
import DateUtility from '~/plugins/dateUtility';
import XLSX from 'xlsx';
import getLineChartOption from "~/components/common/chartoptions/LineChart";
let myTitle;
let myPrgmId;
@ -764,22 +766,14 @@ export default {
];
}
var chartOption = {
legend: {
top: 'top',
},
grid: {
top: '10%',
bottom: '20%',
},
yAxis: {},
xAxis: {
data: xAxisData,
},
series: seriesData,
tooltip: {},
const chartOption = getLineChartOption({
xAxisData: xAxisData,
seriesData: seriesData,
dataZoom: dataZoom,
};
// legendData: legendData,
// isDarkMode: this.isDarkMode,
});
this.setChartOption({ chartKey: this.chartName01, value: chartOption });
// this.setChartYAxisData({ chartKey: this.chartName01, value: yAxisData });
// this.setChartXAxisData({ chartKey: this.chartName01, value: xAxisData });
@ -864,22 +858,13 @@ export default {
];
}
var chartOption = {
legend: {
top: 'top',
},
grid: {
top: '10%',
bottom: '20%',
},
yAxis: {},
xAxis: {
data: xAxisData,
},
series: seriesData,
tooltip: {},
const chartOption = getLineChartOption({
xAxisData: xAxisData,
seriesData: seriesData,
dataZoom: dataZoom,
};
// legendData: legendData,
// isDarkMode: this.isDarkMode,
});
this.setChartOption({ chartKey: this.chartName02, value: chartOption });
// this.setChartDataZoom({chartKey : this.chartName02,value: dataZoom});

View File

@ -97,7 +97,7 @@
</v-row>
<v-row ref="contents" style="height: calc(100vh - 230px)">
<v-col :cols="12" style="height: 100%">
<v-row class="pa-1" style="height: 37%; width: 100%">
<v-row class="pa-1" style="height: 50%; width: 100%">
<div style="width: 100%; height: 100%; overflow: hidden">
<div style="height: 15%">
<v-card-title
@ -117,7 +117,7 @@
v-for="(value, key, index) in contentData01"
:key="'key1' + index"
>
<v-card>
<v-card style="position: relative; overflow: hidden;" >
<!-- Card header -->
<div
style="
@ -133,23 +133,9 @@
<v-card-title style="padding-left: 10px">{{
value["gdIdxNm"]
}}</v-card-title>
<div class="v-box" style="height: 80%; padding: 3px; margin: 2px">
<v-col :cols="12" style="height: 100%">
<!-- <div style="height: 20%">
<div
style="
position: absolute;
left: 0;
top: 10px;
width: 4px;
height: 50px;
background-color: #91caff;
border-radius: 2px;
"
></div>
<v-card-title>{{ value["gdIdxNm"] }}</v-card-title>
</div> -->
<div style="height: 95%">
<div class="v-box" style="height: 80%; padding: 3px; margin: 10px;">
<v-col :cols="12" style="height: 100%;">
<div style="height: 85%;">
<component
class="w100 h100"
:is="loadChart ? 'Chart' : null"
@ -166,7 +152,7 @@
</div>
</div>
</v-row>
<v-row class="pa-1" style="height: 33%; width: 100%">
<v-row class="pa-1" style="height: 40%; width: 100%">
<v-card class="pa-1" style="height: 100%; width: 100%; overflow: hidden">
<div style="height: 25%">
<v-card-title class="d-flex align-center justify-space-between pa-5">
@ -746,10 +732,12 @@ export default {
{
type: "line",
data: seriesData,
symbol: "none",
itemStyle: {
color: "#D32029",
},
// symbol: "circle",
showSymbol: true,
connectNulls: true,
},
// {
// type: "line",

View File

@ -24,6 +24,7 @@
:is="'DatePicker'"
:label="'대상연월'"
:parentPrgmId="myPrgmId"
:customClass="'datepicker-large'"
/>
</v-col>
<v-col :cols="3"> </v-col>
@ -429,9 +430,6 @@ export default {
var chartKey = null;
var chartOption = null;
console.log("data key:", dataKeyList);
console.log("data test:", data);
for (var i = 0; i < dataKeyList.length; i++) {
for (var j = 0; j < data[dataKeyList[i]].chartData.length; j++) {
currentChartData = data[dataKeyList[i]].chartData[j];

View File

@ -71,6 +71,7 @@
:label="'대상년월'"
:parentPrgmId="myPrgmId"
:isRangeOption="false"
:customClass="'datepicker-large'"
/>
</v-col>
<v-col :cols="6"> </v-col>

View File

@ -1,6 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<PageTitle text="데이터 TREND" />
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -188,7 +188,6 @@ import Grid from "~/components/common/Grid";
import TagTrndTagPop from "~/components/common/modal/TagTrndTagPop";
import Chart from "~/components/common/Chart";
import XLSX from "xlsx";
import PageTitle from "~/components/common/PageTitle";
let myTitle;
let myPrgmId;
@ -217,7 +216,6 @@ export default {
Grid,
TagTrndTagPop,
Chart,
PageTitle,
},
data() {
return {
@ -486,26 +484,6 @@ export default {
{ header: "rowStat", name: "rowStat", align: "center", hidden: true },
];
const newRes = [
{
eqpmGrpNm: "냉동기고온",
eqpmGrpId: "UT_HT_CH201",
eqpmId: "UT_HT_CH201",
eqpmNm: "UT_HT_CH201",
tagId: "ICHEON.HVAC.EQP_HT_CH004.UT_HT_CH201.CHI_AMP_1A_PV",
tagNm: "ICHEON 고온 냉동기 201호기 - 회로1 전류A",
// rowStat: "I",
},
{
eqpmGrpNm: "냉동기고온",
eqpmGrpId: "UT_HT_CH201",
eqpmId: "UT_HT_CH201",
eqpmNm: "UT_HT_CH201",
tagId: "ICHEON.HVAC.EQP_HT_CH004.UT_HT_CH201.CHI_AMP_1A_PV",
tagNm: "ICHEON 고온 냉동기 201호기 - 회로1 전류A",
// rowStat: "I",
},
];
this.setGridColumn({
gridKey: this.gridName,
value: myColumns,