dev-luannv27-2407 #7
@ -433,6 +433,10 @@ a {
|
|||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
min-width: 1000px;
|
min-width: 1000px;
|
||||||
|
|
||||||
|
.head-logo{
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.v-navigation-drawer {
|
.v-navigation-drawer {
|
||||||
background: map-deep-get($config, #{$theme}, "menu-bg-color");
|
background: map-deep-get($config, #{$theme}, "menu-bg-color");
|
||||||
}
|
}
|
||||||
@ -474,7 +478,7 @@ a {
|
|||||||
|
|
||||||
.btn-header {
|
.btn-header {
|
||||||
background-color: map-deep-get($config, #{$theme}, "v-btn-header-background");
|
background-color: map-deep-get($config, #{$theme}, "v-btn-header-background");
|
||||||
border: map-deep-get($config, #{$theme}, "v-btn-header-border");
|
border:1px solid map-deep-get($config, #{$theme}, "v-btn-header-border");
|
||||||
color: map-deep-get($config, #{$theme}, "v-btn-header-text");
|
color: map-deep-get($config, #{$theme}, "v-btn-header-text");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1310,18 +1314,24 @@ a {
|
|||||||
.btn-close-menu-list {
|
.btn-close-menu-list {
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "btn-header-select-bg") !important;
|
||||||
|
|
||||||
.v-list-item {
|
.v-list-item {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-list-item__title {
|
.v-list-item__title {
|
||||||
color: #fff;
|
color: map-deep-get($config, #{$theme}, "btn-header-select-color");
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #46c0ff;
|
color: #46c0ff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.v-btn {
|
||||||
|
background-color: transparent !important;
|
||||||
|
color: map-deep-get($config, #{$theme}, "btn-header-select-color") !important;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[hover-tooltip] {
|
[hover-tooltip] {
|
||||||
|
@ -107,6 +107,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn {
|
.ant-btn {
|
||||||
|
|
||||||
|
&.ant-btn-outlined {
|
||||||
|
color:map-deep-get($config, #{$theme}, "ant-btn-default-color");
|
||||||
|
border:1px solid map-deep-get($config, #{$theme}, "ant-btn-default-border-outlined");
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
&.ant-btn-primary {
|
&.ant-btn-primary {
|
||||||
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
|
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
|
||||||
border-color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
|
border-color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
|
||||||
|
@ -221,6 +221,16 @@
|
|||||||
|
|
||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
|
|
||||||
|
.v-input-popup__custom {
|
||||||
|
.v-input__slot {
|
||||||
|
padding-left: 12px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border: 1px solid map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"v-input-popup-password-border"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.v-textarea {
|
.v-textarea {
|
||||||
.v-input__slot{
|
.v-input__slot{
|
||||||
|
@ -72,11 +72,11 @@ $config: (
|
|||||||
v-btn-backgroundColor: #144985,
|
v-btn-backgroundColor: #144985,
|
||||||
v-box: #212224,
|
v-box: #212224,
|
||||||
v-banner-border-color: rgba(255, 255, 255, 0.1),
|
v-banner-border-color: rgba(255, 255, 255, 0.1),
|
||||||
v-treeview-node-root-backgroundColor: #18579e,
|
v-treeview-node-root-backgroundColor: #212224,
|
||||||
v-treeview-node-root-label-color: #fff,
|
v-treeview-node-root-label-color: #FFFFFFD9,
|
||||||
v-treeview-node-root-label-active-color: #fff,
|
v-treeview-node-root-label-active-color: #FFFFFFD9,
|
||||||
v-treeview-node-root-icon-color: #fff,
|
v-treeview-node-root-icon-color: #FFFFFFD9,
|
||||||
v-treeview-node-root-icon-active-color: #fff,
|
v-treeview-node-root-icon-active-color: #FFFFFFD9,
|
||||||
// v-treeview-node-subroot-backgroundColor: #FFFFFF0A,
|
// v-treeview-node-subroot-backgroundColor: #FFFFFF0A,
|
||||||
v-treeview-node-subroot-backgroundColor: transparent,
|
v-treeview-node-subroot-backgroundColor: transparent,
|
||||||
v-treeview-node-label-color: rgba(255, 255, 255, 0.6),
|
v-treeview-node-label-color: rgba(255, 255, 255, 0.6),
|
||||||
@ -152,6 +152,7 @@ $config: (
|
|||||||
search-btn-background: #1668DC,
|
search-btn-background: #1668DC,
|
||||||
v-btn-color-default: #FFFFFFD9,
|
v-btn-color-default: #FFFFFFD9,
|
||||||
v-btn-bg-default: #FFFFFF2E,
|
v-btn-bg-default: #FFFFFF2E,
|
||||||
|
v-input-popup-password-border: #424242,
|
||||||
v-input-textarea-border: #424242,
|
v-input-textarea-border: #424242,
|
||||||
v-input-textarea-bg: #212224,
|
v-input-textarea-bg: #212224,
|
||||||
v-input-textarea-color: #FFFFFFD9,
|
v-input-textarea-color: #FFFFFFD9,
|
||||||
@ -166,6 +167,9 @@ $config: (
|
|||||||
ant-btn-default-border:#FFFFFF2E,
|
ant-btn-default-border:#FFFFFF2E,
|
||||||
ant-btn-default-bg:#FFFFFF2E,
|
ant-btn-default-bg:#FFFFFF2E,
|
||||||
ant-btn-default-color:#FFFFFFD9,
|
ant-btn-default-color:#FFFFFFD9,
|
||||||
|
ant-btn-default-border-outlined:#424242,
|
||||||
|
btn-header-select-bg: #1F1F1F,
|
||||||
|
btn-header-select-color:#FFFFFFD9,
|
||||||
),
|
),
|
||||||
light: (w-g5: $--color-gray_555,
|
light: (w-g5: $--color-gray_555,
|
||||||
g5-w: $--color-white,
|
g5-w: $--color-white,
|
||||||
@ -204,11 +208,11 @@ $config: (
|
|||||||
// v-btn-backgroundColor: #fff,
|
// v-btn-backgroundColor: #fff,
|
||||||
v-box: #FFFFFF,
|
v-box: #FFFFFF,
|
||||||
v-banner-border-color: #ddd,
|
v-banner-border-color: #ddd,
|
||||||
v-treeview-node-root-backgroundColor: #4777d9,
|
v-treeview-node-root-backgroundColor: #FFFFFF,
|
||||||
v-treeview-node-root-label-color: #111,
|
v-treeview-node-root-label-color: #000000E0,
|
||||||
v-treeview-node-root-label-active-color: #fff,
|
v-treeview-node-root-label-active-color: #000000E0,
|
||||||
v-treeview-node-root-icon-color: #555,
|
v-treeview-node-root-icon-color: #000000E0,
|
||||||
v-treeview-node-root-icon-active-color: #fff,
|
v-treeview-node-root-icon-active-color: #000000E0,
|
||||||
// v-treeview-node-subroot-backgroundColor: #00000005,
|
// v-treeview-node-subroot-backgroundColor: #00000005,
|
||||||
v-treeview-node-subroot-backgroundColor: transparent,
|
v-treeview-node-subroot-backgroundColor: transparent,
|
||||||
v-treeview-node-label-color: #555,
|
v-treeview-node-label-color: #555,
|
||||||
@ -282,6 +286,7 @@ $config: (
|
|||||||
search-btn-background: #1677FF,
|
search-btn-background: #1677FF,
|
||||||
v-btn-bg-default: #00000026,
|
v-btn-bg-default: #00000026,
|
||||||
v-btn-color-default: #000000E0,
|
v-btn-color-default: #000000E0,
|
||||||
|
v-input-popup-password-border: #D9D9D9,
|
||||||
v-input-textarea-border: #D9D9D9,
|
v-input-textarea-border: #D9D9D9,
|
||||||
v-input-textarea-bg: #FFFFFF,
|
v-input-textarea-bg: #FFFFFF,
|
||||||
v-input-textarea-color: #000000E0,
|
v-input-textarea-color: #000000E0,
|
||||||
@ -296,5 +301,8 @@ $config: (
|
|||||||
ant-btn-default-border:#00000026,
|
ant-btn-default-border:#00000026,
|
||||||
ant-btn-default-bg:#00000026,
|
ant-btn-default-bg:#00000026,
|
||||||
ant-btn-default-color:#000000E0,
|
ant-btn-default-color:#000000E0,
|
||||||
|
ant-btn-default-border-outlined:#D9D9D9,
|
||||||
|
btn-header-select-color:#1F1F1F,
|
||||||
|
btn-header-select-bg:#FFFFFF,
|
||||||
),
|
),
|
||||||
);
|
);
|
@ -27,7 +27,7 @@
|
|||||||
/> -->
|
/> -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<v-list class="pa-2">
|
<v-list class="pa-2 btn-close-menu-list" >
|
||||||
<!-- <v-list-item class="mb-1">-->
|
<!-- <v-list-item class="mb-1">-->
|
||||||
<!-- <div class="d-flex align-center">-->
|
<!-- <div class="d-flex align-center">-->
|
||||||
<!-- <v-avatar class="mr-1" size="20">-->
|
<!-- <v-avatar class="mr-1" size="20">-->
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-switch
|
<a-button
|
||||||
class="theme-switch"
|
class="btn-header"
|
||||||
v-model="mode"
|
:color="mode ? 'dark' : 'light'"
|
||||||
@change="themeChange"
|
@click="themeChange"
|
||||||
></v-switch>
|
icon="bulb"
|
||||||
|
>
|
||||||
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { mapState, mapMutations } from 'vuex';
|
import { mapState, mapMutations } from 'vuex';
|
||||||
@ -26,8 +28,11 @@ export default {
|
|||||||
setThemeChange: 'setThemeChange',
|
setThemeChange: 'setThemeChange',
|
||||||
}),
|
}),
|
||||||
themeChange() {
|
themeChange() {
|
||||||
|
this.mode = !this.mode;
|
||||||
this.$vuetify.theme.isDark = this.mode;
|
this.$vuetify.theme.isDark = this.mode;
|
||||||
this.setThemeChange(this.mode);
|
this.setThemeChange(this.mode);
|
||||||
|
console.log(this.mode)
|
||||||
|
console.log(this.$vuetify.theme.isDark)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -69,12 +74,14 @@ export default {
|
|||||||
background-color: #f2f2f2;
|
background-color: #f2f2f2;
|
||||||
top: 2px;
|
top: 2px;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-image: url(../../assets/images/icon/ico-theme-light.png);
|
// background-image: url(../../assets/images/icon/ico-theme-light.png);
|
||||||
|
content: "light";
|
||||||
background-size: 18px 18px;
|
background-size: 18px 18px;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.v-input--is-label-active {
|
&.v-input--is-label-active {
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.v-input--switch__track {
|
.v-input--switch__track {
|
||||||
@ -82,7 +89,8 @@ export default {
|
|||||||
}
|
}
|
||||||
.v-input--switch__thumb {
|
.v-input--switch__thumb {
|
||||||
// transform: translate(38px, 0);
|
// transform: translate(38px, 0);
|
||||||
background-image: url(../../assets/images/icon/ico-theme-dark.png);
|
// background-image: url(../../assets/images/icon/ico-theme-dark.png);
|
||||||
|
content: 'dark';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-row class="search-box" align="center" no-gutters>
|
<v-row class="search-box" align="center" no-gutters>
|
||||||
<v-col v-if="item.label" :cols="item.cols == 12 ? 2 : 4">
|
<v-col v-if="item.label" :cols="item.labelCols !== undefined ? item.labelCols : item.cols == 12 ? 2 : 4">
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
<v-icon
|
<v-icon
|
||||||
x-small
|
x-small
|
||||||
@ -28,10 +28,14 @@
|
|||||||
></v-text-field>
|
></v-text-field>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<v-btn :ripple="false" @click="dialog = !dialog">
|
|
||||||
<!-- <v-icon>mdi-content-save</v-icon> -->
|
<!-- <v-icon>mdi-content-save</v-icon> -->
|
||||||
|
<!-- <v-btn :ripple="false" @click="dialog = !dialog">
|
||||||
<span>비밀번호 {{ isPassword }}</span>
|
<span>비밀번호 {{ isPassword }}</span>
|
||||||
</v-btn>
|
</v-btn> -->
|
||||||
|
<a-button :ripple="false" @click="dialog = !dialog" class="ant-btn-outlined">
|
||||||
|
<!-- <v-icon>mdi-content-save</v-icon> -->
|
||||||
|
비밀번호 {{ isPassword }}
|
||||||
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
@ -48,7 +52,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model.trim="firstPswd"
|
v-model.trim="firstPswd"
|
||||||
class="v-input__custom"
|
class="v-input-popup__custom"
|
||||||
type="password"
|
type="password"
|
||||||
:readonly="!isFocused"
|
:readonly="!isFocused"
|
||||||
@focus="isFocused = true"
|
@focus="isFocused = true"
|
||||||
@ -61,7 +65,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model.trim="secondPswd"
|
v-model.trim="secondPswd"
|
||||||
class="v-input__custom"
|
class="v-input-popup__custom"
|
||||||
type="password"
|
type="password"
|
||||||
:readonly="!isFocused"
|
:readonly="!isFocused"
|
||||||
@focus="isFocused = true"
|
@focus="isFocused = true"
|
||||||
@ -72,8 +76,15 @@
|
|||||||
<v-divider></v-divider>
|
<v-divider></v-divider>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn color="primary" dark @click="setUpdate()">확인</v-btn>
|
<!-- <v-btn color="primary" dark @click="setUpdate()">확인</v-btn> -->
|
||||||
<v-btn color="primary" dark @click="close()">닫기</v-btn>
|
<div>
|
||||||
|
<a-button @click="close()" class="btn-default">삭제</a-button>
|
||||||
|
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
||||||
|
확인
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
<!-- <v-btn color="primary" dark @click="close()">닫기</v-btn> -->
|
||||||
|
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-dialog>
|
</v-dialog>
|
||||||
@ -135,8 +146,10 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
console.log(value)
|
||||||
},
|
},
|
||||||
set(value) {
|
set(value) {
|
||||||
|
console.log(value)
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<fullscreen :fullscreen.sync="fullscreen">
|
<fullscreen :fullscreen.sync="fullscreen">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<v-row class="mx-0">
|
<v-row class="mx-0">
|
||||||
<div class="head-logo pl-4">
|
<div class="head-logo pl-4 d-flex gap-3">
|
||||||
<router-link class="home" :to="myHome.root">
|
<router-link class="home" :to="myHome.root">
|
||||||
<div class="lnb-logo">
|
<div class="lnb-logo">
|
||||||
<img v-if="isDarkMode" src="@/assets/images/logo_dm.png" />
|
<img v-if="isDarkMode" src="@/assets/images/logo_dm.png" />
|
||||||
@ -13,9 +13,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- <div class="lnb-logo">FEMS</div>-->
|
<!-- <div class="lnb-logo">FEMS</div>-->
|
||||||
</router-link>
|
</router-link>
|
||||||
|
<div class="align-center d-flex">
|
||||||
|
<ThemeSwitch style="margin-right: 20px" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<v-col col="1" class="d-flex justify-end py-4 px-6 flex-row" style="gap: 8px;">
|
<v-col col="1" class="d-flex justify-end py-4 px-6 flex-row" style="gap: 8px;">
|
||||||
<ThemeSwitch style="margin-right: 20px" />
|
|
||||||
<v-menu offset-y>
|
<v-menu offset-y>
|
||||||
<template v-slot:activator="{ on, attrs }">
|
<template v-slot:activator="{ on, attrs }">
|
||||||
<a-button :ripple="false" tile class="btn-header" v-bind="attrs" v-on="on">
|
<a-button :ripple="false" tile class="btn-header" v-bind="attrs" v-on="on">
|
||||||
@ -26,9 +28,7 @@
|
|||||||
<span class="body-2">닫기</span>
|
<span class="body-2">닫기</span>
|
||||||
<v-icon size="20">mdi-chevron-down</v-icon></a-button> -->
|
<v-icon size="20">mdi-chevron-down</v-icon></a-button> -->
|
||||||
</template>
|
</template>
|
||||||
<v-list class="py-2 btn-close-menu-list" :style="{
|
<v-list class="py-2 btn-close-menu-list">
|
||||||
backgroundColor: isDarkMode ? '#144985' : '#3f4d7d',
|
|
||||||
}">
|
|
||||||
<v-list-item class="px-2">
|
<v-list-item class="px-2">
|
||||||
<v-list-item-title @click="delAllTabsData()" class="body-2">전체 닫기</v-list-item-title>
|
<v-list-item-title @click="delAllTabsData()" class="body-2">전체 닫기</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
@ -54,9 +54,7 @@
|
|||||||
<span class="body-2">즐겨찾기</span>
|
<span class="body-2">즐겨찾기</span>
|
||||||
<v-icon size="20">mdi-chevron-down</v-icon></a-button> -->
|
<v-icon size="20">mdi-chevron-down</v-icon></a-button> -->
|
||||||
</template>
|
</template>
|
||||||
<v-list v-if="myMenuList.length > 0" class="py-2 btn-close-menu-list" :style="{
|
<v-list v-if="myMenuList.length > 0" class="py-2 btn-close-menu-list">
|
||||||
backgroundColor: isDarkMode ? '#144985' : '#3f4d7d',
|
|
||||||
}">
|
|
||||||
<v-list-item v-for="item in myMenuList" :key="item.menuId" class="px-2" style="cursor: pointer">
|
<v-list-item v-for="item in myMenuList" :key="item.menuId" class="px-2" style="cursor: pointer">
|
||||||
<v-list-item-title @click="moveToMyMenu(item.url, item.menuId, item.prgmId)" class="body-2">{{
|
<v-list-item-title @click="moveToMyMenu(item.url, item.menuId, item.prgmId)" class="body-2">{{
|
||||||
item.menuNm
|
item.menuNm
|
||||||
@ -67,7 +65,9 @@
|
|||||||
<a-button id="refresh" 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>
|
<span class="material-icons" style="font-size: 17px">star</span>
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button id="refresh" class="btn-header" @click="addBookMark" v-if="bookmarkBtn == 0">
|
<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>
|
<span class="material-icons" style="font-size: 17px">star_border</span>
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
@ -102,7 +102,9 @@
|
|||||||
<img v-else src="@/assets/images/logo_lm.png" />
|
<img v-else src="@/assets/images/logo_lm.png" />
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="lnb-logo">FEMS</div>-->
|
<!-- <div class="lnb-logo">FEMS</div>-->
|
||||||
|
|
||||||
</router-link>
|
</router-link>
|
||||||
|
<ThemeSwitch style="margin-right: 20px" />
|
||||||
<v-app-bar-nav-icon ref="appbarnavicon" id="appbarnavicon" @click.stop="miniVariant = !miniVariant"
|
<v-app-bar-nav-icon ref="appbarnavicon" id="appbarnavicon" @click.stop="miniVariant = !miniVariant"
|
||||||
@click="updateTreeview" :style="{
|
@click="updateTreeview" :style="{
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: 'transparent',
|
||||||
@ -164,7 +166,6 @@
|
|||||||
<v-icon size="20" class="ml-2" v-if="closable" @click.stop="onCloseTab(to)">mdi-close</v-icon>
|
<v-icon size="20" class="ml-2" v-if="closable" @click.stop="onCloseTab(to)">mdi-close</v-icon>
|
||||||
</template>
|
</template>
|
||||||
<template #end v-if="false">
|
<template #end v-if="false">
|
||||||
<ThemeSwitch style="margin-right: 20px" />
|
|
||||||
<v-menu offset-y>
|
<v-menu offset-y>
|
||||||
<template v-slot:activator="{ on, attrs }">
|
<template v-slot:activator="{ on, attrs }">
|
||||||
<!-- <v-btn :ripple="false" tile class="btn-close" v-bind="attrs" v-on="on">
|
<!-- <v-btn :ripple="false" tile class="btn-close" v-bind="attrs" v-on="on">
|
||||||
@ -175,9 +176,7 @@
|
|||||||
<span class="body-2">닫기</span>
|
<span class="body-2">닫기</span>
|
||||||
<v-icon size="20">mdi-chevron-down</v-icon></a-button>
|
<v-icon size="20">mdi-chevron-down</v-icon></a-button>
|
||||||
</template>
|
</template>
|
||||||
<v-list class="py-2 btn-close-menu-list" :style="{
|
<v-list class="py-2 btn-close-menu-list" >
|
||||||
backgroundColor: isDarkMode ? '#144985' : '#3f4d7d',
|
|
||||||
}">
|
|
||||||
<v-list-item class="px-2">
|
<v-list-item class="px-2">
|
||||||
<v-list-item-title @click="delAllTabsData()" class="body-2">전체 닫기</v-list-item-title>
|
<v-list-item-title @click="delAllTabsData()" class="body-2">전체 닫기</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
@ -203,9 +202,7 @@
|
|||||||
<span class="body-2">즐겨찾기</span>
|
<span class="body-2">즐겨찾기</span>
|
||||||
<v-icon size="20">mdi-chevron-down</v-icon></a-button>
|
<v-icon size="20">mdi-chevron-down</v-icon></a-button>
|
||||||
</template>
|
</template>
|
||||||
<v-list v-if="myMenuList.length > 0" class="py-2 btn-close-menu-list" :style="{
|
<v-list v-if="myMenuList.length > 0" class="py-2 btn-close-menu-list" >
|
||||||
backgroundColor: isDarkMode ? '#144985' : '#3f4d7d',
|
|
||||||
}">
|
|
||||||
<v-list-item v-for="item in myMenuList" :key="item.menuId" class="px-2" style="cursor: pointer">
|
<v-list-item v-for="item in myMenuList" :key="item.menuId" class="px-2" style="cursor: pointer">
|
||||||
<v-list-item-title @click="moveToMyMenu(item.url, item.menuId, item.prgmId)" class="body-2">{{
|
<v-list-item-title @click="moveToMyMenu(item.url, item.menuId, item.prgmId)" class="body-2">{{
|
||||||
item.menuNm
|
item.menuNm
|
||||||
|
@ -4,13 +4,14 @@
|
|||||||
<v-row ref="searchFilter">
|
<v-row ref="searchFilter">
|
||||||
<v-col :cols="12">
|
<v-col :cols="12">
|
||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="end" no-gutters>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<!-- 사업장 -->
|
<!-- 사업장 -->
|
||||||
<component
|
<component
|
||||||
:is="'SelectBlocMstr'"
|
:is="'SelectBlocMstr'"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
:sendParam="{ comId }"
|
:sendParam="{ comId }"
|
||||||
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
<!-- <component
|
<!-- <component
|
||||||
:is="'selectCodeList'"
|
:is="'selectCodeList'"
|
||||||
@ -35,6 +36,7 @@
|
|||||||
label="로그인ID"
|
label="로그인ID"
|
||||||
valueNm="userLoginId"
|
valueNm="userLoginId"
|
||||||
:searchOption="true"
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
@ -43,10 +45,11 @@
|
|||||||
label="사용자명"
|
label="사용자명"
|
||||||
valueNm="userNm"
|
valueNm="userNm"
|
||||||
:searchOption="true"
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3" class="text-right">
|
<v-col :cols="3" class="text-right">
|
||||||
<BtnSearch />
|
<BtnSearch size="large"/>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card>
|
</v-card>
|
||||||
@ -76,6 +79,7 @@
|
|||||||
@getRowsData="getRowData"
|
@getRowsData="getRowData"
|
||||||
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||||
:selectedRowDataWatchFlag="true"
|
:selectedRowDataWatchFlag="true"
|
||||||
|
:dataPath="dataPathMock"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -303,10 +307,40 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async init() {
|
async init() {
|
||||||
await this.gridInit();
|
this.gridInit();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
gridInitTest() {
|
||||||
|
const rowGrid = {
|
||||||
|
column: [
|
||||||
|
{ header: '사용자No', name: 'userNo', align: 'center', hidden: true },
|
||||||
|
{ header: '사용자명', name: 'userNm' },
|
||||||
|
{ header: '사용자ID', name: 'userLoginId' },
|
||||||
|
{ header: '사용자비밀번호', name: 'userPswd', hidden: true },
|
||||||
|
{ header: '사업장', name: 'blocId', hidden: true },
|
||||||
|
{ header: 'email', name: 'email', hidden: true },
|
||||||
|
{ header: '등록자NO', name: 'regUserNo', hidden: true },
|
||||||
|
{ header: '등록일시', name: 'regDttm', hidden: true },
|
||||||
|
{ header: '수정자NO', name: 'procUserNo', hidden: true },
|
||||||
|
{ header: '수정일시', name: 'procDttm', hidden: true },
|
||||||
|
{ header: 'comId', name: 'comId', hidden: true },
|
||||||
|
{ header: 'deptId', name: 'deptId', hidden: true },
|
||||||
|
],
|
||||||
|
data: dataMockExample,
|
||||||
|
defaultRow: dataMockExample,
|
||||||
|
option: [],
|
||||||
|
}
|
||||||
|
this.dataPathMock = {rowGrid};
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.loadGrid = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
// 사용자 리스트 그리드 세팅
|
// 사용자 리스트 그리드 세팅
|
||||||
gridInit() {
|
gridInit() {
|
||||||
|
|
||||||
|
// this.gridInitTest(); return
|
||||||
|
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 90;
|
const gridHeight = this.$refs.gridParent.offsetHeight - 90;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
@ -937,7 +971,10 @@ const myDetail = blocCdList => {
|
|||||||
elseDisabled: 'I', // 선택적 disabled => rowStat 상태가 해당 값이 아닐경우 true
|
elseDisabled: 'I', // 선택적 disabled => rowStat 상태가 해당 값이 아닐경우 true
|
||||||
readonly: true,
|
readonly: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
required: false,
|
required: false,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -946,7 +983,10 @@ const myDetail = blocCdList => {
|
|||||||
label: '사용자ID',
|
label: '사용자ID',
|
||||||
valueNm: 'userLoginId',
|
valueNm: 'userLoginId',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -956,7 +996,10 @@ const myDetail = blocCdList => {
|
|||||||
valueNm: 'userPswd',
|
valueNm: 'userPswd',
|
||||||
// disabled: true,
|
// disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -964,7 +1007,10 @@ const myDetail = blocCdList => {
|
|||||||
label: '사용자명',
|
label: '사용자명',
|
||||||
valueNm: 'userNm',
|
valueNm: 'userNm',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -972,7 +1018,10 @@ const myDetail = blocCdList => {
|
|||||||
label: '사업장',
|
label: '사업장',
|
||||||
valueNm: 'blocId',
|
valueNm: 'blocId',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
list: blocCdList.map(item => ({
|
list: blocCdList.map(item => ({
|
||||||
text: item.blocNm,
|
text: item.blocNm,
|
||||||
value: item.blocId,
|
value: item.blocId,
|
||||||
@ -984,7 +1033,10 @@ const myDetail = blocCdList => {
|
|||||||
label: 'email',
|
label: 'email',
|
||||||
valueNm: 'email',
|
valueNm: 'email',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'InputText',
|
type: 'InputText',
|
||||||
@ -992,7 +1044,10 @@ const myDetail = blocCdList => {
|
|||||||
valueNm: 'regUserNo',
|
valueNm: 'regUserNo',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1001,7 +1056,10 @@ const myDetail = blocCdList => {
|
|||||||
valueNm: 'regDttm',
|
valueNm: 'regDttm',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1010,7 +1068,10 @@ const myDetail = blocCdList => {
|
|||||||
valueNm: 'procUserNo',
|
valueNm: 'procUserNo',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1019,7 +1080,10 @@ const myDetail = blocCdList => {
|
|||||||
valueNm: 'procDttm',
|
valueNm: 'procDttm',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2',
|
labelCols: 12,
|
||||||
|
textCols: 12,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@ -1036,4 +1100,67 @@ function sha512(str) {
|
|||||||
.update(str)
|
.update(str)
|
||||||
.digest('hex');
|
.digest('hex');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const dataMockExample = [
|
||||||
|
{
|
||||||
|
userNo: 1,
|
||||||
|
userNm: '홍길동',
|
||||||
|
userLoginId: 'hong123',
|
||||||
|
userPswd: 'password123',
|
||||||
|
blocId: 'B001',
|
||||||
|
email: 'hong@example.com',
|
||||||
|
regUserNo: 100,
|
||||||
|
regDttm: '2025-07-01 10:00:00',
|
||||||
|
procUserNo: 101,
|
||||||
|
procDttm: '2025-07-15 14:30:00',
|
||||||
|
comId: 'C001',
|
||||||
|
deptId: 'D001'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
userNo: 2,
|
||||||
|
userNm: '김영희',
|
||||||
|
userLoginId: 'kimyh',
|
||||||
|
userPswd: 'securePass456',
|
||||||
|
blocId: 'B002',
|
||||||
|
email: 'kim@example.com',
|
||||||
|
regUserNo: 102,
|
||||||
|
regDttm: '2025-07-02 11:20:00',
|
||||||
|
procUserNo: 103,
|
||||||
|
procDttm: '2025-07-16 09:45:00',
|
||||||
|
comId: 'C002',
|
||||||
|
deptId: 'D002'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
userNo: 3,
|
||||||
|
userNm: '관리자',
|
||||||
|
userLoginId: 'user',
|
||||||
|
userPswd: 'securePass456',
|
||||||
|
blocId: 'B002',
|
||||||
|
email: 'kim@example.com',
|
||||||
|
regUserNo: 102,
|
||||||
|
regDttm: '2025-07-02 11:20:00',
|
||||||
|
procUserNo: 103,
|
||||||
|
procDttm: '2025-07-16 09:45:00',
|
||||||
|
comId: 'C002',
|
||||||
|
deptId: 'D002'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
userNo: 4,
|
||||||
|
userNm: '사용자',
|
||||||
|
userLoginId: 'admin',
|
||||||
|
userPswd: 'securePass456',
|
||||||
|
blocId: 'B002',
|
||||||
|
email: 'kim@example.com',
|
||||||
|
regUserNo: 102,
|
||||||
|
regDttm: '2025-07-02 11:20:00',
|
||||||
|
procUserNo: 103,
|
||||||
|
procDttm: '2025-07-16 09:45:00',
|
||||||
|
comId: 'C002',
|
||||||
|
deptId: 'D002'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -275,11 +275,11 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.v-btn {
|
.v-btn {
|
||||||
@if $theme == dark {
|
// @if $theme == dark {
|
||||||
background-color: #18579e;
|
// background-color: #18579e;
|
||||||
} @else {
|
// } @else {
|
||||||
background-color: #3f4d7d;
|
// background-color: #3f4d7d;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user