Compare commits
2 Commits
dev-dungtv
...
41095098e2
Author | SHA1 | Date | |
---|---|---|---|
41095098e2 | |||
28fe49d39f |
@ -266,7 +266,7 @@ a {
|
||||
}
|
||||
|
||||
&>.v-treeview-node__root:hover:before {
|
||||
opacity: 0 !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
.v-treeview-node__children {
|
||||
@ -280,17 +280,13 @@ a {
|
||||
|
||||
.v-treeview-node--click[aria-expanded="true"] {
|
||||
&>.v-treeview-node__root:before {
|
||||
opacity: 0 !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.v-treeview-node[aria-expanded="true"] {
|
||||
&>.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__root>.v-treeview-node__content>.v-treeview-node__label>button>.v-icon.mdi-chevron-down {
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -302,17 +298,15 @@ a {
|
||||
// justify-content: center;
|
||||
}
|
||||
|
||||
& .anticon,
|
||||
& .v-icon.mdi-chevron-down {
|
||||
margin-left: auto;
|
||||
animation-duration: 0.5s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.v-treeview-node--active {
|
||||
&:before {
|
||||
opacity: 0 !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -328,8 +322,7 @@ 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 .anticon {
|
||||
.v-treeview-node__content .v-icon.mdi-chevron-down {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -622,36 +615,36 @@ a {
|
||||
|
||||
.v-navigation-drawer__append {
|
||||
>p {
|
||||
color: map-deep-get($config, #{$theme}, "v-banner-border-color" ) !important;
|
||||
// @if $theme ==dark {
|
||||
// color: rgba(255, 255, 255, 0.6);
|
||||
// }
|
||||
@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");
|
||||
@ -699,224 +692,183 @@ a {
|
||||
}
|
||||
|
||||
&>.v-treeview-node {
|
||||
.v-treeview-node__root {
|
||||
|
||||
.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"
|
||||
);
|
||||
border-radius: 8px;
|
||||
&:hover {
|
||||
background-color: map-deep-get($config, #{$theme}, "v-calendar-weekday-border-color" );
|
||||
|
||||
&:before {
|
||||
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}, "tui-grid-title-color");
|
||||
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"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&[aria-expanded="true"]{
|
||||
&>.v-treeview-node__root {
|
||||
&:before {
|
||||
background-color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-node-root-backgroundColor"
|
||||
);
|
||||
}
|
||||
|
||||
// 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-subroot-backgroundColor");
|
||||
&>.v-treeview-node__content {
|
||||
.v-treeview-node__label {
|
||||
color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-node-root-label-color"
|
||||
);
|
||||
}
|
||||
|
||||
.v-treeview-node__content {
|
||||
.v-icon {
|
||||
color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-node-root-icon-color"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&>.v-treeview-node__content {
|
||||
.v-treeview-node__label {
|
||||
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border");
|
||||
color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-node-root-label-active-color"
|
||||
);
|
||||
}
|
||||
|
||||
.v-icon:first-child,
|
||||
.v-icon:first-child::before {
|
||||
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-active-color"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&>.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 {
|
||||
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}, "tui-grid-title-color");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&.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}, "tui-grid-title-color");
|
||||
}
|
||||
|
||||
.v-icon,
|
||||
.v-icon::before,
|
||||
.anticon {
|
||||
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// &>.v-treeview-node__root {
|
||||
// &:before {
|
||||
// background-color: map-deep-get($config, #{$theme}, "v-treeview-node-root-backgroundColor" );
|
||||
// }
|
||||
&>.v-treeview-node__children {
|
||||
&>.v-treeview-node {
|
||||
|
||||
// &>.v-treeview-node__content {
|
||||
// .v-treeview-node__label {
|
||||
// color: map-deep-get($config, #{$theme}, "v-treeview-node-root-label-color");
|
||||
// }
|
||||
// }
|
||||
&>.v-treeview-node__root {
|
||||
&:before {
|
||||
background-color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-node-subroot-backgroundColor"
|
||||
);
|
||||
}
|
||||
|
||||
// &:hover {
|
||||
// &>.v-treeview-node__content {
|
||||
// .v-treeview-node__label {
|
||||
// color: map-deep-get($config,
|
||||
// #{$theme},
|
||||
// "v-treeview-node-root-label-active-color"
|
||||
// );
|
||||
// }
|
||||
&>.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-node-root-icon-active-color"
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
.v-icon {
|
||||
color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-icon-color"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// &>.v-treeview-node__children {
|
||||
// &>.v-treeview-node {
|
||||
&:not(.v-treeview-node--active):hover {
|
||||
&:before {
|
||||
background-color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-leaf-active-backgroundColor"
|
||||
);
|
||||
}
|
||||
|
||||
// &>.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-leaf-active-color"
|
||||
);
|
||||
}
|
||||
|
||||
// &>.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-leaf-active-color"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// .v-icon {
|
||||
// color: map-deep-get($config, #{$theme}, "v-treeview-icon-color" );
|
||||
// }
|
||||
// }
|
||||
&>.v-treeview-node__children {
|
||||
background-color: map-deep-get($config,
|
||||
#{$theme},
|
||||
"v-treeview-leaf-subchildren-backgroundColor"
|
||||
);
|
||||
}
|
||||
|
||||
// &:not(.v-treeview-node--active):hover {
|
||||
// &:before {
|
||||
// background-color: map-deep-get($config,
|
||||
// #{$theme},
|
||||
// "v-treeview-leaf-active-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-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-icon-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"
|
||||
// // );
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// }
|
||||
// }
|
||||
&[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"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 : ''" class="pr-3" >
|
||||
<v-col :cols="label ? 3 : ''">
|
||||
<component
|
||||
:is="'selectCodeList'"
|
||||
:parentPrgmId="parentPrgmId"
|
||||
@ -66,66 +66,41 @@
|
||||
dataKey="searchElecContKind"
|
||||
:sendParam="{ commGrpCd: 'EM_CONT', useFg: '1' }"
|
||||
:addAll="true"
|
||||
:customClass="'select-large'"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="label ? 3 : ''" class="pr-3" >
|
||||
<v-col :cols="label ? 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 : ''" class="pr-3" >
|
||||
<v-col :cols="label ? 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">
|
||||
<div style="height: 25px"></div>
|
||||
<!-- <v-btn
|
||||
<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"
|
||||
>
|
||||
검색
|
||||
</a-button>
|
||||
<!-- <v-btn
|
||||
<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>
|
||||
@ -335,11 +310,7 @@ export default {
|
||||
},
|
||||
// 공정/설비 트리 그리드 세팅
|
||||
gridInit() {
|
||||
const myOptions = {
|
||||
header: {
|
||||
height: 38,
|
||||
},
|
||||
};
|
||||
const myOptions = {};
|
||||
this.setModalGridOption({
|
||||
modalKey: this.myModalKey,
|
||||
gridKey: this.gridName,
|
||||
@ -635,11 +606,11 @@ const myColumns = [
|
||||
{ header: '전력계약 ID', name: 'eleclContId', hidden: true},
|
||||
{ header: '전력계약 명', name: 'eleclContNm', hidden: true},
|
||||
{ header: '전력계약구분CD', name: 'elecContKind', hidden: true},
|
||||
{ header: '전력계약구분', name: 'elecContKindNm', align: 'left'},
|
||||
{ header: '전력계약구분', name: 'elecContKindNm', align: 'center'},
|
||||
{ header: '전압구분CD', name: 'voltKind', hidden: true },
|
||||
{ header: '전압구분', name: 'voltKindNm', align: 'left' },
|
||||
{ header: '전압구분', name: 'voltKindNm', align: 'center' },
|
||||
{ header: '옵션CD', name: 'optKind', hidden: true },
|
||||
{ header: '옵션', name: 'optKindNm', align: 'left' },
|
||||
{ header: '옵션', name: 'optKindNm', align: 'center' },
|
||||
{
|
||||
header: '기본요금(원/kW)',
|
||||
name: 'baseChrg',
|
||||
@ -649,7 +620,7 @@ const myColumns = [
|
||||
},
|
||||
},
|
||||
{ header: '시간대CD', name: 'peakKind', hidden: true },
|
||||
{ header: '시간대', name: 'peakKindNm', align: 'left' },
|
||||
{ header: '시간대', name: 'peakKindNm', align: 'center' },
|
||||
{
|
||||
header: '여름철(6~8월)',
|
||||
name: 'unitPrcSum',
|
||||
|
@ -16,52 +16,54 @@
|
||||
|
||||
</template></v-text-field>
|
||||
</v-col>
|
||||
<v-dialog ref="popModal" v-model="dialog" width="800" scrollable>
|
||||
<v-card style="height: 90vh;">
|
||||
<v-dialog ref="popModal" v-model="dialog" width="800" overlay-color="#000" overlay-opacity="0.8" scrollable>
|
||||
<v-card style="height: 100%">
|
||||
<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-card> -->
|
||||
<v-row align="end" class="searchFilter">
|
||||
<v-col :cols="3.5">
|
||||
<!-- 설비그룹 -->
|
||||
<component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01"
|
||||
:label="'설비그룹'" :disabled="eqpmGrpDisabled"
|
||||
@update:propsValue="selectValue01 = $event" :labelCols="12" :textCols="12"
|
||||
:iconShow="true" />
|
||||
</v-col>
|
||||
<v-col :cols="3.5">
|
||||
<!-- FAB -->
|
||||
<component :is="'SelectBoxMulti'" :propsValue="selectValue02"
|
||||
:itemList="selectValueList02" :label="'FAB'" :labelCols="12" :multiple="true"
|
||||
:disabled="fabDisabled" @update:propsValue="selectValue02 = $event" :textCols="12"
|
||||
:iconShow="true" />
|
||||
</v-col>
|
||||
<v-col :cols="3.5">
|
||||
<v-row>
|
||||
<v-col :cols="12" class="py-0">
|
||||
<label for="" class="search-box-label">
|
||||
<v-icon small :class="['mr-1', 'icon-blue']">$icoBulletPoint</v-icon>
|
||||
설비명
|
||||
</label>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="pt-0">
|
||||
<v-text-field append-icon="" class="v-input__custom" outlined
|
||||
:hide-details="true" v-model="searchWord" @keyup.enter="search"><template
|
||||
v-slot:append>
|
||||
<!-- Custom SVG icon -->
|
||||
<v-icon>$icoSearch</v-icon>
|
||||
<v-card class="searchFilter">
|
||||
<v-row align="end">
|
||||
<v-col :cols="3.5">
|
||||
<!-- 설비그룹 -->
|
||||
<component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01"
|
||||
:label="'설비그룹'" :disabled="eqpmGrpDisabled"
|
||||
@update:propsValue="selectValue01 = $event" :labelCols="12" :textCols="12"
|
||||
:iconShow="true" />
|
||||
</v-col>
|
||||
<v-col :cols="3.5">
|
||||
<!-- FAB -->
|
||||
<component :is="'SelectBoxMulti'" :propsValue="selectValue02"
|
||||
:itemList="selectValueList02" :label="'FAB'" :labelCols="12" :multiple="true"
|
||||
:disabled="fabDisabled" @update:propsValue="selectValue02 = $event" :textCols="12"
|
||||
:iconShow="true" />
|
||||
</v-col>
|
||||
<v-col :cols="3.5">
|
||||
<v-row>
|
||||
<v-col :cols="12" class="py-0">
|
||||
<label for="" class="search-box-label">
|
||||
<v-icon small :class="['mr-1', 'icon-blue']">$icoBulletPoint</v-icon>
|
||||
설비명
|
||||
</label>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="pt-0">
|
||||
<v-text-field append-icon="" class="v-input__custom" outlined
|
||||
:hide-details="true" v-model="searchWord" @keyup.enter="search"><template
|
||||
v-slot:append>
|
||||
<!-- Custom SVG icon -->
|
||||
<v-icon>$icoSearch</v-icon>
|
||||
|
||||
</template></v-text-field>
|
||||
</v-col>
|
||||
</template></v-text-field>
|
||||
</v-col>
|
||||
|
||||
</v-row>
|
||||
</v-col>
|
||||
<a-button icon="search" type="primary" @click="search()" class="search-button">조회</a-button>
|
||||
</v-row>
|
||||
</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">
|
||||
@ -75,20 +77,14 @@
|
||||
: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>
|
||||
|
||||
<v-card-text class="px-2 w100">
|
||||
<div ref="modalGridParent" style="height: 450px;" class="h100 w100">
|
||||
<div class="px-5" style="height:429px;">
|
||||
<div ref="modalGridParent" class="w100 h100">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null"
|
||||
:dataPath="searchParam.eqpmSelectPopData.eqpmSelectPop" :gridName="gridName"
|
||||
:parentPrgmId="parentPrgmId" @getRowsData="getRowData" />
|
||||
</div>
|
||||
</v-card-text>
|
||||
|
||||
</div>
|
||||
<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>
|
||||
|
@ -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",
|
||||
// },
|
||||
// ];
|
||||
let 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",
|
||||
},
|
||||
];
|
||||
// res = await this.postApiReturn({
|
||||
// apiKey: "selectTagAndEqpmList",
|
||||
// resKey: "tagTrndDatas",
|
||||
// sendParam: searchParam,
|
||||
// });
|
||||
let newRes = [];
|
||||
if (this.searchParam["tagList"].length > 0) {
|
||||
newRes = res.filter((item) => {
|
||||
|
@ -9,6 +9,7 @@
|
||||
<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>
|
||||
@ -39,16 +40,16 @@
|
||||
<v-menu offset-y>
|
||||
<template v-slot:activator="{ on, attrs }">
|
||||
<a-button
|
||||
:ripple="false"
|
||||
tile
|
||||
class="btn-header"
|
||||
v-bind="attrs"
|
||||
v-on="on"
|
||||
style="width: 100px"
|
||||
>
|
||||
<span class="body-2">즐겨찾기</span>
|
||||
<v-icon size="20">mdi-chevron-down</v-icon>
|
||||
</a-button>
|
||||
:ripple="false"
|
||||
tile
|
||||
class="btn-header"
|
||||
v-bind="attrs"
|
||||
v-on="on"
|
||||
style="width: 100px"
|
||||
>
|
||||
<span class="body-2">즐겨찾기</span>
|
||||
<v-icon size="20">mdi-chevron-down</v-icon>
|
||||
</a-button>
|
||||
<!-- <a-button style="width: 100px; height: 36px" class="btn-header">
|
||||
<span class="body-2">즐겨찾기</span>
|
||||
<v-icon size="20">mdi-chevron-down</v-icon></a-button> -->
|
||||
@ -61,10 +62,10 @@
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
<a-button id="removeBm" class="btn-header" @click="removeBookMark" v-if="bookmarkBtn == 1">
|
||||
<a-button id="refresh" class="btn-header" @click="removeBookMark" v-if="bookmarkBtn == 1">
|
||||
<span class="material-icons" style="font-size: 17px">star</span>
|
||||
</a-button>
|
||||
<a-button id="addBm" class="btn-header" :style="{
|
||||
<a-button id="refresh" 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>
|
||||
@ -87,12 +88,32 @@
|
||||
</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">
|
||||
@ -109,16 +130,14 @@
|
||||
: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> -->
|
||||
<a-icon type="down" v-if="item.lvl >= 1 && item.childeVo && item.childeVo.length > 0 && !item.url" />
|
||||
</v-icon>
|
||||
</button>
|
||||
</template>
|
||||
</v-treeview>
|
||||
@ -786,7 +805,7 @@ export default {
|
||||
// console.log('if isLoading stmt3');
|
||||
// return;
|
||||
// }
|
||||
// alert("move to", url);
|
||||
alert("move to", url);
|
||||
this.$router.push({
|
||||
path: url + "?prgmId=" + prgmId,
|
||||
});
|
||||
|
@ -3,22 +3,22 @@
|
||||
<CommonPageTitle />
|
||||
<!-- 리스트 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'list'" class="h1001">
|
||||
<v-card class="" >
|
||||
<v-card class="">
|
||||
<div class="pa-5">
|
||||
<v-row align="center" no-gutters >
|
||||
<v-row align="center" no-gutters>
|
||||
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
||||
<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" @click="listPageButtonGroupClickEvent('write')" :ripple="false"
|
||||
icon="edit" class="mr-1">작성</a-button>
|
||||
<a-button type="primary" size="large" @click="listPageButtonGroupClickEvent('write')"
|
||||
:ripple="false" icon="edit" class="mr-1">작성</a-button>
|
||||
<!-- <v-btn @click="listPageButtonGroupClickEvent('delete')" :ripple="false">삭제</v-btn> -->
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
|
||||
<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" @getRowsData="getRowData" />
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@ -27,22 +27,23 @@
|
||||
</div>
|
||||
<!-- 리스트 페이지 끝 -->
|
||||
<!-- 상세보기 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'view'" >
|
||||
<div v-if="pageActionFlag == 'view'">
|
||||
<v-card>
|
||||
<v-row class="pa-5">
|
||||
<v-col :cols="12" class="d-flex align-center justify-space-between ">
|
||||
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||
<v-card-title class="pa-0 custom-title-4">공지사항 보기</v-card-title>
|
||||
<div class="d-flex align-center">
|
||||
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="unordered-list">목록</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="send-outlined">
|
||||
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="unordered-list">목록</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="send-outlined">
|
||||
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
||||
답글
|
||||
</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="edit">수정</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="edit">수정</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost
|
||||
icon="delete">삭제</a-button>
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-5">
|
||||
@ -57,13 +58,12 @@
|
||||
<v-card-title class="custom-title-7 pa-0">
|
||||
파일목록
|
||||
</v-card-title>
|
||||
<div v-for="fileData in viewActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
class="file-item">
|
||||
<div v-for="fileData in viewActionData.fileData" :key="fileData.apndFileId" class="file-item">
|
||||
<a @click.prevent="downloadFile(fileData)">
|
||||
<div class="d-flex justify-start search-box-label">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
|
||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' +
|
||||
fileData.apndFileExt }}</span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@ -73,12 +73,12 @@
|
||||
</div>
|
||||
<!-- 상세보기 페이지 끝 -->
|
||||
<!-- 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'write'" >
|
||||
<div v-if="pageActionFlag == 'write'">
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row class="pa-50">
|
||||
<v-col :cols="12" class="">
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항 작성</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
@ -88,37 +88,31 @@
|
||||
<v-col :cols="12" style="min-height: calc(100vh - 450px);">
|
||||
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" />
|
||||
</v-col>
|
||||
|
||||
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="writeActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in writeActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
<div v-for="(fileData, index) in writeActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="writeActionData.fileData.splice(index, 1)" />
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
||||
</div>
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()" >
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input
|
||||
ref="writeInputFile"
|
||||
v-model="writeActionData.fileData"
|
||||
multiple
|
||||
outlined
|
||||
hide-input
|
||||
class="d-none"
|
||||
prepend-icon="mdi-tray-arrow-up"
|
||||
></v-file-input>
|
||||
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
||||
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false" class="mr-2">취소</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false" type="primary">등록</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false"
|
||||
class="mr-2">취소</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
||||
type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
@ -126,7 +120,7 @@
|
||||
</div>
|
||||
<!-- 작성 페이지 끝 -->
|
||||
<!-- 답글 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'reply'" >
|
||||
<div v-if="pageActionFlag == 'reply'">
|
||||
<v-card class="pa-5">
|
||||
<v-row align="center" class="mt-0">
|
||||
<v-col :cols="12" class="">
|
||||
@ -134,8 +128,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined
|
||||
hide-details>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined hide-details>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
||||
@ -144,72 +137,73 @@
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="replyActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in replyActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
<div v-for="(fileData, index) in replyActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="replyActionData.fileData.splice(index, 1)" />
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="replyActionData.fileData.splice(index, 1)" />
|
||||
</div>
|
||||
</div>
|
||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()" >
|
||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData" hide-details="true" class="d-none">
|
||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="replyPageButtonGroupClickEvent('cancel')" :ripple="false">취소</a-button>
|
||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false" type="primary">등록</a-button>
|
||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
||||
type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card>
|
||||
</div>
|
||||
<!-- 답글 작성 페이지 끝 -->
|
||||
<!-- 수정 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'update'" >
|
||||
<div v-if="pageActionFlag == 'update'">
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row align="center" no-gutters>
|
||||
<v-col :cols="12">
|
||||
<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 :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details outlined>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details
|
||||
outlined>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4" >
|
||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4">
|
||||
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
||||
:initialValue="updateActionData.content" />
|
||||
</v-col>
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="updateActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in updateActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="updateActionData.fileData.splice(index, 1)" />
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="updateActionData.fileData">
|
||||
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="updateActionData.fileData.splice(index, 1)" />
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()" >
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')" >취소</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary" >등록</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')">취소</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
@ -295,8 +289,6 @@ export default {
|
||||
postGrpOrd: null,
|
||||
postOrgNo: null,
|
||||
},
|
||||
dataPathMock: {},
|
||||
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -341,7 +333,7 @@ export default {
|
||||
chkOpenTabList: 'chkOpenTabList',
|
||||
getDomain: 'modules/list/getDomain',
|
||||
}),
|
||||
onTest(){
|
||||
onTest() {
|
||||
console.log(this.writeActionData.fileData);
|
||||
},
|
||||
async init() {
|
||||
@ -400,7 +392,11 @@ export default {
|
||||
gridInit() {
|
||||
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
||||
|
||||
const myOptions = {};
|
||||
const myOptions = {
|
||||
header: {
|
||||
height: 38,
|
||||
},
|
||||
};
|
||||
this.setGridOption({
|
||||
gridKey: this.gridName,
|
||||
value: Object.assign(Utility.defaultGridOption(gridHeight), myOptions),
|
||||
@ -421,7 +417,7 @@ export default {
|
||||
align: 'center',
|
||||
hidden: true,
|
||||
},
|
||||
{ header: '번호', name: 'postNo', width: 150, align: 'center' },
|
||||
{ header: '번호', name: 'postNo', width: 150, align: 'right' },
|
||||
{
|
||||
header: '원글번호',
|
||||
name: 'postOrgNo',
|
||||
@ -451,9 +447,9 @@ export default {
|
||||
hidden: true,
|
||||
},
|
||||
{ header: '제목', name: 'title', align: 'left' },
|
||||
{ header: '작성자', name: 'regUserNo', width: 250, align: 'center' },
|
||||
{ header: '작성자', name: 'regUserNo', width: 250, align: 'right' },
|
||||
{ header: '작성일', name: 'regDttm', width: 250, align: 'center' },
|
||||
{ header: '조회수', name: 'viewCnt', width: 150, align: 'center' },
|
||||
{ header: '조회수', name: 'viewCnt', width: 150, align: 'right' },
|
||||
// {header: "파일아이디", name:"apndFileUuid", width:150, align:"center"}, // 수정필요
|
||||
];
|
||||
|
||||
@ -475,7 +471,7 @@ export default {
|
||||
resKey: 'postData',
|
||||
sendParam: params,
|
||||
});
|
||||
|
||||
|
||||
this.setGridData({
|
||||
gridKey: this.gridName,
|
||||
value: res,
|
||||
@ -1020,15 +1016,6 @@ const defaultData = {
|
||||
},
|
||||
};
|
||||
|
||||
import { getPathDataExample } from '@/const/const'
|
||||
const dataPathDataExample = getPathDataExample({
|
||||
postNo: '18',
|
||||
title: '오픈공지',
|
||||
regUserNo: '1',
|
||||
regDttm: '2023-01-09 09:39:41',
|
||||
viewCnt: '1'
|
||||
}, 10);
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -1042,23 +1029,41 @@ const dataPathDataExample = getPathDataExample({
|
||||
margin: 2px 0;
|
||||
padding: 4px;
|
||||
background-color: #0000000A;
|
||||
.file-item-name{
|
||||
|
||||
.file-item-name {
|
||||
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");;
|
||||
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch{
|
||||
font-family: Inter !important;
|
||||
font-size: 1.0rem !important;
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch .tab-item.active{
|
||||
color: #1677FF
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch .tab-item{
|
||||
color: #000000E0
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -53,7 +53,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="7" >
|
||||
<v-card class="pb-5">
|
||||
<v-card-title class="custom-title-4 pb-1" >설비 상세</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)">
|
||||
<v-tabs v-model="tab">
|
||||
<v-tab v-for="item in items" :key="item.id" :disabled="item.disabledFlag">
|
||||
|
@ -43,7 +43,6 @@
|
||||
:is="'Datepicker'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:label="'조회기간'"
|
||||
customClass="datepicker-large"
|
||||
/>
|
||||
</v-col>
|
||||
<div class="d-flex">
|
||||
|
@ -49,7 +49,7 @@
|
||||
<v-col :cols="3">
|
||||
<!-- 대상일 -->
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="12"
|
||||
:textCols="12" :customClass="'datepicker-large'" />
|
||||
:textCols="12" :customClass="'input-large'" />
|
||||
</v-col>
|
||||
<v-col :cols="3" class="text-right">
|
||||
<!-- 조회버튼 -->
|
||||
|
@ -1,6 +1,5 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -26,7 +25,7 @@
|
||||
<component
|
||||
:is="'Datepicker'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:customClass="'datepicker-large'"
|
||||
:customClass="'select-large'"
|
||||
:label="'대상일'"
|
||||
:labelCols="3"
|
||||
/>
|
||||
@ -100,6 +99,7 @@ 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,8 @@ export default {
|
||||
},
|
||||
};
|
||||
|
||||
data.map((item) => {
|
||||
console.log("data : ", data);
|
||||
data.map((item) => {
|
||||
xAxisData.push(item.fabNm);
|
||||
});
|
||||
|
||||
@ -373,6 +374,8 @@ export default {
|
||||
];
|
||||
}
|
||||
|
||||
// console.log("xAxisData : ", xAxisData);
|
||||
console.log("seriesData : ", seriesData);
|
||||
var chartOption = {
|
||||
legend: {
|
||||
top: xAxisData.length > 7 ? "top" : "bottom",
|
||||
|
@ -5,14 +5,14 @@
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
<v-row align="end" no-gutters>
|
||||
<v-col :cols="3">
|
||||
<v-col :cols="4">
|
||||
<!-- 차트목록 -->
|
||||
<component :is="'SelectBox'" ref="SelectBox" :propsValue="selectValue01" :itemList="selectValueList01"
|
||||
:label="'차트'" @update:propsValue="selectValue01 = $event" :textCols="12" customClass="select-large" />
|
||||
</v-col>
|
||||
<v-col :cols="3">
|
||||
<v-col :cols="4">
|
||||
<!-- 대상일 -->
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" />
|
||||
</v-col>
|
||||
<v-col :cols="4" class="text-right">
|
||||
<BtnSearch @click="search" size="large" />
|
||||
|
@ -32,7 +32,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="3">
|
||||
<!-- 대상일 -->
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
|
||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" />
|
||||
</v-col>
|
||||
<v-col :cols="6" class="text-right d-flex align-end justify-end align-self-end">
|
||||
<!-- 조회버튼 -->
|
||||
@ -99,8 +99,6 @@ 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;
|
||||
|
||||
@ -766,14 +764,22 @@ export default {
|
||||
];
|
||||
}
|
||||
|
||||
const chartOption = getLineChartOption({
|
||||
xAxisData: xAxisData,
|
||||
seriesData: seriesData,
|
||||
var chartOption = {
|
||||
legend: {
|
||||
top: 'top',
|
||||
},
|
||||
grid: {
|
||||
top: '10%',
|
||||
bottom: '20%',
|
||||
},
|
||||
yAxis: {},
|
||||
xAxis: {
|
||||
data: xAxisData,
|
||||
},
|
||||
series: seriesData,
|
||||
tooltip: {},
|
||||
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 });
|
||||
@ -858,13 +864,22 @@ export default {
|
||||
];
|
||||
}
|
||||
|
||||
const chartOption = getLineChartOption({
|
||||
xAxisData: xAxisData,
|
||||
seriesData: seriesData,
|
||||
var chartOption = {
|
||||
legend: {
|
||||
top: 'top',
|
||||
},
|
||||
grid: {
|
||||
top: '10%',
|
||||
bottom: '20%',
|
||||
},
|
||||
yAxis: {},
|
||||
xAxis: {
|
||||
data: xAxisData,
|
||||
},
|
||||
series: seriesData,
|
||||
tooltip: {},
|
||||
dataZoom: dataZoom,
|
||||
// legendData: legendData,
|
||||
// isDarkMode: this.isDarkMode,
|
||||
});
|
||||
};
|
||||
|
||||
this.setChartOption({ chartKey: this.chartName02, value: chartOption });
|
||||
// this.setChartDataZoom({chartKey : this.chartName02,value: dataZoom});
|
||||
|
@ -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: 50%; width: 100%">
|
||||
<v-row class="pa-1" style="height: 37%; 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 style="position: relative; overflow: hidden;" >
|
||||
<v-card>
|
||||
<!-- Card header -->
|
||||
<div
|
||||
style="
|
||||
@ -133,9 +133,23 @@
|
||||
<v-card-title style="padding-left: 10px">{{
|
||||
value["gdIdxNm"]
|
||||
}}</v-card-title>
|
||||
<div class="v-box" style="height: 80%; padding: 3px; margin: 10px;">
|
||||
<v-col :cols="12" style="height: 100%;">
|
||||
<div style="height: 85%;">
|
||||
<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%">
|
||||
<component
|
||||
class="w100 h100"
|
||||
:is="loadChart ? 'Chart' : null"
|
||||
@ -152,7 +166,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</v-row>
|
||||
<v-row class="pa-1" style="height: 40%; width: 100%">
|
||||
<v-row class="pa-1" style="height: 33%; 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">
|
||||
@ -732,12 +746,10 @@ export default {
|
||||
{
|
||||
type: "line",
|
||||
data: seriesData,
|
||||
symbol: "none",
|
||||
itemStyle: {
|
||||
color: "#D32029",
|
||||
},
|
||||
// symbol: "circle",
|
||||
showSymbol: true,
|
||||
connectNulls: true,
|
||||
},
|
||||
// {
|
||||
// type: "line",
|
||||
|
@ -24,7 +24,6 @@
|
||||
:is="'DatePicker'"
|
||||
:label="'대상연월'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:customClass="'datepicker-large'"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="3"> </v-col>
|
||||
@ -430,6 +429,9 @@ 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];
|
||||
|
@ -71,7 +71,6 @@
|
||||
:label="'대상년월'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:isRangeOption="false"
|
||||
:customClass="'datepicker-large'"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="6"> </v-col>
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user