Compare commits
61 Commits
dev-luannv
...
dev-luannv
Author | SHA1 | Date | |
---|---|---|---|
a5c35809fa | |||
7e9bd540ed | |||
08637f6321 | |||
ce2c3c6c0e | |||
9d35712f58 | |||
41370aa4df | |||
d3022582b6 | |||
3c49bd36e9 | |||
c6eb2b57b2 | |||
5088769914 | |||
50698ac661 | |||
c815eae2ca | |||
8a9dfd9949 | |||
3155258656 | |||
68916550e5 | |||
1250b3d3af | |||
be1e0426e0 | |||
81a20d2851 | |||
6353ffba57 | |||
ed9150aae8 | |||
270279b0c2 | |||
9a42291cf4 | |||
c810139554 | |||
1a5ec4c6a3 | |||
856d0db130 | |||
6973321137 | |||
2cea34dbab | |||
f41bd1283a | |||
d5c59286ad | |||
287c68252b | |||
59ec2eda59 | |||
f6c071bdf0 | |||
24882a21a5 | |||
9aa9939a43 | |||
0760bde4e1 | |||
de99b30485 | |||
2802e93a44 | |||
68f3f0f381 | |||
39905e6f80 | |||
0825663c64 | |||
8d444eafcd | |||
71e90064a2 | |||
7d2bcb9496 | |||
84c7e61254 | |||
ffdc56b8f1 | |||
245444d5fa | |||
541ae86068 | |||
5c43496282 | |||
31413d1e48 | |||
dd24592eca | |||
e59078a19c | |||
bc96d2ae45 | |||
4fd2eac344 | |||
c40352e37c | |||
6583d68ea7 | |||
5859c5d681 | |||
d6dd66c4b3 | |||
f666110a1a | |||
d22b09cc47 | |||
ecfbeb3afa | |||
1ece377457 |
3
assets/images/SwapRight.svg
Normal file
3
assets/images/SwapRight.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.4369 8.15117L10.1947 5.30742C10.1538 5.25551 10.1017 5.21353 10.0423 5.18464C9.98285 5.15575 9.91764 5.14071 9.85156 5.14062H8.96562C8.87402 5.14062 8.82344 5.2459 8.87949 5.31836L10.8523 7.82031H2.57812C2.51797 7.82031 2.46875 7.86953 2.46875 7.92969V8.75C2.46875 8.81016 2.51797 8.85938 2.57812 8.85938H12.0924C12.4588 8.85938 12.6625 8.43828 12.4369 8.15117Z" fill="black" fill-opacity="0.45"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 514 B |
3
assets/images/SwapRight_Dark.svg
Normal file
3
assets/images/SwapRight_Dark.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.4369 8.15117L10.1947 5.30742C10.1538 5.25551 10.1017 5.21353 10.0423 5.18464C9.98285 5.15575 9.91764 5.14071 9.85156 5.14062H8.96562C8.87402 5.14062 8.82344 5.2459 8.87949 5.31836L10.8523 7.82031H2.57812C2.51797 7.82031 2.46875 7.86953 2.46875 7.92969V8.75C2.46875 8.81016 2.51797 8.85938 2.57812 8.85938H12.0924C12.4588 8.85938 12.6625 8.43828 12.4369 8.15117Z" fill="white" fill-opacity="0.45"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 514 B |
@ -9,6 +9,7 @@
|
|||||||
@import "./common/card.scss";
|
@import "./common/card.scss";
|
||||||
@import "./common/tabs.scss";
|
@import "./common/tabs.scss";
|
||||||
@import "./common/numericInput.scss";
|
@import "./common/numericInput.scss";
|
||||||
|
@import "./common/pagination.scss";
|
||||||
@import "./common/editor.scss";
|
@import "./common/editor.scss";
|
||||||
|
|
||||||
|
|
||||||
@ -127,219 +128,6 @@ a {
|
|||||||
background: #383f5d;
|
background: #383f5d;
|
||||||
}
|
}
|
||||||
|
|
||||||
// router-tab header
|
|
||||||
.router-tab {
|
|
||||||
height: 100%;
|
|
||||||
|
|
||||||
&__header {
|
|
||||||
align-items: flex-end;
|
|
||||||
height: 52px;
|
|
||||||
margin: -5px -5px 0;
|
|
||||||
padding: 0 20px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-bottom: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-page {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
& .router-tab__container {
|
|
||||||
overflow-y: auto;
|
|
||||||
height: calc(100vh - 105px);
|
|
||||||
max-height: calc(100vh - 105px);
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.router-tab__slot-end {
|
|
||||||
align-self: center;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
>* {
|
|
||||||
flex: none;
|
|
||||||
margin-right: 6px;
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-menu+.v-btn {
|
|
||||||
padding: 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-btn {
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.router-tab__nav {
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.router-tab__scroll {
|
|
||||||
height: 46px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.router-tab__item {
|
|
||||||
height: 46px;
|
|
||||||
padding: 0 !important;
|
|
||||||
|
|
||||||
&:first-child {
|
|
||||||
border-left: none
|
|
||||||
}
|
|
||||||
|
|
||||||
&>span {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.is-active {
|
|
||||||
border-bottom: 2px solid;
|
|
||||||
|
|
||||||
&>span {
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&+.router-tab__item {
|
|
||||||
margin-left: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
border:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// v-navigation-drawer (sidebar)
|
|
||||||
.v-navigation-drawer {
|
|
||||||
box-shadow: none; // 0 0 10px 0 rgba(0, 0, 0, 0.15);
|
|
||||||
|
|
||||||
&--fixed {
|
|
||||||
z-index: 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home {
|
|
||||||
display: block;
|
|
||||||
line-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__border {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__append {
|
|
||||||
padding: 0 17px;
|
|
||||||
margin: 0 0 26px;
|
|
||||||
|
|
||||||
>p {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview {
|
|
||||||
padding: 0 10px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
.v-treeview-node__level {
|
|
||||||
width: 9px;
|
|
||||||
}
|
|
||||||
|
|
||||||
>.v-treeview-node {
|
|
||||||
margin-top: 10px;
|
|
||||||
|
|
||||||
&:first-child {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
>.v-treeview-node__root {
|
|
||||||
min-height: 44px !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node {
|
|
||||||
.v-treeview-node__toggle {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
&>.v-treeview-node__root:before {
|
|
||||||
border-radius: 6px;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
&>.v-treeview-node__root:hover:before {
|
|
||||||
opacity: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node__children {
|
|
||||||
.v-treeview-node__label {
|
|
||||||
>button>span {
|
|
||||||
font-size: 0.875rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node--click[aria-expanded="true"] {
|
|
||||||
&>.v-treeview-node__root:before {
|
|
||||||
opacity: 0 !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__label {
|
|
||||||
&>button {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
// justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
& .anticon,
|
|
||||||
& .v-icon.mdi-chevron-down {
|
|
||||||
margin-left: auto;
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node--active {
|
|
||||||
&:before {
|
|
||||||
opacity: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.v-navigation-drawer--mini-variant {
|
|
||||||
.home {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node__content {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.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 {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-navigation-drawer__append {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.chart {
|
.chart {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -443,12 +231,46 @@ a {
|
|||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
min-width: 1000px;
|
min-width: 1000px;
|
||||||
|
|
||||||
.head-logo {
|
.ant-checkbox-wrapper.ant-checkbox-wraBapper-disabled,
|
||||||
gap: 8px;
|
.ant-checkbox-disabled .ant-checkbox-input
|
||||||
|
{
|
||||||
|
cursor: default !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-navigation-drawer {
|
.ant-checkbox-disabled .ant-checkbox-inner
|
||||||
background: map-deep-get($config, #{$theme}, "menu-bg-color");
|
{
|
||||||
|
background-color: #f5f5f5 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-list-item__title {
|
||||||
|
font-family: var(--desktop-normal-font-family, "Inter-Regular", sans-serif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-close-menu-list {
|
||||||
|
min-width: 100px;
|
||||||
|
border-color: transparent;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "btn-header-select-bg") !important;
|
||||||
|
|
||||||
|
.v-list-item {
|
||||||
|
min-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-list-item__title {
|
||||||
|
color: map-deep-get($config, #{$theme}, "btn-header-select-color") !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #46c0ff !important;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-datepicker-color {
|
||||||
|
color: map-deep-get($config, #{$theme}, "icon-datepicker-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
.head-logo {
|
||||||
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-window__container {
|
.v-window__container {
|
||||||
@ -461,52 +283,16 @@ a {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 4px;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-track {
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "scrollbar-track");
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb {
|
|
||||||
width: 4px;
|
|
||||||
border-radius: 3px;
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "scrollbar-thumb");
|
|
||||||
background-clip: content-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-box-label {
|
.search-box-label {
|
||||||
color: map-deep-get($config, #{$theme}, "v-select-label-color");
|
color: map-deep-get($config, #{$theme}, "v-select-label-color");
|
||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "header-backgroud");
|
|
||||||
border-bottom: 1px solid map-deep-get($config, #{$theme}, "v-header-border");
|
|
||||||
}
|
|
||||||
|
|
||||||
.custom-chart{
|
.custom-chart{
|
||||||
border: 1px solid map-deep-get($config, #{$theme}, "v-chart-border");
|
border: 1px solid map-deep-get($config, #{$theme}, "v-chart-border");
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-header {
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "v-btn-header-background");
|
|
||||||
border:1px solid map-deep-get($config, #{$theme}, "v-btn-header-border");
|
|
||||||
color: map-deep-get($config, #{$theme}, "v-btn-header-text");
|
|
||||||
}
|
|
||||||
|
|
||||||
.container--fluid {
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "container-fluid");
|
|
||||||
|
|
||||||
.menu-container {
|
|
||||||
height:calc(100vh - 60px);
|
|
||||||
overflow-y: auto;
|
|
||||||
border-right: 1px solid map-deep-get($config, #{$theme}, "v-sidebar-border") ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-icon {
|
.v-icon {
|
||||||
|
color: currentColor;
|
||||||
&.icon-orange {
|
&.icon-orange {
|
||||||
svg {
|
svg {
|
||||||
fill:map-deep-get($config,
|
fill:map-deep-get($config,
|
||||||
@ -527,7 +313,6 @@ a {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
&.custom-chevron-down {
|
&.custom-chevron-down {
|
||||||
|
|
||||||
fill:map-deep-get($config,
|
fill:map-deep-get($config,
|
||||||
@ -617,12 +402,6 @@ a {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-navigation-drawer__append {
|
|
||||||
>p {
|
|
||||||
color: map-deep-get($config, #{$theme}, "v-banner-border-color" ) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-bottom-1 {
|
.border-bottom-1 {
|
||||||
border-bottom: 1px solid map-deep-get($config, #{$theme}, "border-color");
|
border-bottom: 1px solid map-deep-get($config, #{$theme}, "border-color");
|
||||||
}
|
}
|
||||||
@ -659,130 +438,6 @@ a {
|
|||||||
height: 282px;
|
height: 282px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-treeview {
|
|
||||||
.v-treeview-node+.v-treeview-node {
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node__root+.v-treeview-node__children {
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&>.v-treeview-node {
|
|
||||||
.v-treeview-node__root {
|
|
||||||
border-radius: 8px;
|
|
||||||
&:hover {
|
|
||||||
background-color: map-deep-get($config, #{$theme}, "v-calendar-weekday-border-color" );
|
|
||||||
}
|
|
||||||
.v-treeview-node__content {
|
|
||||||
.v-treeview-node__label {
|
|
||||||
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-subroot-backgroundColor");
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-treeview-node__content {
|
|
||||||
.v-treeview-node__label {
|
|
||||||
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border");
|
|
||||||
}
|
|
||||||
|
|
||||||
.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 {
|
|
||||||
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" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.vc-weeks {
|
.vc-weeks {
|
||||||
>.vc-weekday {
|
>.vc-weekday {
|
||||||
background-color: map-deep-get($config,
|
background-color: map-deep-get($config,
|
||||||
@ -949,6 +604,7 @@ a {
|
|||||||
& th,
|
& th,
|
||||||
& td {
|
& td {
|
||||||
height: 48px;
|
height: 48px;
|
||||||
|
color: map-deep-get($config, #{$theme}, "tui-datepicker-calendar-color");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1186,6 +842,7 @@ a {
|
|||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
|
margin-top: 2px;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 139px;
|
width: 139px;
|
||||||
@ -1202,20 +859,11 @@ 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 {
|
|
||||||
color: map-deep-get($config, #{$theme}, "btn-header-select-color");
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: #46c0ff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-btn {
|
.v-btn {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
color: map-deep-get($config, #{$theme}, "btn-header-select-color") !important;
|
color: map-deep-get($config, #{$theme}, "btn-header-select-color") !important;
|
||||||
|
@ -140,6 +140,7 @@
|
|||||||
&.ant-btn-popup-default {
|
&.ant-btn-popup-default {
|
||||||
background:map-deep-get($config, #{$theme}, "ant-btn-popup-bg");
|
background:map-deep-get($config, #{$theme}, "ant-btn-popup-bg");
|
||||||
color:map-deep-get($config, #{$theme}, "ant-btn-popup-color");
|
color:map-deep-get($config, #{$theme}, "ant-btn-popup-color");
|
||||||
|
border: 1px solid map-deep-get($config, #{$theme}, "ant-btn-popup-border");
|
||||||
}
|
}
|
||||||
|
|
||||||
&.ant-btn-danger {
|
&.ant-btn-danger {
|
||||||
|
@ -21,11 +21,20 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&-no-scroll-y {
|
||||||
|
.tui-grid-rside-area {
|
||||||
|
.tui-grid-header-area,
|
||||||
|
.tui-grid-summary-area {
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&-rside-area {
|
&-rside-area {
|
||||||
|
|
||||||
.tui-grid-header-area,
|
.tui-grid-header-area,
|
||||||
.tui-grid-summary-area {
|
.tui-grid-summary-area {
|
||||||
margin-right: $scrollbar-width;
|
margin-right: $scrollbar-width !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,9 +71,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tui-grid-table{
|
.tui-grid-table {
|
||||||
|
|
||||||
.tui-grid-cell-header,
|
.tui-grid-cell-header,
|
||||||
.tui-grid-cell-has-input .tui-grid-cell-content {
|
.tui-grid-cell-has-input .tui-grid-cell-content {
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
@ -76,6 +87,62 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tui-grid-cell {
|
||||||
|
input[type=checkbox] {
|
||||||
|
margin-top: 8px;
|
||||||
|
appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border: 1px solid;
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 5px;
|
||||||
|
top: 1px;
|
||||||
|
width: 5px;
|
||||||
|
height: 9px;
|
||||||
|
border: solid;
|
||||||
|
border-width: 0 2px 2px 0;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-editing {
|
||||||
|
input[type=checkbox] {
|
||||||
|
margin-top: 8px;
|
||||||
|
appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border: 1px solid;
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 5px;
|
||||||
|
top: 1px;
|
||||||
|
width: 5px;
|
||||||
|
height: 9px;
|
||||||
|
border: solid;
|
||||||
|
border-width: 0 2px 2px 0;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.treeGrid {
|
.treeGrid {
|
||||||
@ -99,8 +166,46 @@
|
|||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
|
|
||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
.tui-grid-content-area{
|
.enrg-effc {
|
||||||
.tui-grid-header-area{
|
.tui-grid-rside-area {
|
||||||
|
.tui-grid-table {
|
||||||
|
tr {
|
||||||
|
|
||||||
|
td:nth-child(4),
|
||||||
|
td:nth-child(10) {
|
||||||
|
.tui-grid-cell-content {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid {
|
||||||
|
|
||||||
|
&-row-odd,
|
||||||
|
&-row-even {
|
||||||
|
&:hover {
|
||||||
|
|
||||||
|
>td:nth-child(4),
|
||||||
|
td:nth-child(10) {
|
||||||
|
.tui-grid-cell-content {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-content-area {
|
||||||
|
.tui-grid-header-area {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,8 +221,8 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-toggle-section{
|
.grid-toggle-section {
|
||||||
.tui-grid-rside-area{
|
.tui-grid-rside-area {
|
||||||
.tui-grid-body-area {
|
.tui-grid-body-area {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
|
|
||||||
@ -142,19 +247,49 @@
|
|||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-borderStyle-darkmode"
|
"tui-grid-cell-borderStyle-darkmode"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
input[type=checkbox] {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-border"
|
||||||
|
);
|
||||||
|
background: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-bg"
|
||||||
|
);
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
background-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-btn-primary-bg"
|
||||||
|
);
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-btn-primary-bg"
|
||||||
|
);
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-bg"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-border-line-right{
|
&-border-line-right {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-body-container{
|
&-body-container {
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
// position: relative;
|
// position: relative;
|
||||||
width: auto !important;
|
width: auto !important;
|
||||||
|
|
||||||
.tui-grid-table-container{
|
.tui-grid-table-container {
|
||||||
|
|
||||||
// width: 100% !important;
|
// width: 100% !important;
|
||||||
.tui-grid-table {
|
.tui-grid-table {
|
||||||
// width: 100% !important;
|
// width: 100% !important;
|
||||||
@ -166,6 +301,13 @@
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-editing {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"tui-grid-border-vertical-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-summary-area,
|
&-summary-area,
|
||||||
@ -285,7 +427,8 @@
|
|||||||
#{$theme},
|
#{$theme},
|
||||||
"ant-btn-primary-color"
|
"ant-btn-primary-color"
|
||||||
);
|
);
|
||||||
.radio-mark{
|
|
||||||
|
.radio-mark {
|
||||||
border-color: map-deep-get($config,
|
border-color: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
"arow-line-color"
|
"arow-line-color"
|
||||||
@ -294,6 +437,7 @@
|
|||||||
#{$theme},
|
#{$theme},
|
||||||
"arow-line-btn-bg-color"
|
"arow-line-btn-bg-color"
|
||||||
);
|
);
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -311,12 +455,49 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tui-grid-cell-content {
|
||||||
|
|
||||||
|
input[type='text'],
|
||||||
|
input[type='password'] {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"v-input-fieldset-color"
|
||||||
|
);
|
||||||
|
background: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"v-input-backgroundColor"
|
||||||
|
);
|
||||||
|
border-radius: 4px;
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"tui-grid-cell-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.tui-grid-layer-editing {
|
||||||
|
background: transparent;
|
||||||
|
// background:map-deep-get($config,
|
||||||
|
// #{$theme},
|
||||||
|
// "tui-grid-cell-insert-color"
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
&.custom-link {
|
||||||
|
color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"router-tab-item-active-color"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-cell {
|
&-cell {
|
||||||
&:last-child {
|
&:last-child {
|
||||||
padding-right: 1px;
|
padding-right: 1px;
|
||||||
border-right: 1px solid ;
|
border-right: 1px solid;
|
||||||
border-right-color: map-deep-get($config,
|
border-right-color: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-borderColor"
|
"tui-grid-cell-borderColor"
|
||||||
@ -358,7 +539,7 @@
|
|||||||
&-header-area {
|
&-header-area {
|
||||||
// background-color: none;
|
// background-color: none;
|
||||||
border: none;
|
border: none;
|
||||||
margin-right: 0 !important;
|
// margin-right: 0 !important;
|
||||||
background-color: map-deep-get($config,
|
background-color: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-backgroundColor"
|
"tui-grid-cell-backgroundColor"
|
||||||
@ -395,14 +576,14 @@
|
|||||||
background-color: map-deep-get($config,
|
background-color: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-insert-color"
|
"tui-grid-cell-insert-color"
|
||||||
);
|
) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.row-modify {
|
&.row-modify {
|
||||||
background-color: map-deep-get($config,
|
background-color: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-modify-color"
|
"tui-grid-cell-modify-color"
|
||||||
);
|
) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.row-removed {
|
&.row-removed {
|
||||||
@ -497,6 +678,7 @@
|
|||||||
|
|
||||||
&-tree-button-expand {
|
&-tree-button-expand {
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
|
|
||||||
.tui-grid-btn-tree {
|
.tui-grid-btn-tree {
|
||||||
i {
|
i {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
@ -516,6 +698,7 @@
|
|||||||
|
|
||||||
&-tree-button-collapse {
|
&-tree-button-collapse {
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
|
|
||||||
.tui-grid-btn-tree {
|
.tui-grid-btn-tree {
|
||||||
i {
|
i {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
@ -543,6 +726,37 @@
|
|||||||
&-frozen-border {
|
&-frozen-border {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&-layer-editing {
|
||||||
|
input[type=checkbox] {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-border"
|
||||||
|
);
|
||||||
|
background: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-bg"
|
||||||
|
);
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
background-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-btn-primary-bg"
|
||||||
|
);
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-btn-primary-bg"
|
||||||
|
);
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
border-color: map-deep-get($config,
|
||||||
|
#{$theme},
|
||||||
|
"ant-checkbox-bg"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[class*="tui-grid-tree-wrapper"] {
|
[class*="tui-grid-tree-wrapper"] {
|
||||||
|
50
assets/scss/common/pagination.scss
Normal file
50
assets/scss/common/pagination.scss
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
@each $theme in dark, light {
|
||||||
|
|
||||||
|
// @include theme($theme);
|
||||||
|
.v-application.#{$theme}-mode {
|
||||||
|
.pagination-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 12px 0;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-pagination-item,
|
||||||
|
.ant-pagination-prev,
|
||||||
|
.ant-pagination-next {
|
||||||
|
// border: none !important;
|
||||||
|
// box-shadow: none !important;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||||
|
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
.ant-pagination-item-link {
|
||||||
|
border: none;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-pagination-item-active {
|
||||||
|
border: 1px solid #1890ff !important;
|
||||||
|
color: #1890ff !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-pagination-options-size-changer {
|
||||||
|
.ant-select-selection {
|
||||||
|
border: 0.5px solid map-deep-get($config, #{$theme}, "v-input-fieldset-color") !important;
|
||||||
|
background: map-deep-get($config, #{$theme}, "paging-background") !important;
|
||||||
|
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-select-arrow {
|
||||||
|
color: map-deep-get($config, #{$theme}, "paging-text") !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-select-selection__rendered {
|
||||||
|
margin-right: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -66,6 +66,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.v-icon {
|
||||||
|
color: map-deep-get($config, #{$theme}, "v-icon-chevron-down") !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-input__custom {
|
.v-input__custom {
|
||||||
|
441
assets/scss/layout.scss
Normal file
441
assets/scss/layout.scss
Normal file
@ -0,0 +1,441 @@
|
|||||||
|
.loading {
|
||||||
|
z-index: 99;
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
//box-shadow: rgba(68, 67, 67, 0.9) 0 0 0 9999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-spinner {
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep {
|
||||||
|
.container--fluid {
|
||||||
|
.menu-container {
|
||||||
|
height:calc(100vh - 60px);
|
||||||
|
overflow-y: auto;
|
||||||
|
min-width: 200px;
|
||||||
|
|
||||||
|
// v-navigation-drawer (sidebar)
|
||||||
|
.v-navigation-drawer {
|
||||||
|
box-shadow: none; // 0 0 10px 0 rgba(0, 0, 0, 0.15);
|
||||||
|
min-width: 200px !important;
|
||||||
|
// transform: none !important;
|
||||||
|
// visibility: visible !important;
|
||||||
|
|
||||||
|
&--fixed {
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home {
|
||||||
|
display: block;
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__border {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__append {
|
||||||
|
padding: 0 17px;
|
||||||
|
margin: 0 0 26px;
|
||||||
|
|
||||||
|
>p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview {
|
||||||
|
padding: 0 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.v-treeview-node__level {
|
||||||
|
width: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
>.v-treeview-node {
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
>.v-treeview-node__root {
|
||||||
|
min-height: 44px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node {
|
||||||
|
.v-treeview-node__toggle {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&>.v-treeview-node__root:before {
|
||||||
|
border-radius: 6px;
|
||||||
|
z-index: -1;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
transition-duration: 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&>.v-treeview-node__root:hover:before {
|
||||||
|
opacity: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node__children {
|
||||||
|
.v-treeview-node__label {
|
||||||
|
>button>span {
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node--click[aria-expanded="true"] {
|
||||||
|
&>.v-treeview-node__root:before {
|
||||||
|
opacity: 0 !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__label {
|
||||||
|
&>button {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
// justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .anticon,
|
||||||
|
& .v-icon.mdi-chevron-down {
|
||||||
|
margin-left: auto;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node--active {
|
||||||
|
&:before {
|
||||||
|
opacity: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.v-navigation-drawer--mini-variant {
|
||||||
|
.home {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node__content {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-navigation-drawer__append {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// router-tab header
|
||||||
|
.router-tab {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
&__header {
|
||||||
|
align-items: flex-end;
|
||||||
|
height: 52px;
|
||||||
|
margin: -5px -5px 0;
|
||||||
|
padding: 0 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-bottom: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-page {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .router-tab__container {
|
||||||
|
overflow-y: auto;
|
||||||
|
height: calc(100vh - 110px);
|
||||||
|
max-height: calc(100vh - 115px);
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.router-tab__slot-end {
|
||||||
|
align-self: center;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
>* {
|
||||||
|
flex: none;
|
||||||
|
margin-right: 6px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-menu+.v-btn {
|
||||||
|
padding: 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-btn {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.router-tab__nav {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.router-tab__scroll {
|
||||||
|
height: 46px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.router-tab__item {
|
||||||
|
height: 46px;
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
border-left: none
|
||||||
|
}
|
||||||
|
|
||||||
|
&>span {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-active {
|
||||||
|
border-bottom: 2px solid;
|
||||||
|
&>span {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&+.router-tab__item {
|
||||||
|
margin-left: 16px;
|
||||||
|
}
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $theme in dark, light {
|
||||||
|
@include theme($theme);
|
||||||
|
|
||||||
|
.v-application.#{$theme}-mode {
|
||||||
|
::v-deep {
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "scrollbar-track");
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
width: 4px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "scrollbar-thumb");
|
||||||
|
background-clip: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "header-backgroud");
|
||||||
|
border-bottom: 1px solid map-deep-get($config, #{$theme}, "v-header-border");
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-header {
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "v-btn-header-background");
|
||||||
|
border:1px solid map-deep-get($config, #{$theme}, "v-btn-header-border");
|
||||||
|
color: map-deep-get($config, #{$theme}, "v-btn-header-text");
|
||||||
|
}
|
||||||
|
|
||||||
|
.container--fluid {
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "container-fluid");
|
||||||
|
.menu-container {
|
||||||
|
border-right: 1px solid map-deep-get($config, #{$theme}, "v-sidebar-border") ;
|
||||||
|
.v-navigation-drawer__append {
|
||||||
|
>p {
|
||||||
|
color: map-deep-get($config, #{$theme}, "v-banner-border-color" ) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-navigation-drawer {
|
||||||
|
background: map-deep-get($config, #{$theme}, "menu-bg-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview {
|
||||||
|
.v-treeview-node+.v-treeview-node {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node__root+.v-treeview-node__children {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&>.v-treeview-node {
|
||||||
|
.v-treeview-node__root {
|
||||||
|
border-radius: 8px;
|
||||||
|
&:hover {
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "v-calendar-weekday-border-color" );
|
||||||
|
}
|
||||||
|
.v-treeview-node__content {
|
||||||
|
.v-icon,
|
||||||
|
.v-treeview-node__label {
|
||||||
|
color: map-deep-get($config, #{$theme}, "tui-grid-title-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
.anticon.anticon-down {
|
||||||
|
color: map-deep-get($config, #{$theme}, "icon-datepicker-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-subroot-backgroundColor");
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node__content {
|
||||||
|
.v-treeview-node__label {
|
||||||
|
color: map-deep-get($config, #{$theme}, "v-treeview-node-label-active-border");
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-icon:first-child,
|
||||||
|
.v-icon:first-child::before,
|
||||||
|
.anticon.anticon-down {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-treeview-node__content {
|
||||||
|
.v-icon,
|
||||||
|
.v-icon::before {
|
||||||
|
color: map-deep-get($config, #{$theme}, "icon-datepicker-color");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&>[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.anticon-down {
|
||||||
|
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 {
|
||||||
|
|
||||||
|
*:hover,
|
||||||
|
:hover {
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
opacity: 1 !important;
|
||||||
|
border: 1px solid map-deep-get($config, #{$theme}, "v-input-textarea-border");
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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__content {
|
||||||
|
.v-treeview-node__label {
|
||||||
|
color: map-deep-get($config, #{$theme}, "card-default-color");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -113,7 +113,7 @@ $config: (
|
|||||||
tui-grid-cell-color: #FFFFFFD9,
|
tui-grid-cell-color: #FFFFFFD9,
|
||||||
tui-grid-cell-insert-color: #2B2111,
|
tui-grid-cell-insert-color: #2B2111,
|
||||||
tui-grid-cell-selected-color: #0A224F,
|
tui-grid-cell-selected-color: #0A224F,
|
||||||
tui-grid-cell-modify-color: #13636c,
|
tui-grid-cell-modify-color: #2B2111,
|
||||||
tui-grid-cell-removed-color: #2A1215,
|
tui-grid-cell-removed-color: #2A1215,
|
||||||
tui-grid-cell-disabled-color: rgb(170, 170, 170),
|
tui-grid-cell-disabled-color: rgb(170, 170, 170),
|
||||||
tui-grid-cell-hover-backgroundColor: #2d4571,
|
tui-grid-cell-hover-backgroundColor: #2d4571,
|
||||||
@ -181,6 +181,10 @@ $config: (
|
|||||||
ant-checkbox-border: #424242,
|
ant-checkbox-border: #424242,
|
||||||
ant-btn-popup-bg: #212224,
|
ant-btn-popup-bg: #212224,
|
||||||
ant-btn-popup-color: #FFFFFFD9,
|
ant-btn-popup-color: #FFFFFFD9,
|
||||||
|
ant-btn-popup-border: #424242,
|
||||||
|
paging-background: #212224,
|
||||||
|
paging-text: #FFFFFFD9,
|
||||||
|
icon-datepicker-color: #FFFFFF73,
|
||||||
),
|
),
|
||||||
light: (w-g5: $--color-gray_555,
|
light: (w-g5: $--color-gray_555,
|
||||||
g5-w: $--color-white,
|
g5-w: $--color-white,
|
||||||
@ -259,7 +263,7 @@ $config: (
|
|||||||
tui-grid-cell-color: #000000E0,
|
tui-grid-cell-color: #000000E0,
|
||||||
tui-grid-cell-insert-color: #FFFBE6,
|
tui-grid-cell-insert-color: #FFFBE6,
|
||||||
tui-grid-cell-selected-color: #E6F4FF,
|
tui-grid-cell-selected-color: #E6F4FF,
|
||||||
tui-grid-cell-modify-color: #e6f5f7,
|
tui-grid-cell-modify-color: #FFFBE6,
|
||||||
tui-grid-cell-removed-color: #FFF1F0,
|
tui-grid-cell-removed-color: #FFF1F0,
|
||||||
tui-grid-cell-hover-backgroundColor: #f5f5f5,
|
tui-grid-cell-hover-backgroundColor: #f5f5f5,
|
||||||
v-tabs-items-border-color: #0000000F,
|
v-tabs-items-border-color: #0000000F,
|
||||||
@ -325,5 +329,9 @@ $config: (
|
|||||||
ant-checkbox-border: #D9D9D9,
|
ant-checkbox-border: #D9D9D9,
|
||||||
ant-btn-popup-bg: #FFFFFF,
|
ant-btn-popup-bg: #FFFFFF,
|
||||||
ant-btn-popup-color: #000000E0,
|
ant-btn-popup-color: #000000E0,
|
||||||
|
ant-btn-popup-border: #D9D9D9,
|
||||||
|
paging-background: #FFFFFF,
|
||||||
|
paging-text: #000000E0,
|
||||||
|
icon-datepicker-color: #00000073,
|
||||||
),
|
),
|
||||||
);
|
);
|
@ -1,14 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-row class="search-box" align="center" no-gutters>
|
<v-row class="search-box" align="center" no-gutters>
|
||||||
<v-col v-if="label" :cols="labelCols">
|
<v-col v-if="label" :cols="labelCols" >
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
<v-icon v-if="iconShow" small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
|
<v-icon v-if="iconShow" small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</label>
|
</label>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="label ? textCols : ''">
|
<v-col :cols="label ? textCols : ''">
|
||||||
|
|
||||||
|
|
||||||
<a-checkbox v-model="chkValue" :disabled="disabledFlag" :readonly="readonly || false"
|
<a-checkbox v-model="chkValue" :disabled="disabledFlag" :readonly="readonly || false"
|
||||||
:required="required || false" @change="modifyValue">
|
:required="required || false" @change="modifyValue">
|
||||||
</a-checkbox>
|
</a-checkbox>
|
||||||
|
@ -19,15 +19,18 @@
|
|||||||
readonly
|
readonly
|
||||||
outlined
|
outlined
|
||||||
>
|
>
|
||||||
<template #append >
|
<!-- <template #append >
|
||||||
<v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
|
<v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
|
||||||
|
</template> -->
|
||||||
|
<template v-slot:append>
|
||||||
|
<a-icon v-show="!isRange" class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="startpicker-container" id="startpicker-container"></div>
|
<div ref="startpicker-container" id="startpicker-container"></div>
|
||||||
</template>
|
</template>
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
<div v-if="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
<div v-if="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
||||||
<img :src="arrowIcon" alt="">
|
<img :src="arrowIcon">
|
||||||
</div>
|
</div>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-show="isRange"
|
v-show="isRange"
|
||||||
@ -40,7 +43,9 @@
|
|||||||
outlined
|
outlined
|
||||||
>
|
>
|
||||||
<template #append>
|
<template #append>
|
||||||
<v-icon size="20">$icoCalendar</v-icon>
|
<div class="pr-1">
|
||||||
|
<a-icon class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="endpicker-container" id="endpicker-container"></div>
|
<div ref="endpicker-container" id="endpicker-container"></div>
|
||||||
@ -209,9 +214,9 @@ export default {
|
|||||||
},
|
},
|
||||||
arrowIcon() {
|
arrowIcon() {
|
||||||
if(this.isDarkMode){
|
if(this.isDarkMode){
|
||||||
return require('@/assets/images/arrow_datepicker_dm.png');
|
return require('@/assets/images/SwapRight_Dark.svg');
|
||||||
}
|
}
|
||||||
return require('@/assets/images/arrow_datepicker.png');
|
return require('@/assets/images/SwapRight.svg');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
@ -5,10 +5,7 @@
|
|||||||
<!-- <v-icon x-small :color="required ? '#fb8200' : 'primary'" class="mr-1"
|
<!-- <v-icon x-small :color="required ? '#fb8200' : 'primary'" class="mr-1"
|
||||||
>mdi-record-circle</v-icon
|
>mdi-record-circle</v-icon
|
||||||
> -->
|
> -->
|
||||||
<v-icon
|
<v-icon small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">
|
||||||
small
|
|
||||||
:class="['mr-1', required ? 'icon-orange' : 'icon-blue']"
|
|
||||||
>
|
|
||||||
$icoBulletPoint
|
$icoBulletPoint
|
||||||
</v-icon>
|
</v-icon>
|
||||||
{{ label }}
|
{{ label }}
|
||||||
@ -16,17 +13,11 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="label ? textCols : ''">
|
<v-col :cols="label ? textCols : ''">
|
||||||
<div class="datepicker-container">
|
<div class="datepicker-container">
|
||||||
<v-text-field
|
<v-text-field id="startpicker" ref="startpicker" v-model="fromDtValue"
|
||||||
id="startpicker"
|
:class="isRange ? 'v-input__custom half' : 'v-input__custom'" :hide-details="true" readonly
|
||||||
ref="startpicker"
|
outlined>
|
||||||
v-model="fromDtValue"
|
<template v-slot:append>
|
||||||
:class="isRange ? 'v-input__custom half' : 'v-input__custom'"
|
<a-icon v-show="!isRange" class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
:hide-details="true"
|
|
||||||
readonly
|
|
||||||
outlined
|
|
||||||
>
|
|
||||||
<template #append >
|
|
||||||
<v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
|
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="startpicker-container" id="startpicker-container"></div>
|
<div ref="startpicker-container" id="startpicker-container"></div>
|
||||||
@ -36,18 +27,13 @@
|
|||||||
<div v-show="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
<div v-show="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
||||||
<img :src="arrowIcon" alt="">
|
<img :src="arrowIcon" alt="">
|
||||||
</div>
|
</div>
|
||||||
<v-text-field
|
<v-text-field v-show="isRange" id="endpicker" ref="endpicker" v-model="toDtValue"
|
||||||
v-show="isRange"
|
:class="isRange ? 'v-input__custom half' : 'v-input__custom'" :hide-details="true" readonly
|
||||||
id="endpicker"
|
outlined>
|
||||||
ref="endpicker"
|
|
||||||
v-model="toDtValue"
|
|
||||||
:class="isRange ? 'v-input__custom half' : 'v-input__custom'"
|
|
||||||
:hide-details="true"
|
|
||||||
readonly
|
|
||||||
outlined
|
|
||||||
>
|
|
||||||
<template #append>
|
<template #append>
|
||||||
<v-icon size="20">$icoCalendar</v-icon>
|
<div class="pr-1">
|
||||||
|
<a-icon class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="endpicker-container" id="endpicker-container"></div>
|
<div ref="endpicker-container" id="endpicker-container"></div>
|
||||||
@ -91,9 +77,9 @@ export default {
|
|||||||
require: false,
|
require: false,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
isRangeOption:{
|
isRangeOption: {
|
||||||
type:Boolean,
|
type: Boolean,
|
||||||
require:false,
|
require: false,
|
||||||
default: true
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -177,21 +163,23 @@ export default {
|
|||||||
this.myOptions.viewFormat,
|
this.myOptions.viewFormat,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
toDtChange(){
|
toDtChange() {
|
||||||
return {
|
return {
|
||||||
isCheck:this.searchParam.isCheck ,
|
isCheck: this.searchParam.isCheck,
|
||||||
toDt : Utility.setFormatDate(
|
toDt: Utility.setFormatDate(
|
||||||
this.searchParam.toDt,
|
this.searchParam.toDt,
|
||||||
this.myOptions.viewFormat,
|
this.myOptions.viewFormat,
|
||||||
)};
|
)
|
||||||
|
};
|
||||||
},
|
},
|
||||||
fromDtChange(){
|
fromDtChange() {
|
||||||
return {
|
return {
|
||||||
isCheck:this.searchParam.isCheck ,
|
isCheck: this.searchParam.isCheck,
|
||||||
fromDt : Utility.setFormatDate(
|
fromDt: Utility.setFormatDate(
|
||||||
this.searchParam.fromDt,
|
this.searchParam.fromDt,
|
||||||
this.myOptions.viewFormat,
|
this.myOptions.viewFormat,
|
||||||
)};
|
)
|
||||||
|
};
|
||||||
},
|
},
|
||||||
defaultRange() {
|
defaultRange() {
|
||||||
return this.searchParam.defaultRange
|
return this.searchParam.defaultRange
|
||||||
@ -205,10 +193,10 @@ export default {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
arrowIcon() {
|
arrowIcon() {
|
||||||
if(this.isDarkMode){
|
if (this.isDarkMode) {
|
||||||
return require('@/assets/images/arrow_datepicker_dm.png');
|
return require('@/assets/images/SwapRight_Dark.svg');
|
||||||
}
|
}
|
||||||
return require('@/assets/images/arrow_datepicker.png');
|
return require('@/assets/images/SwapRight.svg');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -242,24 +230,24 @@ export default {
|
|||||||
this.endDatepickerInstance.setDate(new Date(newVal));
|
this.endDatepickerInstance.setDate(new Date(newVal));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fromDtChange:{
|
fromDtChange: {
|
||||||
deep:true,
|
deep: true,
|
||||||
handler(){
|
handler() {
|
||||||
if(this.fromDtChange.isCheck){
|
if (this.fromDtChange.isCheck) {
|
||||||
this.fromDtChanged(this.fromDtChange.fromDt);
|
this.fromDtChanged(this.fromDtChange.fromDt);
|
||||||
this.setPageData({
|
this.setPageData({
|
||||||
isCheck : false
|
isCheck: false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
toDtChange:{
|
toDtChange: {
|
||||||
deep:true,
|
deep: true,
|
||||||
handler(){
|
handler() {
|
||||||
if(this.toDtChange.isCheck){
|
if (this.toDtChange.isCheck) {
|
||||||
this.toDtChanged(this.toDtChange.toDt);
|
this.toDtChanged(this.toDtChange.toDt);
|
||||||
this.setPageData({
|
this.setPageData({
|
||||||
isCheck : false
|
isCheck: false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,6 +412,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
background-color: #edf4fc;
|
background-color: #edf4fc;
|
||||||
|
|
||||||
.tui-timepicker-column.tui-timepicker-colon {
|
.tui-timepicker-column.tui-timepicker-colon {
|
||||||
color: #000 !important;
|
color: #000 !important;
|
||||||
}
|
}
|
||||||
|
@ -158,9 +158,8 @@ export default {
|
|||||||
}, 500);
|
}, 500);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {},
|
created() { },
|
||||||
async mounted() {
|
async mounted() {
|
||||||
// console.log(this.dataPath);
|
|
||||||
if (this.gridName) {
|
if (this.gridName) {
|
||||||
this.gridInstance = this.$refs['tuigrid' + this.gridName];
|
this.gridInstance = this.$refs['tuigrid' + this.gridName];
|
||||||
|
|
||||||
@ -174,6 +173,10 @@ export default {
|
|||||||
this.gridScrollTop = e.target.scrollTop;
|
this.gridScrollTop = e.target.scrollTop;
|
||||||
this.gridScrollLeft = e.target.scrollLeft;
|
this.gridScrollLeft = e.target.scrollLeft;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!(this.scrollBody.scrollHeight > this.scrollBody.clientHeight)) {
|
||||||
|
this.gridInstance.$el.getElementsByClassName('tui-grid-content-area')[0].classList.add('tui-grid-no-scroll-y');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -268,12 +271,9 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
focusChangeEvt(e) {
|
focusChangeEvt(e) {
|
||||||
// console.log('focusChangeEvt1...')
|
|
||||||
if (this.preventFocusChangeEvent(e)) {
|
if (this.preventFocusChangeEvent(e)) {
|
||||||
// console.log('prevent focusChangeEvt')
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// console.log('focusChangeEvt2...')
|
|
||||||
// cell 선택시 row 선택 method
|
// cell 선택시 row 선택 method
|
||||||
if (e.rowKey > -1) {
|
if (e.rowKey > -1) {
|
||||||
this.$emit(
|
this.$emit(
|
||||||
@ -288,7 +288,6 @@ export default {
|
|||||||
this.sendSelectedRowData(e.rowKey);
|
this.sendSelectedRowData(e.rowKey);
|
||||||
},
|
},
|
||||||
startEditing(e) {
|
startEditing(e) {
|
||||||
// console.log('startEditing1...')
|
|
||||||
if (this.preventFocusChangeEvent(e)) {
|
if (this.preventFocusChangeEvent(e)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -298,10 +297,9 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log('startEditing2...')
|
|
||||||
if (this.editorGrid && e.rowKey >= 0) {
|
if (this.editorGrid && e.rowKey >= 0) {
|
||||||
this.editorStartKey = e.rowKey;
|
this.editorStartKey = e.rowKey;
|
||||||
this.gridInstance.invoke('startEditing', e.rowKey, e.columnName);
|
this.gridInstance.invoke('startEditing', e.rowKey, e.columnName, 'row-modify');
|
||||||
this.$emit(
|
this.$emit(
|
||||||
'getRowsData',
|
'getRowsData',
|
||||||
this.gridInstance.invoke('getRow', e.rowKey),
|
this.gridInstance.invoke('getRow', e.rowKey),
|
||||||
@ -312,7 +310,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async editingFinish(e) {
|
async editingFinish(e) {
|
||||||
// console.log("Editing END E::", e);
|
|
||||||
// editor 간 이동시 수정되는 문제 수정
|
// editor 간 이동시 수정되는 문제 수정
|
||||||
// e.rowEditingFg: grid의 한 row를 한번에 수정할 시 각각의 cell 마다 click 이벤트가 발생하지 않아 this.editorStartKey값이 제대로 입력 되지 않는 경우를 대비하여 만든 Fg
|
// e.rowEditingFg: grid의 한 row를 한번에 수정할 시 각각의 cell 마다 click 이벤트가 발생하지 않아 this.editorStartKey값이 제대로 입력 되지 않는 경우를 대비하여 만든 Fg
|
||||||
if (this.editorGrid) {
|
if (this.editorGrid) {
|
||||||
@ -335,7 +332,6 @@ export default {
|
|||||||
rowKey: rowIdxKey,
|
rowKey: rowIdxKey,
|
||||||
};
|
};
|
||||||
const isBaseRow = this.isBaseDataRow(rowIdxKey);
|
const isBaseRow = this.isBaseDataRow(rowIdxKey);
|
||||||
// console.log("END E::", rowIdxKey, e);
|
|
||||||
const rowStat = this.gridInstance.invoke('getRow', rowIdxKey).rowStat;
|
const rowStat = this.gridInstance.invoke('getRow', rowIdxKey).rowStat;
|
||||||
if (rowStat == 'D') {
|
if (rowStat == 'D') {
|
||||||
this.gridInstance.invoke(
|
this.gridInstance.invoke(
|
||||||
@ -516,10 +512,7 @@ export default {
|
|||||||
return item.rowKey == data.rowKey;
|
return item.rowKey == data.rowKey;
|
||||||
});
|
});
|
||||||
let count = 0;
|
let count = 0;
|
||||||
// console.log("dataKeyArr", dataKeyArr);
|
|
||||||
// console.log("selectedRowData", selectedRowData);
|
|
||||||
for (let i = 0; i < dataKeyArr.length; i++) {
|
for (let i = 0; i < dataKeyArr.length; i++) {
|
||||||
// console.log(dataKeyArr[i], selectedRowData[dataKeyArr[i]], rowData[dataKeyArr[i]]);
|
|
||||||
if (selectedRowData[dataKeyArr[i]] == rowData[dataKeyArr[i]]) {
|
if (selectedRowData[dataKeyArr[i]] == rowData[dataKeyArr[i]]) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
@ -589,7 +582,6 @@ export default {
|
|||||||
delete item.rowKey;
|
delete item.rowKey;
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
// console.log("dataArr::", dataArr, saveTargetRows);
|
|
||||||
return dataArr;
|
return dataArr;
|
||||||
},
|
},
|
||||||
getData() {
|
getData() {
|
||||||
@ -602,22 +594,20 @@ export default {
|
|||||||
return this.gridInstance.invoke('getCheckedRowKeys');
|
return this.gridInstance.invoke('getCheckedRowKeys');
|
||||||
},
|
},
|
||||||
setCheck(list) {
|
setCheck(list) {
|
||||||
// console.log("setCheck:: ", list);
|
|
||||||
list.map(item => this.gridInstance.invoke('check', item));
|
list.map(item => this.gridInstance.invoke('check', item));
|
||||||
},
|
},
|
||||||
refreshLayout() {
|
refreshLayout() {
|
||||||
// console.log("---------DEBUG---refreshLayout: ");
|
setTimeout(() => {
|
||||||
this.gridInstance.invoke('refreshLayout');
|
this.gridInstance.invoke('refreshLayout');
|
||||||
|
}, 150);
|
||||||
|
// this.gridInstance.invoke('refreshLayout');
|
||||||
},
|
},
|
||||||
refreshGrid(){
|
refreshGrid() {
|
||||||
// console.log("refreshLayout",this.$refs['tuigrid' + this.gridName])
|
|
||||||
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
|
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
|
||||||
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
|
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
|
||||||
// var containerEl = document.querySelector('.tui-grid-container')
|
// var containerEl = document.querySelector('.tui-grid-container')
|
||||||
var parentEl = containerEl.parentElement;
|
var parentEl = containerEl.parentElement;
|
||||||
|
|
||||||
// console.log("---------DEBUG---containerEl: ",containerEl);
|
|
||||||
// console.log('---------DEBUG---parentEl: ', parentEl)
|
|
||||||
// function refreshLayout(store, containerEl, parentEl) {
|
// function refreshLayout(store, containerEl, parentEl) {
|
||||||
var dimension = store.dimension;
|
var dimension = store.dimension;
|
||||||
var autoWidth = dimension.autoWidth, fitToParentHeight = dimension.fitToParentHeight;
|
var autoWidth = dimension.autoWidth, fitToParentHeight = dimension.fitToParentHeight;
|
||||||
@ -630,11 +620,6 @@ export default {
|
|||||||
this.setWidth(store, clientWidth, autoWidth);
|
this.setWidth(store, clientWidth, autoWidth);
|
||||||
// store.dimension.autoWidth = autoWidth;
|
// store.dimension.autoWidth = autoWidth;
|
||||||
// store.dimension.width = clientWidth;
|
// store.dimension.width = clientWidth;
|
||||||
// console.log("###",getComputedStyle(parentEl));
|
|
||||||
// console.log("fitToParentHeight : ",fitToParentHeight);
|
|
||||||
// console.log("parentEl : ",parentEl)
|
|
||||||
// console.log("parentEl.clientHeight" , parentEl.clientHeight)
|
|
||||||
// console.log("clientHeight : ",clientHeight);
|
|
||||||
if (parentEl && parentEl.clientHeight !== clientHeight) {
|
if (parentEl && parentEl.clientHeight !== clientHeight) {
|
||||||
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
|
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
|
||||||
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
|
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
|
||||||
@ -642,25 +627,20 @@ export default {
|
|||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
setOffsetTop(store, offsetTop) {
|
setOffsetTop(store, offsetTop) {
|
||||||
// console.log("---------DEBUG---setOffsetTop: ");
|
|
||||||
store.dimension.offsetTop = offsetTop;
|
store.dimension.offsetTop = offsetTop;
|
||||||
},
|
},
|
||||||
setWidth(_a, width, autoWidth) {
|
setWidth(_a, width, autoWidth) {
|
||||||
// console.log("---------DEBUG---setWidth: ");
|
|
||||||
var dimension = _a.dimension;
|
var dimension = _a.dimension;
|
||||||
dimension.autoWidth = autoWidth;
|
dimension.autoWidth = autoWidth;
|
||||||
dimension.width = width;
|
dimension.width = width;
|
||||||
},
|
},
|
||||||
setHeaderHeight(store, height) {
|
setHeaderHeight(store, height) {
|
||||||
// console.log("---------DEBUG---setHeaderHeight: ");
|
|
||||||
store.dimension.headerHeight = height;
|
store.dimension.headerHeight = height;
|
||||||
},
|
},
|
||||||
setOffsetLeft(store, offsetLeft) {
|
setOffsetLeft(store, offsetLeft) {
|
||||||
// console.log("---------DEBUG---setOffsetLeft: ");
|
|
||||||
store.dimension.offsetLeft = offsetLeft;
|
store.dimension.offsetLeft = offsetLeft;
|
||||||
},
|
},
|
||||||
setHeight(_a,height){
|
setHeight(_a, height) {
|
||||||
// console.log("---------DEBUG---setHeight: ");
|
|
||||||
var dimension = _a.dimension;
|
var dimension = _a.dimension;
|
||||||
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
|
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
|
||||||
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
|
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
|
||||||
@ -689,7 +669,6 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// resetData() {
|
// resetData() {
|
||||||
// // console.log("resetData = ", this.tuigridProps.data);
|
|
||||||
// this.$refs.tuigrid.invoke("resetData", this.tuigridProps.data);
|
// this.$refs.tuigrid.invoke("resetData", this.tuigridProps.data);
|
||||||
// },
|
// },
|
||||||
},
|
},
|
||||||
|
93
components/common/Pagination.vue
Normal file
93
components/common/Pagination.vue
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="custom-pagination">
|
||||||
|
<a-pagination
|
||||||
|
:current="pageNum"
|
||||||
|
:total="totalCount"
|
||||||
|
:page-size="itemsPerPage"
|
||||||
|
:show-size-changer="useLimit"
|
||||||
|
:page-size-options="itemsPerPageArray.map(String)"
|
||||||
|
@change="handlePageChange"
|
||||||
|
@showSizeChange="changePageLeng"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
useLimit: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
|
totalCount: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
pageNum: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
limit: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
itemsPerPageArray: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [20, 50, 100],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
moveToPage: '',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
page: function() {
|
||||||
|
return this.numberOfPages + '-' + this.lastPage;
|
||||||
|
},
|
||||||
|
lastPage: function() {
|
||||||
|
//grid data가 없을 경우 1 리턴
|
||||||
|
if (this.totalCount == 0) return 1;
|
||||||
|
|
||||||
|
let pageLength = Math.floor(this.totalCount / this.itemsPerPage);
|
||||||
|
if (this.totalCount % this.itemsPerPage > 0) {
|
||||||
|
pageLength++;
|
||||||
|
}
|
||||||
|
return pageLength;
|
||||||
|
},
|
||||||
|
itemsPerPage: function() {
|
||||||
|
return this.limit;
|
||||||
|
},
|
||||||
|
numberOfPages: function() {
|
||||||
|
return Number(this.pageNum);
|
||||||
|
},
|
||||||
|
plusPage: function() {
|
||||||
|
return Number(this.pageNum) + 1;
|
||||||
|
},
|
||||||
|
minusPage: function() {
|
||||||
|
return Number(this.pageNum) - 1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
totalCount: function(newData) {
|
||||||
|
return (this.moveToPage = newData > 0 ? this.moveToPage : '');
|
||||||
|
},
|
||||||
|
moveToPage: function() {
|
||||||
|
return (this.moveToPage = this.moveToPage.replaceAll(/[^0-9]/g, ''));
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handlePageChange(newPage) {
|
||||||
|
// Emit an event to the parent to load data for the selected page
|
||||||
|
this.$emit('loadData', newPage, this.itemsPerPage);
|
||||||
|
},
|
||||||
|
changePageLeng: function(current, newLimit) {
|
||||||
|
//부모 컴포넌트에서 loadData(데이터 조회) 구현
|
||||||
|
//this.$emit('loadData', this.pageNum, limit);
|
||||||
|
// limit 변경 시 1 페이지로 초기화
|
||||||
|
this.$emit('loadData', 1, newLimit);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
@ -3,24 +3,18 @@
|
|||||||
<v-col v-if="label" :cols="labelCols">
|
<v-col v-if="label" :cols="labelCols">
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
<v-icon small color="primary"
|
<v-icon small color="primary"
|
||||||
:class="['mr-1', required ? 'icon-orange' : 'icon-blue']"
|
:class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
|
||||||
>$icoBulletPoint</v-icon>
|
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</label>
|
</label>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="label ? textCols : ''">
|
<v-col :cols="label ? textCols : ''">
|
||||||
<div :class="['datepicker-container', customClass]" >
|
<div :class="['datepicker-container', customClass]">
|
||||||
<v-text-field
|
<v-text-field id="startpicker" ref="startpicker" v-model="fromDtValue"
|
||||||
id="startpicker"
|
:class="isRange ? 'v-input__custom half' : 'v-input__custom'" :hide-details="true" readonly
|
||||||
ref="startpicker"
|
outlined>
|
||||||
v-model="fromDtValue"
|
<template #append>
|
||||||
:class="isRange ? 'v-input__custom half' : 'v-input__custom'"
|
<a-icon class="v-icon" v-show="!isRange" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
:hide-details="true"
|
<!-- <v-icon size="20" v-show="!isRange">$icoCalendar</v-icon> -->
|
||||||
readonly
|
|
||||||
outlined
|
|
||||||
>
|
|
||||||
<template #append >
|
|
||||||
<v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
|
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="startpicker-container" id="startpicker-container"></div>
|
<div ref="startpicker-container" id="startpicker-container"></div>
|
||||||
@ -29,18 +23,13 @@
|
|||||||
<div v-if="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
<div v-if="isRange" class="mx-3" :style="{ lineHeight: 0 }">
|
||||||
<img :src="arrowIcon" alt="">
|
<img :src="arrowIcon" alt="">
|
||||||
</div>
|
</div>
|
||||||
<v-text-field
|
<v-text-field v-show="isRange" id="endpicker" ref="endpicker" v-model="toDtValue"
|
||||||
v-show="isRange"
|
:class="isRange ? 'v-input__custom half' : 'v-input__custom'" :hide-details="true" readonly
|
||||||
id="endpicker"
|
outlined>
|
||||||
ref="endpicker"
|
|
||||||
v-model="toDtValue"
|
|
||||||
:class="isRange ? 'v-input__custom half' : 'v-input__custom'"
|
|
||||||
:hide-details="true"
|
|
||||||
readonly
|
|
||||||
outlined
|
|
||||||
>
|
|
||||||
<template #append>
|
<template #append>
|
||||||
<v-icon size="20">$icoCalendar</v-icon>
|
<div class="pr-1">
|
||||||
|
<a-icon class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #append-outer>
|
<template #append-outer>
|
||||||
<div ref="endpicker-container" id="endpicker-container"></div>
|
<div ref="endpicker-container" id="endpicker-container"></div>
|
||||||
@ -98,6 +87,7 @@ export default {
|
|||||||
searchParam(state) {
|
searchParam(state) {
|
||||||
return state.pageData[this.parentPrgmId];
|
return state.pageData[this.parentPrgmId];
|
||||||
},
|
},
|
||||||
|
isDarkMode: "isDarkMode",
|
||||||
}),
|
}),
|
||||||
myCmCycle() {
|
myCmCycle() {
|
||||||
return this.searchParam.cmCycle;
|
return this.searchParam.cmCycle;
|
||||||
@ -138,10 +128,10 @@ export default {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
arrowIcon() {
|
arrowIcon() {
|
||||||
if(this.isDarkMode){
|
if (this.isDarkMode) {
|
||||||
return require('@/assets/images/arrow_datepicker_dm.png');
|
return require('@/assets/images/SwapRight_Dark.svg');
|
||||||
}
|
}
|
||||||
return require('@/assets/images/arrow_datepicker.png');
|
return require('@/assets/images/SwapRight.svg');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -334,6 +324,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
background-color: #edf4fc;
|
background-color: #edf4fc;
|
||||||
|
|
||||||
.tui-timepicker-column.tui-timepicker-colon {
|
.tui-timepicker-column.tui-timepicker-colon {
|
||||||
color: #000 !important;
|
color: #000 !important;
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
mode: null,
|
mode: null,
|
||||||
|
// isLoading: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -28,11 +29,10 @@ export default {
|
|||||||
setThemeChange: 'setThemeChange',
|
setThemeChange: 'setThemeChange',
|
||||||
}),
|
}),
|
||||||
themeChange() {
|
themeChange() {
|
||||||
|
// this.isLoading = true;
|
||||||
this.mode = !this.mode;
|
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)
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
<div class="d-flex justify-center align-center"
|
<div class="d-flex justify-center align-center"
|
||||||
:class="directionBtn === 'vertically'?'flex-row':'flex-column'"
|
:class="directionBtn === 'vertically'?'flex-row':'flex-column'"
|
||||||
style="gap: 12px">
|
style="gap: 12px">
|
||||||
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" class="custom-action-btn">
|
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') : btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.remove :icons.add " class="custom-action-btn">
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add" class="custom-action-btn">
|
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') :btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.add :icons.remove" class="custom-action-btn">
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -2,15 +2,13 @@
|
|||||||
export default function getGaugeChartOption({ title, min = 0, max = 160, unit = '%', isDarkMode = false, backgroundRadius = 97 }) {
|
export default function getGaugeChartOption({ title, min = 0, max = 160, unit = '%', isDarkMode = false, backgroundRadius = 97 }) {
|
||||||
const colorRanges = isDarkMode
|
const colorRanges = isDarkMode
|
||||||
? [
|
? [
|
||||||
[0.375, '#49AA19'], // Dark Green
|
[60 / 160, '#49AA19'], // Dark Green
|
||||||
// [0.5, '#B8860B'], // Dark Yellow
|
[100 / 160, '#D89614'], // Dark Orange
|
||||||
[0.625, '#D89614'], // Dark Orange
|
|
||||||
[1, '#D32029'], // Dark Red
|
[1, '#D32029'], // Dark Red
|
||||||
]
|
]
|
||||||
: [
|
: [
|
||||||
[0.375, '#52C41A'], // Light Green
|
[60 / 160, '#52C41A'], // Light Green
|
||||||
// [0.5, '#FFD700'], // Light Yellow
|
[100 / 160, '#FAAD14'], // Light Orange
|
||||||
[0.625, '#FAAD14'], // Light Orange
|
|
||||||
[1, '#F5222D'], // Light Red
|
[1, '#F5222D'], // Light Red
|
||||||
];
|
];
|
||||||
// Old color range
|
// Old color range
|
||||||
@ -56,6 +54,7 @@ export default function getGaugeChartOption({ title, min = 0, max = 160, unit =
|
|||||||
endAngle: -45,
|
endAngle: -45,
|
||||||
min: min,
|
min: min,
|
||||||
max: max,
|
max: max,
|
||||||
|
splitNumber: 8,
|
||||||
// progress: {
|
// progress: {
|
||||||
// show: true,
|
// show: true,
|
||||||
// width: 15,
|
// width: 15,
|
||||||
|
@ -34,6 +34,8 @@ export default function getLineChartOption({
|
|||||||
legend: {
|
legend: {
|
||||||
// data: legendData,
|
// data: legendData,
|
||||||
icon: 'circle',
|
icon: 'circle',
|
||||||
|
itemWidth: 15, // Width of the legend icon
|
||||||
|
itemHeight: 15,
|
||||||
top: '0%',
|
top: '0%',
|
||||||
right: '5%',
|
right: '5%',
|
||||||
orient: 'horizontal',
|
orient: 'horizontal',
|
||||||
@ -70,6 +72,7 @@ export default function getLineChartOption({
|
|||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
|
type: 'dashed', // Options: 'solid', 'dashed', 'dotted'
|
||||||
color: isDarkMode ? '#444444' : '#EEEEEE',
|
color: isDarkMode ? '#444444' : '#EEEEEE',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
46
components/common/chartoptions/SankeyChart.js
Normal file
46
components/common/chartoptions/SankeyChart.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Sankey chart options
|
||||||
|
export function getSankeyChartOption({ isDarkMode = false, data = [], links = [] }) {
|
||||||
|
const chartOption = {
|
||||||
|
backgroundColor: '#FFFFFF',
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
data,
|
||||||
|
links,
|
||||||
|
|
||||||
|
layoutIterations: 0,
|
||||||
|
type: 'sankey',
|
||||||
|
left: 25.0,
|
||||||
|
top: 20.0,
|
||||||
|
right: 120,
|
||||||
|
bottom: 50.0,
|
||||||
|
nodeGap: 10,
|
||||||
|
nodeAlign: 'left',
|
||||||
|
lineStyle: {
|
||||||
|
color: 'source',
|
||||||
|
curveness: 0.5,
|
||||||
|
},
|
||||||
|
// nodeWidth:10,
|
||||||
|
// triggerEvent: true,
|
||||||
|
itemStyle: {
|
||||||
|
//color: '#1f77b4',
|
||||||
|
//borderColor: '#1f77b4'
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
color: isDarkMode
|
||||||
|
? '#FFFFFFD9'
|
||||||
|
: '#000000E0',
|
||||||
|
// fontFamily: 'Arial',
|
||||||
|
fontSize: 14,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return chartOption;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default getSankeyChartOption;
|
||||||
|
|
@ -3,12 +3,13 @@
|
|||||||
<v-col v-if="item.label" :cols="item.labelCols !== undefined ? item.labelCols : 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
|
v-if="item.iconShow"
|
||||||
:color="item.required ? '#fb8200' : 'primary'"
|
small
|
||||||
class="mr-1"
|
:class="['mr-1', item.required ? 'icon-orange' : 'icon-blue']"
|
||||||
>mdi-record-circle</v-icon
|
>$icoBulletPoint</v-icon
|
||||||
>
|
>
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
|
<span v-if="item.essential">*</span>
|
||||||
</label>
|
</label>
|
||||||
<!-- <label for="" class="search-box-label ft-size_14 ft-clr_g-c">
|
<!-- <label for="" class="search-box-label ft-size_14 ft-clr_g-c">
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
@ -39,12 +40,12 @@
|
|||||||
</template>
|
</template>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<v-dialog v-model="dialog" scrollable width="540px">
|
<v-dialog v-model="dialog" scrollable width="504px">
|
||||||
<v-card style="height: 100%">
|
<v-card style="height: 100%">
|
||||||
<v-card-title>
|
<v-card-title class="px-4">
|
||||||
<span class="custom-title-4">비밀번호 {{ isPassword }}</span>
|
<span class="custom-title-4" style="padding-left: 1px;">비밀번호 {{ isPassword }}</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-text class="pb-4">
|
<v-card-text class="pb-4 px-3">
|
||||||
<v-col>
|
<v-col>
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
{{ isPassword }}할 비밀번호를 입력하세요
|
{{ isPassword }}할 비밀번호를 입력하세요
|
||||||
@ -75,7 +76,7 @@
|
|||||||
<v-card-actions class="pb-4">
|
<v-card-actions class="pb-4">
|
||||||
<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> -->
|
||||||
<div class="pr-3">
|
<div class="d-flex" style="gap: 8px">
|
||||||
<a-button @click="close()" class="ant-btn-popup-default">닫기</a-button>
|
<a-button @click="close()" class="ant-btn-popup-default">닫기</a-button>
|
||||||
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
||||||
확인
|
확인
|
||||||
|
@ -17,20 +17,24 @@
|
|||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</label>
|
</label>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="label ? item.textCols : ''">
|
<v-col :cols="label ? item.textCols : ''" class="py-0">
|
||||||
<!-- <v-col :cols="label ? 9 : ''"> -->
|
<!-- <v-col :cols="label ? 9 : ''"> -->
|
||||||
<!-- :value="textfield" -->
|
<!-- :value="textfield" -->
|
||||||
<v-text-field
|
<v-text-field
|
||||||
readonly
|
readonly
|
||||||
v-model="selectValue"
|
v-model="selectValue"
|
||||||
append-icon="mdi-magnify"
|
|
||||||
class="v-input__custom"
|
class="v-input__custom"
|
||||||
@click="dialog = !dialog"
|
@click="dialog = !dialog"
|
||||||
outlined
|
outlined
|
||||||
:hide-details="true"
|
:hide-details="true"
|
||||||
:disabled="item.disabled || false"
|
:disabled="item.disabled || false"
|
||||||
:required="item.required || false"
|
:required="item.required || false"
|
||||||
></v-text-field>
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<v-icon>$icoSearch</v-icon>
|
||||||
|
</template>
|
||||||
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<!-- <v-row justify="center"> -->
|
<!-- <v-row justify="center"> -->
|
||||||
|
@ -94,7 +94,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<v-card-actions class="px-6 py-4 d-flex align-center justify-end">
|
<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" @click="dialogOpenCloseEvent(dialog)" class="ant-btn-popup-default mr-2">닫기</a-button>
|
||||||
<a-button :ripple="false" type="primary" @click="setUpdate($event)">확인</a-button>
|
<a-button :ripple="false" type="primary" @click="setUpdate($event)">확인</a-button>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
@ -404,8 +404,8 @@ export default {
|
|||||||
rowHeight: 'auto',
|
rowHeight: 'auto',
|
||||||
};
|
};
|
||||||
if (this.isMulti) {
|
if (this.isMulti) {
|
||||||
// myOptions['rowHeaders'] = [{ type: 'checkbox' }];
|
myOptions['rowHeaders'] = [{ type: 'checkbox' }];
|
||||||
// myOptions['rowHeight'] = 'auto';
|
myOptions['rowHeight'] = 'auto';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -523,12 +523,11 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
this.loadGrid = true;
|
this.loadGrid = true;
|
||||||
// this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// if (this.isMulti) {
|
if (this.isMulti) {
|
||||||
// this.getChecked();
|
this.getChecked();
|
||||||
// }
|
}
|
||||||
// });
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
setUpdate() {
|
setUpdate() {
|
||||||
if (this.isMulti) {
|
if (this.isMulti) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-row class="search-box no-gutters" align="center">
|
<v-row class="search-box" align="center">
|
||||||
<v-col :cols="option.labelCols" class="py-0">
|
<v-col :cols="option.labelCols" class="py-0">
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
<v-icon v-if="item.iconShow" small
|
<v-icon v-if="item.iconShow" small
|
||||||
@ -8,12 +8,22 @@
|
|||||||
</label>
|
</label>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="option.textCols" class="py-0">
|
<v-col :cols="option.textCols" class="py-0">
|
||||||
<v-text-field readonly append-icon="" :class="['v-select__custom', customClass]" outlined :hide-details="true"
|
<v-text-field
|
||||||
v-model="selectValue" @keyup.enter="typeEnterKey" @click="dialogOpenCloseEvent(dialog)" style="padding: 0;"
|
readonly
|
||||||
:required="item.required || false"><template v-slot:append>
|
v-model="selectValue"
|
||||||
|
append-icon="mdi-magnify"
|
||||||
|
class="v-input__custom"
|
||||||
|
@click="dialogOpenCloseEvent(dialog)"
|
||||||
|
outlined
|
||||||
|
:hide-details="true"
|
||||||
|
:required="item.required || false"
|
||||||
|
:disabled="item.disabled || false"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
<!-- Custom SVG icon -->
|
<!-- Custom SVG icon -->
|
||||||
<v-icon>$icoSearch</v-icon>
|
<v-icon>$icoSearch</v-icon>
|
||||||
</template></v-text-field>
|
</template>
|
||||||
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<v-dialog v-model="dialog" scrollable width="1000px">
|
<v-dialog v-model="dialog" scrollable width="1000px">
|
||||||
|
@ -238,7 +238,13 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
require: false,
|
require: false,
|
||||||
default: () => {
|
default: () => {
|
||||||
return {};
|
return {
|
||||||
|
selectTimeValue1: "00 : 00", // selectBoxTime에 필요한 prop
|
||||||
|
selectTimeValueList1: [], // selectBoxTime에 필요한 prop
|
||||||
|
selectTimeValue2: "01 : 00", // selectBoxTime에 필요한 prop
|
||||||
|
selectTimeValueList2: [], // selectBoxTime에 필요한 prop
|
||||||
|
minInterval: 10,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -536,8 +542,8 @@ export default {
|
|||||||
let returnData = res[0];
|
let returnData = res[0];
|
||||||
this.strtDt = Utility.setFormatDate(returnData.strtDt, 'YYYY-MM-DD');
|
this.strtDt = Utility.setFormatDate(returnData.strtDt, 'YYYY-MM-DD');
|
||||||
this.endDt = Utility.setFormatDate(returnData.endDt, 'YYYY-MM-DD');
|
this.endDt = Utility.setFormatDate(returnData.endDt, 'YYYY-MM-DD');
|
||||||
this.selectTimeValue1 = returnData.strtHh+' : '+ returnData.strtMm;
|
this.selectTimeValue1 = returnData.strtHh + ' : ' + returnData.strtMm;
|
||||||
this.selectTimeValue2 = returnData.endHh+' : '+ returnData.endMm;
|
this.selectTimeValue2 = returnData.endHh + ' : ' + returnData.endMm;
|
||||||
this.planTitle = returnData.planTitle;
|
this.planTitle = returnData.planTitle;
|
||||||
this.planCntn = returnData.planCntn;
|
this.planCntn = returnData.planCntn;
|
||||||
this.planColor = returnData.planColor;
|
this.planColor = returnData.planColor;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-row class="search-box" align="center">
|
<v-row class="search-box" align="center" no-gutters>
|
||||||
<!-- <v-col v-if="label" cols="2"> -->
|
<!-- <v-col v-if="label" cols="2"> -->
|
||||||
<v-col v-if="item.label" :cols="item.labelCols" class="py-0">
|
<v-col v-if="item.label" :cols="item.labelCols" class="py-0">
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
item-value="value"
|
item-value="value"
|
||||||
solo
|
solo
|
||||||
outlined
|
outlined
|
||||||
:menu-props="{ auto: true, offsetY: true }"
|
:menu-props="{ top: false, offsetY: true }"
|
||||||
:hide-details="true"
|
:hide-details="true"
|
||||||
:class="['v-select__custom', customClass]"
|
:class="['v-select__custom', customClass]"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
|
7
components/icons/anticonAppStore.vue
Normal file
7
components/icons/anticonAppStore.vue
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M7.143 1.42969H1.71443C1.55728 1.42969 1.42871 1.55826 1.42871 1.7154V7.14397C1.42871 7.30112 1.55728 7.42969 1.71443 7.42969H7.143C7.30014 7.42969 7.42871 7.30112 7.42871 7.14397V1.7154C7.42871 1.55826 7.30014 1.42969 7.143 1.42969ZM6.21443 6.2154H2.643V2.64397H6.21443V6.2154ZM14.2859 1.42969H8.85728C8.70014 1.42969 8.57157 1.55826 8.57157 1.7154V7.14397C8.57157 7.30112 8.70014 7.42969 8.85728 7.42969H14.2859C14.443 7.42969 14.5716 7.30112 14.5716 7.14397V1.7154C14.5716 1.55826 14.443 1.42969 14.2859 1.42969ZM13.3573 6.2154H9.78586V2.64397H13.3573V6.2154ZM7.143 8.57255H1.71443C1.55728 8.57255 1.42871 8.70112 1.42871 8.85826V14.2868C1.42871 14.444 1.55728 14.5725 1.71443 14.5725H7.143C7.30014 14.5725 7.42871 14.444 7.42871 14.2868V8.85826C7.42871 8.70112 7.30014 8.57255 7.143 8.57255ZM6.21443 13.3583H2.643V9.78683H6.21443V13.3583ZM14.2859 8.57255H8.85728C8.70014 8.57255 8.57157 8.70112 8.57157 8.85826V14.2868C8.57157 14.444 8.70014 14.5725 8.85728 14.5725H14.2859C14.443 14.5725 14.5716 14.444 14.5716 14.2868V8.85826C14.5716 8.70112 14.443 8.57255 14.2859 8.57255ZM13.3573 13.3583H9.78586V9.78683H13.3573V13.3583Z"
|
||||||
|
fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonBulb.vue
Normal file
6
components/icons/anticonBulb.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M8.14258 14.7143H3.85686C3.77829 14.7143 3.71401 14.7786 3.71401 14.8571V15.4286C3.71401 15.7446 3.96936 16 4.28544 16H7.71401C8.03008 16 8.28544 15.7446 8.28544 15.4286V14.8571C8.28544 14.7786 8.22115 14.7143 8.14258 14.7143ZM5.99972 0C2.76579 0 0.142578 2.62321 0.142578 5.85714C0.142578 8.025 1.32115 9.91786 3.07115 10.9304V13C3.07115 13.3161 3.32651 13.5714 3.64258 13.5714H8.35686C8.67294 13.5714 8.92829 13.3161 8.92829 13V10.9304C10.6783 9.91786 11.8569 8.025 11.8569 5.85714C11.8569 2.62321 9.23365 0 5.99972 0ZM8.28365 9.81786L7.64258 10.1893V12.2857H4.35686V10.1893L3.71579 9.81786C2.31044 9.00536 1.42829 7.50893 1.42829 5.85714C1.42829 3.33214 3.47472 1.28571 5.99972 1.28571C8.52472 1.28571 10.5711 3.33214 10.5711 5.85714C10.5711 7.50893 9.68901 9.00536 8.28365 9.81786Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonDesktop.vue
Normal file
6
components/icons/anticonDesktop.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.4286 0.359253H0.571429C0.255357 0.359253 0 0.61461 0 0.930682V9.78782C0 10.1039 0.255357 10.3593 0.571429 10.3593H7.35714V12.3593H4.28571C4.12857 12.3593 4 12.4878 4 12.645V13.5021C4 13.5807 4.06429 13.645 4.14286 13.645H11.8571C11.9357 13.645 12 13.5807 12 13.5021V12.645C12 12.4878 11.8714 12.3593 11.7143 12.3593H8.64286V10.3593H15.4286C15.7446 10.3593 16 10.1039 16 9.78782V0.930682C16 0.61461 15.7446 0.359253 15.4286 0.359253ZM14.7143 9.07354H1.28571V1.64497H14.7143V9.07354Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonDrag.vue
Normal file
6
components/icons/anticonDrag.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.0943 7.89787L12.8157 6.09966C12.7967 6.08466 12.7738 6.07534 12.7496 6.07276C12.7255 6.07018 12.7012 6.07444 12.6794 6.08507C12.6576 6.09569 12.6392 6.11224 12.6264 6.13282C12.6135 6.15341 12.6067 6.17719 12.6068 6.20144V7.3568H8.64251V3.39251H9.79966C9.9068 3.39251 9.96751 3.26751 9.90144 3.18359L8.10144 0.905014C8.08953 0.889595 8.07424 0.877112 8.05675 0.868523C8.03926 0.859935 8.02003 0.855469 8.00055 0.855469C7.98106 0.855469 7.96184 0.859935 7.94435 0.868523C7.92686 0.877112 7.91157 0.889595 7.89966 0.905014L6.09966 3.18359C6.08466 3.20265 6.07534 3.22555 6.07276 3.24967C6.07018 3.27379 6.07444 3.29815 6.08507 3.31995C6.09569 3.34176 6.11224 3.36013 6.13282 3.37296C6.15341 3.3858 6.17719 3.39257 6.20144 3.39251H7.3568V7.3568H3.39251V6.19966C3.39251 6.09252 3.26751 6.0318 3.18359 6.09787L0.905014 7.89787C0.889595 7.90979 0.877112 7.92508 0.868523 7.94256C0.859935 7.96005 0.855469 7.97928 0.855469 7.99877C0.855469 8.01825 0.859935 8.03748 0.868523 8.05497C0.877112 8.07246 0.889595 8.08774 0.905014 8.09966L3.1818 9.89966C3.26573 9.96573 3.39073 9.9068 3.39073 9.79787V8.64252H7.35501V12.6068H6.19787C6.09073 12.6068 6.03001 12.7318 6.09609 12.8157L7.89609 15.0925C7.94787 15.1586 8.04787 15.1586 8.09787 15.0925L9.89787 12.8157C9.96394 12.7318 9.90501 12.6068 9.79608 12.6068H8.64251V8.64252H12.6068V9.79966C12.6068 9.9068 12.7318 9.96752 12.8157 9.90144L15.0925 8.10144C15.1079 8.08937 15.1203 8.07398 15.129 8.05644C15.1376 8.03889 15.1422 8.01964 15.1423 8.00009C15.1425 7.98054 15.1383 7.9612 15.13 7.94351C15.1216 7.92582 15.1095 7.91022 15.0943 7.89787Z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonFileText.vue
Normal file
6
components/icons/anticonFileText.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="14" height="16" viewBox="0 0 14 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.1174 4.01071L9.27458 0.167857C9.16744 0.0607143 9.0228 0 8.87101 0H1.2853C0.969224 0 0.713867 0.255357 0.713867 0.571429V15.4286C0.713867 15.7446 0.969224 16 1.2853 16H12.7139C13.0299 16 13.2853 15.7446 13.2853 15.4286V4.41607C13.2853 4.26429 13.2246 4.11786 13.1174 4.01071ZM11.9674 4.67857H8.60673V1.31786L11.9674 4.67857ZM11.9996 14.7143H1.99958V1.28571H7.39244V5.14286C7.39244 5.34177 7.47146 5.53254 7.61211 5.67319C7.75276 5.81384 7.94353 5.89286 8.14244 5.89286H11.9996V14.7143ZM6.85673 9.89286H3.57101C3.49244 9.89286 3.42815 9.95714 3.42815 10.0357V10.8929C3.42815 10.9714 3.49244 11.0357 3.57101 11.0357H6.85673C6.9353 11.0357 6.99958 10.9714 6.99958 10.8929V10.0357C6.99958 9.95714 6.9353 9.89286 6.85673 9.89286ZM3.42815 7.60714V8.46429C3.42815 8.54286 3.49244 8.60714 3.57101 8.60714H10.4282C10.5067 8.60714 10.571 8.54286 10.571 8.46429V7.60714C10.571 7.52857 10.5067 7.46429 10.4282 7.46429H3.57101C3.49244 7.46429 3.42815 7.52857 3.42815 7.60714Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonLineChart.vue
Normal file
6
components/icons/anticonLineChart.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.714 12.0006H1.42829V0.857701C1.42829 0.779129 1.36401 0.714844 1.28544 0.714844H0.285435C0.206864 0.714844 0.142578 0.779129 0.142578 0.857701V13.1434C0.142578 13.222 0.206864 13.2863 0.285435 13.2863H13.714C13.7926 13.2863 13.8569 13.222 13.8569 13.1434V12.1434C13.8569 12.0648 13.7926 12.0006 13.714 12.0006ZM3.31758 9.2452C3.37294 9.30056 3.46222 9.30056 3.51936 9.2452L5.98901 6.78806L8.26758 9.08092C8.32294 9.13627 8.41401 9.13627 8.46937 9.08092L13.3872 4.16484C13.4426 4.10949 13.4426 4.01842 13.3872 3.96306L12.6801 3.25592C12.6532 3.22933 12.617 3.21442 12.5792 3.21442C12.5414 3.21442 12.5051 3.22933 12.4783 3.25592L8.37115 7.36127L6.09615 5.07199C6.0693 5.0454 6.03304 5.03049 5.99526 5.03049C5.95747 5.03049 5.92122 5.0454 5.89437 5.07199L2.61222 8.33449C2.58564 8.36134 2.57072 8.39759 2.57072 8.43538C2.57072 8.47316 2.58564 8.50942 2.61222 8.53627L3.31758 9.2452Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonMessage.vue
Normal file
6
components/icons/anticonMessage.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M7.14296 8C7.14296 8.22733 7.23326 8.44535 7.39401 8.60609C7.55475 8.76684 7.77277 8.85714 8.0001 8.85714C8.22743 8.85714 8.44545 8.76684 8.60619 8.60609C8.76694 8.44535 8.85724 8.22733 8.85724 8C8.85724 7.77267 8.76694 7.55465 8.60619 7.39391C8.44545 7.23316 8.22743 7.14286 8.0001 7.14286C7.77277 7.14286 7.55475 7.23316 7.39401 7.39391C7.23326 7.55465 7.14296 7.77267 7.14296 8ZM10.7144 8C10.7144 8.22733 10.8047 8.44535 10.9654 8.60609C11.1262 8.76684 11.3442 8.85714 11.5715 8.85714C11.7989 8.85714 12.0169 8.76684 12.1776 8.60609C12.3384 8.44535 12.4287 8.22733 12.4287 8C12.4287 7.77267 12.3384 7.55465 12.1776 7.39391C12.0169 7.23316 11.7989 7.14286 11.5715 7.14286C11.3442 7.14286 11.1262 7.23316 10.9654 7.39391C10.8047 7.55465 10.7144 7.77267 10.7144 8ZM3.57153 8C3.57153 8.22733 3.66184 8.44535 3.82258 8.60609C3.98333 8.76684 4.20134 8.85714 4.42867 8.85714C4.656 8.85714 4.87402 8.76684 5.03476 8.60609C5.19551 8.44535 5.28582 8.22733 5.28582 8C5.28582 7.77267 5.19551 7.55465 5.03476 7.39391C4.87402 7.23316 4.656 7.14286 4.42867 7.14286C4.20134 7.14286 3.98333 7.23316 3.82258 7.39391C3.66184 7.55465 3.57153 7.77267 3.57153 8ZM15.3787 4.9C14.9751 3.94107 14.3965 3.08036 13.659 2.34107C12.9267 1.60607 12.0573 1.02182 11.1001 0.621429C10.118 0.208929 9.0751 0 8.0001 0H7.96439C6.88224 0.00535714 5.83403 0.219643 4.84832 0.641071C3.89931 1.04557 3.03807 1.63085 2.3126 2.36429C1.58224 3.10179 1.00903 3.95893 0.612601 4.91429C0.201887 5.90357 -0.00525583 6.95536 0.000101308 8.0375C0.00616068 9.27763 0.299551 10.4995 0.857244 11.6071V14.3214C0.857244 14.5393 0.943787 14.7482 1.09783 14.9023C1.25188 15.0563 1.46082 15.1429 1.67867 15.1429H4.39474C5.50241 15.7006 6.72426 15.9939 7.96439 16H8.00189C9.07153 16 10.109 15.7929 11.0858 15.3875C12.0382 14.9919 12.9043 14.4144 13.6358 13.6875C14.3733 12.9571 14.9537 12.1036 15.359 11.1518C15.7805 10.1661 15.9947 9.11786 16.0001 8.03572C16.0055 6.94821 15.7947 5.89286 15.3787 4.9ZM12.6805 12.7214C11.4287 13.9607 9.76796 14.6429 8.0001 14.6429H7.96974C6.89296 14.6375 5.82332 14.3696 4.87867 13.8661L4.72867 13.7857H2.21439V11.2714L2.13403 11.1214C1.63046 10.1768 1.3626 9.10714 1.35724 8.03036C1.3501 6.25 2.03046 4.57857 3.27867 3.31964C4.5251 2.06071 6.19117 1.36429 7.97153 1.35714H8.00189C8.89474 1.35714 9.76081 1.53036 10.5769 1.87321C11.3733 2.20714 12.0876 2.6875 12.7019 3.30179C13.3144 3.91429 13.7965 4.63036 14.1305 5.42679C14.4769 6.25179 14.6501 7.12679 14.6465 8.03036C14.6358 9.80893 13.9376 11.475 12.6805 12.7214Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonNoteExpand.vue
Normal file
6
components/icons/anticonNoteExpand.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.8571 8.78318C15.9357 8.78318 16 8.71889 16 8.64032V7.64032C16 7.56175 15.9357 7.49746 15.8571 7.49746H4.17857C4.05067 7.18077 3.83102 6.90955 3.54782 6.71864C3.26463 6.52772 2.93082 6.42582 2.58929 6.42603C1.64286 6.42603 0.875 7.19389 0.875 8.14032C0.875 9.08675 1.64286 9.8546 2.58929 9.8546C3.30893 9.8546 3.925 9.41175 4.17857 8.78318H6.8625V11.4975C6.8625 12.4832 7.6625 13.2832 8.64821 13.2832H15.8571C15.9357 13.2832 16 13.2189 16 13.1403V12.1403C16 12.0617 15.9357 11.9975 15.8571 11.9975H8.64821C8.37143 11.9975 8.14821 11.7742 8.14821 11.4975V8.78318H15.8571ZM7 3.99746H11.7143V5.75103C11.7143 5.89568 11.8839 5.9796 11.9964 5.88853L15.0768 3.45639C15.1661 3.38675 15.1661 3.25282 15.0768 3.18318L11.9964 0.749247C11.8821 0.658175 11.7143 0.740318 11.7143 0.886747V2.64032H7C6.92143 2.64032 6.85714 2.7046 6.85714 2.78318V3.8546C6.85714 3.93318 6.92143 3.99746 7 3.99746Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonPieChart.vue
Normal file
6
components/icons/anticonPieChart.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M14.2854 8.10545H7.89259V1.7126C7.89259 1.63402 7.8283 1.56974 7.74973 1.56974H7.28545C6.34741 1.5682 5.41833 1.75216 4.55165 2.11103C3.68497 2.4699 2.89781 2.99659 2.23545 3.66081C1.58314 4.3111 1.06339 5.08193 0.705089 5.93045C0.332241 6.81052 0.140919 7.75681 0.142589 8.7126C0.141053 9.65063 0.32501 10.5797 0.683878 11.4464C1.04275 12.3131 1.56944 13.1002 2.23366 13.7626C2.88902 14.418 3.6533 14.934 4.5033 15.293C5.38337 15.6658 6.32966 15.8571 7.28545 15.8555C8.22348 15.857 9.15257 15.673 10.0192 15.3142C10.8859 14.9553 11.6731 14.4286 12.3354 13.7644C12.9908 13.109 13.5069 12.3447 13.8658 11.4947C14.2387 10.6147 14.43 9.66838 14.4283 8.7126V8.24831C14.4283 8.16974 14.364 8.10545 14.2854 8.10545ZM11.4587 12.9233C10.9057 13.472 10.2499 13.9061 9.52892 14.2009C8.80791 14.4957 8.03581 14.6453 7.25688 14.6412C5.68366 14.634 4.20509 14.018 3.09259 12.9055C1.97295 11.7858 1.35687 10.2965 1.35687 8.7126C1.35687 7.12867 1.97295 5.63938 3.09259 4.51974C4.06759 3.54474 5.32295 2.9501 6.6783 2.81438V9.31974H13.1837C13.0462 10.6822 12.4462 11.9447 11.4587 12.9233ZM15.8569 7.1126L15.8104 6.60903C15.6587 4.96438 14.9283 3.4126 13.7533 2.24117C12.5775 1.06759 11.0289 0.341284 9.37473 0.187596L8.86938 0.141167C8.78545 0.134025 8.71402 0.19831 8.71402 0.282239V7.14117C8.71402 7.21974 8.7783 7.28402 8.85688 7.28402L15.714 7.26617C15.7979 7.26617 15.864 7.19474 15.8569 7.1126ZM9.92473 6.07331V1.49117C11.0496 1.72661 12.0819 2.2837 12.8962 3.09474C13.7122 3.90902 14.2712 4.94474 14.5033 6.06081L9.92473 6.07331Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonSearch.vue
Normal file
6
components/icons/anticonSearch.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.1003 14.1183L10.4628 9.4808C11.1824 8.55045 11.5717 7.41295 11.5717 6.21652C11.5717 4.78438 11.0128 3.44152 10.0021 2.42902C8.99135 1.41652 7.64492 0.859375 6.21456 0.859375C4.78421 0.859375 3.43778 1.4183 2.42706 2.42902C1.41456 3.43973 0.857422 4.78438 0.857422 6.21652C0.857422 7.64688 1.41635 8.9933 2.42706 10.004C3.43778 11.0165 4.78242 11.5737 6.21456 11.5737C7.41099 11.5737 8.54671 11.1844 9.47707 10.4665L14.1146 15.1022C14.1282 15.1158 14.1443 15.1266 14.1621 15.134C14.1799 15.1414 14.1989 15.1452 14.2181 15.1452C14.2374 15.1452 14.2564 15.1414 14.2742 15.134C14.292 15.1266 14.3081 15.1158 14.3217 15.1022L15.1003 14.3254C15.1139 14.3118 15.1247 14.2957 15.132 14.2779C15.1394 14.2602 15.1432 14.2411 15.1432 14.2219C15.1432 14.2026 15.1394 14.1836 15.132 14.1658C15.1247 14.148 15.1139 14.1319 15.1003 14.1183ZM9.04314 9.04509C8.28599 9.80045 7.28242 10.2165 6.21456 10.2165C5.14671 10.2165 4.14314 9.80045 3.38599 9.04509C2.63064 8.28795 2.21456 7.28438 2.21456 6.21652C2.21456 5.14866 2.63064 4.1433 3.38599 3.38795C4.14314 2.63259 5.14671 2.21652 6.21456 2.21652C7.28242 2.21652 8.28778 2.6308 9.04314 3.38795C9.79849 4.14509 10.2146 5.14866 10.2146 6.21652C10.2146 7.28438 9.79849 8.28973 9.04314 9.04509Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
6
components/icons/anticonSetting.vue
Normal file
6
components/icons/anticonSetting.vue
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Custom SVG icon -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.3712 10.033L14.2016 9.03304C14.257 8.69375 14.2855 8.34732 14.2855 8.00089C14.2855 7.65446 14.257 7.30804 14.2016 6.96875L15.3712 5.96875C15.4595 5.89323 15.5226 5.79264 15.5523 5.68035C15.5819 5.56807 15.5767 5.44942 15.5373 5.34018L15.5212 5.29375C15.1992 4.3938 14.7171 3.55953 14.098 2.83125L14.0659 2.79375C13.9908 2.70545 13.8907 2.64198 13.7788 2.61169C13.6669 2.58141 13.5485 2.58574 13.4391 2.62411L11.9873 3.14018C11.4516 2.70089 10.8534 2.35446 10.207 2.11161L9.92659 0.59375C9.90544 0.47954 9.85004 0.374469 9.76775 0.292496C9.68546 0.210524 9.58017 0.15553 9.46588 0.134821L9.41767 0.125893C8.48731 -0.0419643 7.50874 -0.0419643 6.57838 0.125893L6.53017 0.134821C6.41587 0.15553 6.31059 0.210524 6.2283 0.292496C6.146 0.374469 6.0906 0.47954 6.06945 0.59375L5.78731 2.11875C5.14604 2.36166 4.54886 2.7079 4.01945 3.14375L2.55695 2.62411C2.4476 2.58543 2.32908 2.58095 2.21712 2.61125C2.10516 2.64155 2.00508 2.7052 1.93017 2.79375L1.89802 2.83125C1.27971 3.56004 0.797622 4.39417 0.474808 5.29375L0.458737 5.34018C0.37838 5.56339 0.444451 5.81339 0.624808 5.96875L1.80874 6.97946C1.75338 7.31518 1.72659 7.65804 1.72659 7.99911C1.72659 8.34196 1.75338 8.68482 1.80874 9.01875L0.624808 10.0295C0.536586 10.105 0.473445 10.2056 0.44378 10.3179C0.414115 10.4301 0.419331 10.5488 0.458737 10.658L0.474808 10.7045C0.798023 11.6045 1.27659 12.4348 1.89802 13.167L1.93017 13.2045C2.00526 13.2928 2.10535 13.3562 2.21724 13.3865C2.32913 13.4168 2.44757 13.4125 2.55695 13.3741L4.01945 12.8545C4.55159 13.292 5.14624 13.6384 5.78731 13.8795L6.06945 15.4045C6.0906 15.5187 6.146 15.6237 6.2283 15.7057C6.31059 15.7877 6.41587 15.8427 6.53017 15.8634L6.57838 15.8723C7.51728 16.0411 8.47876 16.0411 9.41767 15.8723L9.46588 15.8634C9.58017 15.8427 9.68546 15.7877 9.76775 15.7057C9.85004 15.6237 9.90544 15.5187 9.92659 15.4045L10.207 13.8866C10.8531 13.6444 11.4547 13.2968 11.9873 12.858L13.4391 13.3741C13.5484 13.4128 13.667 13.4173 13.7789 13.387C13.8909 13.3567 13.991 13.293 14.0659 13.2045L14.098 13.167C14.7194 12.433 15.198 11.6045 15.5212 10.7045L15.5373 10.658C15.6177 10.4384 15.5516 10.1884 15.3712 10.033ZM12.9337 7.17946C12.9784 7.44911 13.0016 7.72589 13.0016 8.00268C13.0016 8.27946 12.9784 8.55625 12.9337 8.82589L12.8159 9.54197L14.1498 10.683C13.9476 11.1489 13.6923 11.5899 13.3891 11.9973L11.732 11.4098L11.1712 11.8705C10.7444 12.2205 10.2695 12.4955 9.75516 12.6884L9.07481 12.9438L8.75516 14.6759C8.25083 14.733 7.74165 14.733 7.23731 14.6759L6.91767 12.9402L6.24267 12.6813C5.73374 12.4884 5.26052 12.2134 4.83731 11.8652L4.27659 11.4027L2.60874 11.9955C2.30517 11.5866 2.05159 11.1455 1.84802 10.6813L3.19624 9.52946L3.08017 8.81518C3.03731 8.54911 3.01409 8.27411 3.01409 8.00268C3.01409 7.72946 3.03552 7.45625 3.08017 7.19018L3.19624 6.47589L1.84802 5.32411C2.04981 4.85804 2.30517 4.41875 2.60874 4.00982L4.27659 4.60268L4.83731 4.14018C5.26052 3.79196 5.73374 3.51696 6.24267 3.32411L6.91945 3.06875L7.23909 1.33304C7.74088 1.27589 8.25338 1.27589 8.75695 1.33304L9.07659 3.06518L9.75695 3.32054C10.2695 3.51339 10.7462 3.78839 11.173 4.13839L11.7337 4.59911L13.3909 4.01161C13.6945 4.42054 13.948 4.86161 14.1516 5.32589L12.8177 6.46696L12.9337 7.17946ZM7.99981 4.68125C6.26409 4.68125 4.85695 6.08839 4.85695 7.82411C4.85695 9.55982 6.26409 10.967 7.99981 10.967C9.73552 10.967 11.1427 9.55982 11.1427 7.82411C11.1427 6.08839 9.73552 4.68125 7.99981 4.68125ZM9.41409 9.23839C9.2286 9.42442 9.00815 9.57194 8.76543 9.67246C8.52271 9.77298 8.26252 9.82452 7.99981 9.82411C7.46588 9.82411 6.96409 9.61518 6.58552 9.23839C6.39949 9.0529 6.25198 8.83245 6.15146 8.58973C6.05094 8.34701 5.9994 8.08682 5.99981 7.82411C5.99981 7.29018 6.20874 6.78839 6.58552 6.40982C6.96409 6.03125 7.46588 5.82411 7.99981 5.82411C8.53374 5.82411 9.03552 6.03125 9.41409 6.40982C9.60012 6.59532 9.74764 6.81577 9.84816 7.05848C9.94868 7.3012 10.0002 7.5614 9.99981 7.82411C9.99981 8.35804 9.79088 8.85982 9.41409 9.23839Z" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</template>
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M15.4899 7.76897L0.552358 0.279682C0.491643 0.249325 0.422 0.242182 0.355929 0.258253C0.282599 0.276381 0.219441 0.322828 0.180282 0.387423C0.141124 0.452017 0.129156 0.529497 0.147 0.602896L1.68629 6.89218C1.7095 6.98682 1.77914 7.06361 1.872 7.09397L4.5095 7.99932L1.87379 8.90468C1.78093 8.93682 1.71129 9.01182 1.68986 9.10647L0.147 15.4047C0.130929 15.4708 0.138072 15.5404 0.168429 15.5993C0.238072 15.7404 0.4095 15.7975 0.552358 15.7279L15.4899 8.28147C15.5452 8.25468 15.5899 8.20825 15.6184 8.15468C15.6881 8.01182 15.6309 7.8404 15.4899 7.76897ZM1.90771 13.6154L2.80593 9.94397L8.07736 8.13504C8.11843 8.12075 8.15236 8.08861 8.16664 8.04575C8.19164 7.97075 8.15236 7.8904 8.07736 7.86361L2.80593 6.05647L1.91129 2.39932L13.1256 8.02254L1.90771 13.6154Z" fill="white"/>
|
<path d="M15.4899 7.76897L0.552358 0.279682C0.491643 0.249325 0.422 0.242182 0.355929 0.258253C0.282599 0.276381 0.219441 0.322828 0.180282 0.387423C0.141124 0.452017 0.129156 0.529497 0.147 0.602896L1.68629 6.89218C1.7095 6.98682 1.77914 7.06361 1.872 7.09397L4.5095 7.99932L1.87379 8.90468C1.78093 8.93682 1.71129 9.01182 1.68986 9.10647L0.147 15.4047C0.130929 15.4708 0.138072 15.5404 0.168429 15.5993C0.238072 15.7404 0.4095 15.7975 0.552358 15.7279L15.4899 8.28147C15.5452 8.25468 15.5899 8.20825 15.6184 8.15468C15.6881 8.01182 15.6309 7.8404 15.4899 7.76897ZM1.90771 13.6154L2.80593 9.94397L8.07736 8.13504C8.11843 8.12075 8.15236 8.08861 8.16664 8.04575C8.19164 7.97075 8.15236 7.8904 8.07736 7.86361L2.80593 6.05647L1.91129 2.39932L13.1256 8.02254L1.90771 13.6154Z" fill="currentColor"/>
|
||||||
</svg>
|
</svg>
|
||||||
</template>
|
</template>
|
@ -39,8 +39,6 @@
|
|||||||
import { mapState, mapMutations, mapActions } from 'vuex';
|
import { mapState, mapMutations, mapActions } from 'vuex';
|
||||||
import Buttons from '~/components/common/button/Buttons';
|
import Buttons from '~/components/common/button/Buttons';
|
||||||
import Grid from '~/components/common/Grid';
|
import Grid from '~/components/common/Grid';
|
||||||
import { CustomCheckbox } from '~/plugins/gridUtility';
|
|
||||||
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
|
||||||
import Form from '~/components/common/form/Form';
|
import Form from '~/components/common/form/Form';
|
||||||
import mixinGlobal from '@/mixin/global.js';
|
import mixinGlobal from '@/mixin/global.js';
|
||||||
import Utility from '~/plugins/utility';
|
import Utility from '~/plugins/utility';
|
||||||
@ -70,18 +68,6 @@ export default {
|
|||||||
loadGrid: false,
|
loadGrid: false,
|
||||||
gridName: 'rowDataSetTagRelGrid',
|
gridName: 'rowDataSetTagRelGrid',
|
||||||
detailDataSetTagList: myDataSetTagDetail,
|
detailDataSetTagList: myDataSetTagDetail,
|
||||||
dataPathMock: {
|
|
||||||
"rowDataSetTagRelGrid": {
|
|
||||||
column: [
|
|
||||||
{ header: 'TAG ID', name: 'id', headerAlign: 'left' },
|
|
||||||
{ header: 'TAG 명', name: 'name', headerAlign: 'left' },
|
|
||||||
{ header: '모델 Data 구분', name: 'type', headerAlign: 'left' }
|
|
||||||
],
|
|
||||||
data: dataPathDataExample,
|
|
||||||
defaultRow: dataPathDataExample,
|
|
||||||
option: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -175,7 +161,7 @@ export default {
|
|||||||
header: '사용여부',
|
header: '사용여부',
|
||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
width: 100,
|
minWidth: 80,
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
value = value === true ? '1' : '0';
|
value = value === true ? '1' : '0';
|
||||||
const newValue = _this.pageData.useFgList.filter(
|
const newValue = _this.pageData.useFgList.filter(
|
||||||
@ -190,7 +176,7 @@ export default {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
{ header: '비고', name: 'rmrk', align: 'left' },
|
{ header: '비고', name: 'rmrk', align: 'left', minWidth: 50, },
|
||||||
];
|
];
|
||||||
|
|
||||||
this.setGridColumn({
|
this.setGridColumn({
|
||||||
@ -324,7 +310,7 @@ const myDataSetTagDetail = [
|
|||||||
valueNm: 'tagNm',
|
valueNm: 'tagNm',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 mt-2',
|
class: 'py-2 mt-1',
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
@ -350,12 +336,11 @@ const myDataSetTagDetail = [
|
|||||||
valueNm: 'useFg',
|
valueNm: 'useFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 5,
|
cols: 5,
|
||||||
class: 'py-2 mt-2',
|
class: 'py-2 mt-1',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
// class: "d-flex align-end"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'TextArea',
|
type: 'TextArea',
|
||||||
@ -369,23 +354,4 @@ const myDataSetTagDetail = [
|
|||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
const dataPathDataExample = [
|
|
||||||
{
|
|
||||||
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
|
||||||
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
|
||||||
type: '합계'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
|
||||||
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
|
||||||
type: '합계'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV',
|
|
||||||
name: 'INCHEON 고온 냉동기 101호기 - 호로1',
|
|
||||||
type: '합계'
|
|
||||||
},
|
|
||||||
];
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
class="d-flex justify-space-between align-center"
|
class="d-flex justify-space-between align-center"
|
||||||
style="height: 80px;"
|
style="height: 80px;"
|
||||||
>
|
>
|
||||||
<span class="txt custom-title-4-new">공정 추가 정보</span>
|
<span class="txt custom-subtitle-tab">공정 추가 정보</span>
|
||||||
<Buttons
|
<Buttons
|
||||||
:parentPrgmId="parentPrgmId"
|
:parentPrgmId="parentPrgmId"
|
||||||
:bindingData="gridName"
|
:bindingData="gridName"
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
class="d-flex justify-space-between align-center"
|
class="d-flex justify-space-between align-center"
|
||||||
style="height: 80px;"
|
style="height: 80px;"
|
||||||
>
|
>
|
||||||
<span class="txt custom-title-4-new">공정 입출력 정보</span>
|
<span class="txt custom-subtitle-tab">공정 입출력 정보</span>
|
||||||
<Buttons
|
<Buttons
|
||||||
:parentPrgmId="parentPrgmId"
|
:parentPrgmId="parentPrgmId"
|
||||||
:bindingData="gridName"
|
:bindingData="gridName"
|
||||||
:btnActionsFnc="btnActions"
|
:btnActionsFnc="btnActions"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div ref="gridParent" >
|
<div ref="gridParent" style="height: calc(90vh - 700px);">
|
||||||
<component
|
<component
|
||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
:is="loadGrid ? 'Grid' : null"
|
:is="loadGrid ? 'Grid' : null"
|
||||||
@ -21,7 +21,7 @@
|
|||||||
:innerTabGridInfo="innerTabGridInfo"
|
:innerTabGridInfo="innerTabGridInfo"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div style="height: 25vh;" class="mt-5">
|
||||||
<component
|
<component
|
||||||
:is="'Form'"
|
:is="'Form'"
|
||||||
:bindingData="gridName"
|
:bindingData="gridName"
|
||||||
@ -98,16 +98,16 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
selectedObjId(val) {
|
selectedObjId(val) {
|
||||||
if (val === 'TAG') {
|
if (val === 'TAG') {
|
||||||
this.detailList[2].class = 'py-2 d-none';
|
this.detailList[1].class = 'd-none ';
|
||||||
this.detailList[3].class = 'py-2 d-none';
|
this.detailList[2].class = 'd-block pl-4 mt-2';
|
||||||
this.detailList[4].class = 'py-2';
|
this.detailList[3].class = 'd-block';
|
||||||
this.detailList[5].class = 'py-2';
|
this.detailList[4].class = 'pl-4 mt-2';
|
||||||
} else {
|
} else {
|
||||||
// }else if(val==="READ_PLC"){
|
// }else if(val==="READ_PLC"){
|
||||||
this.detailList[5].class = 'py-2 d-none';
|
this.detailList[4].class = 'pl-4 mt-2';
|
||||||
this.detailList[4].class = 'py-2 d-none';
|
this.detailList[3].class = 'd-block';
|
||||||
this.detailList[3].class = 'py-2';
|
this.detailList[2].class = 'd-none';
|
||||||
this.detailList[2].class = 'py-2';
|
this.detailList[1].class = 'd-block pl-4 mt-1 pb-0';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -188,6 +188,7 @@ export default {
|
|||||||
{ header: '대상 명', name: 'objNm', width: 300, align: 'left' },
|
{ header: '대상 명', name: 'objNm', width: 300, align: 'left' },
|
||||||
{
|
{
|
||||||
header: '에너지원 명',
|
header: '에너지원 명',
|
||||||
|
width: 150,
|
||||||
name: 'ercId',
|
name: 'ercId',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
@ -204,8 +205,9 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: '대상 유형',
|
header: '대상 유형',
|
||||||
|
width: 150,
|
||||||
name: 'objKind',
|
name: 'objKind',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
var retVal = '';
|
var retVal = '';
|
||||||
|
|
||||||
@ -221,7 +223,8 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '투입 생산 유형',
|
header: '투입 생산 유형',
|
||||||
name: 'inProdKind',
|
name: 'inProdKind',
|
||||||
align: 'center',
|
width: 150,
|
||||||
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
var retVal = '';
|
var retVal = '';
|
||||||
|
|
||||||
@ -237,7 +240,8 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '계산 여부',
|
header: '계산 여부',
|
||||||
name: 'calcFg',
|
name: 'calcFg',
|
||||||
align: 'center',
|
width: 150,
|
||||||
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
value = value === true ? '1' : '0';
|
value = value === true ? '1' : '0';
|
||||||
const newValue = _this.pageData.useFgList.filter(
|
const newValue = _this.pageData.useFgList.filter(
|
||||||
@ -247,7 +251,7 @@ export default {
|
|||||||
// return value === true ? "사용" : "사용안함";
|
// return value === true ? "사용" : "사용안함";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ header: '분배율(1~100)', name: 'distRt', align: 'right' },
|
{ header: '분배율(1~100)', name: 'distRt', align: 'right', width: 150 },
|
||||||
{ header: '사업장', name: 'blocId', align: 'center', hidden: true },
|
{ header: '사업장', name: 'blocId', align: 'center', hidden: true },
|
||||||
{ header: '등록 사용자', name: 'regUserNo', hidden: true },
|
{ header: '등록 사용자', name: 'regUserNo', hidden: true },
|
||||||
{ header: '등록 일자', name: 'regDttm', hidden: true },
|
{ header: '등록 일자', name: 'regDttm', hidden: true },
|
||||||
@ -266,12 +270,14 @@ export default {
|
|||||||
async getRowData(data, gridName) {
|
async getRowData(data, gridName) {
|
||||||
if (data.rowStat === 'I') {
|
if (data.rowStat === 'I') {
|
||||||
this.detailList[0].disabled = false;
|
this.detailList[0].disabled = false;
|
||||||
|
this.detailList[1].disabled = false;
|
||||||
this.detailList[2].disabled = false;
|
this.detailList[2].disabled = false;
|
||||||
this.detailList[3].disabled = false;
|
this.detailList[3].disabled = false;
|
||||||
this.detailList[4].disabled = false;
|
this.detailList[4].disabled = false;
|
||||||
this.detailList[5].disabled = false;
|
this.detailList[5].disabled = false;
|
||||||
} else {
|
} else {
|
||||||
this.detailList[0].disabled = true;
|
this.detailList[0].disabled = true;
|
||||||
|
this.detailList[1].disabled = true;
|
||||||
this.detailList[2].disabled = true;
|
this.detailList[2].disabled = true;
|
||||||
this.detailList[3].disabled = true;
|
this.detailList[3].disabled = true;
|
||||||
this.detailList[4].disabled = true;
|
this.detailList[4].disabled = true;
|
||||||
@ -290,6 +296,7 @@ export default {
|
|||||||
case 'add':
|
case 'add':
|
||||||
this.$refs[this.gridName].addRow();
|
this.$refs[this.gridName].addRow();
|
||||||
this.detailList[0].disabled = false;
|
this.detailList[0].disabled = false;
|
||||||
|
this.detailList[1].disabled = false;
|
||||||
this.detailList[2].disabled = false;
|
this.detailList[2].disabled = false;
|
||||||
this.detailList[3].disabled = false;
|
this.detailList[3].disabled = false;
|
||||||
this.detailList[4].disabled = false;
|
this.detailList[4].disabled = false;
|
||||||
@ -372,9 +379,8 @@ const myDetail = [
|
|||||||
{
|
{
|
||||||
type: 'SelectBox',
|
type: 'SelectBox',
|
||||||
label: '대상 유형',
|
label: '대상 유형',
|
||||||
disabled: false,
|
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pr-4',
|
class: 'pr-4 py-2 mt-1',
|
||||||
list: 'emMapDivList',
|
list: 'emMapDivList',
|
||||||
valueNm: 'objKind',
|
valueNm: 'objKind',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
@ -388,34 +394,16 @@ const myDetail = [
|
|||||||
{
|
{
|
||||||
type: 'ReadPlcPop',
|
type: 'ReadPlcPop',
|
||||||
label: '대상 항목',
|
label: '대상 항목',
|
||||||
|
modalTitle:'대상 항목',
|
||||||
valueNm: 'objId',
|
valueNm: 'objId',
|
||||||
disabled: false,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'pt-2 pb-0 mb-0 pl-4',
|
class: 'pl-4 py-2',
|
||||||
required: true,
|
required: true,
|
||||||
bindNm: 'objNm',
|
bindNm: 'objNm',
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
disableContent: true,
|
||||||
noText: true,
|
|
||||||
iconShow: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 공백 처리
|
|
||||||
type: 'Label',
|
|
||||||
cols: 6,
|
|
||||||
class: 'py-2 pr-4',
|
|
||||||
disabled: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'InputText',
|
|
||||||
valueNm: 'objNm',
|
|
||||||
readonly: true,
|
|
||||||
disabled: true,
|
|
||||||
cols: 6,
|
|
||||||
class: 'pl-4',
|
|
||||||
labelCols: 12,
|
|
||||||
textCols: 12,
|
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -428,16 +416,23 @@ const myDetail = [
|
|||||||
disabled: true,
|
disabled: true,
|
||||||
required: true,
|
required: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'd-none pr-4',
|
class: 'd-none pr-4 py-2',
|
||||||
disableContent: true,
|
disableContent: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// 공백 처리
|
||||||
|
type: 'Label',
|
||||||
|
cols: 6,
|
||||||
|
class: 'py-2 pr-4',
|
||||||
|
disabled: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'InputText',
|
type: 'InputText',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'd-none pt-0 pl-4',
|
class: 'pt-0 pl-4 mt-2 py-2',
|
||||||
valueNm: 'objNm',
|
valueNm: 'objNm',
|
||||||
readonly: true,
|
readonly: true,
|
||||||
disabled: true,
|
disabled: true,
|
||||||
@ -450,7 +445,7 @@ const myDetail = [
|
|||||||
label: '에너지원',
|
label: '에너지원',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
list: 'ercNmList',
|
list: 'ercNmList',
|
||||||
valueNm: 'ercId',
|
valueNm: 'ercId',
|
||||||
itemText: 'text',
|
itemText: 'text',
|
||||||
@ -465,7 +460,7 @@ const myDetail = [
|
|||||||
label: '투입생산유형',
|
label: '투입생산유형',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
list: 'cmInoutList',
|
list: 'cmInoutList',
|
||||||
valueNm: 'inProdKind',
|
valueNm: 'inProdKind',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
@ -478,7 +473,7 @@ const myDetail = [
|
|||||||
{
|
{
|
||||||
type: 'CheckBox',
|
type: 'CheckBox',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
label: '계산 여부',
|
label: '계산 여부',
|
||||||
valueNm: 'calcFg',
|
valueNm: 'calcFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
@ -495,7 +490,7 @@ const myDetail = [
|
|||||||
valueNm: 'distRt',
|
valueNm: 'distRt',
|
||||||
readonly: false,
|
readonly: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
@ -503,3 +498,10 @@ const myDetail = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -6,7 +6,7 @@
|
|||||||
<v-row>
|
<v-row>
|
||||||
<v-col :cols="8" style="padding:0px">
|
<v-col :cols="8" style="padding:0px">
|
||||||
<!-- 조회기간 -->
|
<!-- 조회기간 -->
|
||||||
<DatePicker :parentPrgmId="parentPrgmId" label="조회기간" />
|
<DatePicker :parentPrgmId="parentPrgmId" label="조회기간" customClass="tab-datepicker" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="4" class="d-flex justify-end align-center">
|
<v-col cols="4" class="d-flex justify-end align-center">
|
||||||
<Buttons
|
<Buttons
|
||||||
@ -21,9 +21,9 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<!-- Create the line between date picker and form -->
|
<!-- Create the line between date picker and form -->
|
||||||
<v-row class="my-5" no-gutters>
|
<v-row class="mt-6 mb-7" no-gutters>
|
||||||
<v-col>
|
<v-col>
|
||||||
<div style="height: 1px; background-color: #ccc;"></div>
|
<div style="height: 1px; background-color: #0000000F;"></div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row class="search-box" align="center" no-gutters style="height: 44px;">
|
<v-row class="search-box" align="center" no-gutters style="height: 44px;">
|
||||||
@ -43,7 +43,7 @@
|
|||||||
<div
|
<div
|
||||||
ref="gridParent"
|
ref="gridParent"
|
||||||
class="w100"
|
class="w100"
|
||||||
style="height: calc((100vh - 600px) / 2);"
|
style="height: calc((100vh - 500px) / 2);"
|
||||||
>
|
>
|
||||||
<Grid
|
<Grid
|
||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
@ -57,7 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row class="search-box" align="center" no-gutters style="height: 44px;">
|
<v-row class="search-box mt-2" align="center" no-gutters style="height: 44px;">
|
||||||
<v-col :cols="4">
|
<v-col :cols="4">
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
<!-- <v-icon x-small color="primary" class="mr-1"
|
<!-- <v-icon x-small color="primary" class="mr-1"
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<div
|
<div
|
||||||
ref="chartParent"
|
ref="chartParent"
|
||||||
class="h100 w100"
|
class="h100 w100"
|
||||||
style="height: calc((100vh - 600px) / 2 - 30px);"
|
style="height: calc((100vh - 500px) / 2);"
|
||||||
>
|
>
|
||||||
<component
|
<component
|
||||||
class="w100 h100"
|
class="w100 h100"
|
||||||
@ -205,8 +205,8 @@ export default {
|
|||||||
header: {
|
header: {
|
||||||
height: 38,
|
height: 38,
|
||||||
},
|
},
|
||||||
rowHeight: 29,
|
rowHeight: 37,
|
||||||
minRowHeight: 29,
|
minRowHeight: 37,
|
||||||
selectionUnit: 'row',
|
selectionUnit: 'row',
|
||||||
editingEvent: 'click',
|
editingEvent: 'click',
|
||||||
};
|
};
|
||||||
@ -378,3 +378,20 @@ function numberFormatter({ value }) {
|
|||||||
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep {
|
||||||
|
.tab-datepicker {
|
||||||
|
width: 64% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-state {
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-selection,
|
||||||
|
.tui-grid-cell-content-editor{
|
||||||
|
height: 36px !important;
|
||||||
|
// border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
class="d-flex justify-space-between"
|
class="d-flex justify-space-between mb-3 pr-4"
|
||||||
style="height: 45px;"
|
style="height: 45px;"
|
||||||
>
|
>
|
||||||
<span class="txt custom-subtitle-tab">검침 대상 추가 정보</span>
|
<span class="txt custom-subtitle-tab">검침 대상 추가 정보</span>
|
||||||
@ -102,7 +102,7 @@ export default {
|
|||||||
this.gridInit();
|
this.gridInit();
|
||||||
},
|
},
|
||||||
gridInit() {
|
gridInit() {
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
const gridHeight = this.$refs.gridParent.offsetHeight - 31;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
columnOptions: {
|
columnOptions: {
|
||||||
@ -113,8 +113,8 @@ export default {
|
|||||||
header: {
|
header: {
|
||||||
height: 28,
|
height: 28,
|
||||||
},
|
},
|
||||||
rowHeight: 29,
|
rowHeight: 36,
|
||||||
minRowHeight: 29,
|
minRowHeight: 36,
|
||||||
selectionUnit: 'row',
|
selectionUnit: 'row',
|
||||||
editingEvent: 'click',
|
editingEvent: 'click',
|
||||||
};
|
};
|
||||||
@ -440,3 +440,15 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped >
|
||||||
|
::v-deep {
|
||||||
|
.tui-grid-layer-state {
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-cell-content-editor {
|
||||||
|
height: 36px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
@ -332,7 +332,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm2: 'tagNm',
|
valueNm2: 'tagNm',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'pr-4 pb-2 py-2',
|
class: 'pr-4 pb-2 py-2 mt-2',
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
@ -345,7 +345,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm: 'ercId',
|
valueNm: 'ercId',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'pl-4 pb-2 py-3',
|
class: 'pl-4 pb-2 py-3 mt-2',
|
||||||
list: 'ercNmList',
|
list: 'ercNmList',
|
||||||
itemText: 'text',
|
itemText: 'text',
|
||||||
itemValue: 'value',
|
itemValue: 'value',
|
||||||
@ -360,7 +360,7 @@ const myReadPlcTagDetail = [
|
|||||||
readonly: true,
|
readonly: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'pt-1 py-3 pr-4',
|
class: 'pt-1 py-3 pr-4 mt-2',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -372,7 +372,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm: 'distRt',
|
valueNm: 'distRt',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-3 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
inputType: 'number',
|
inputType: 'number',
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 100,
|
max: 100,
|
||||||
@ -387,7 +387,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm: 'reprTagFg',
|
valueNm: 'reprTagFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-3 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
@ -401,7 +401,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm: 'useFg',
|
valueNm: 'useFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-3 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
@ -414,7 +414,7 @@ const myReadPlcTagDetail = [
|
|||||||
valueNm: 'rmrk',
|
valueNm: 'rmrk',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-3 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
inputType: 'string',
|
inputType: 'string',
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
|
@ -90,23 +90,40 @@
|
|||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<v-row class="flex-nowrap">
|
<v-row class="flex-nowrap">
|
||||||
<div class="menu-container">
|
<div class="menu-container">
|
||||||
<v-navigation-drawer ref="navigationdrawer" :value="drawer" :mini-variant="miniVariant" :clipped="clipped"
|
<v-navigation-drawer ref="navigationdrawer"
|
||||||
:absolute="false" mini-variant-width="60">
|
class="pt-2"
|
||||||
|
:clipped="clipped"
|
||||||
|
:absolute="false"
|
||||||
|
:mini-variant="miniVariant"
|
||||||
|
:value="drawer"
|
||||||
|
mini-variant-width="260"
|
||||||
|
>
|
||||||
|
|
||||||
<component ref="changePswdPop" :is="'ChangePswdPop'" v-show="false" :comId="this.userInfo.comId" />
|
<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"
|
<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">
|
:items="treevieItems" activatable hoverable color="#3896ff" open-on-click @update:open="openNode">
|
||||||
<template slot="label" slot-scope="{ item }">
|
<template slot="label" slot-scope="{ item }">
|
||||||
<button :class="{ 'justify-center': miniVariant }" @mouseover="doMouseOver">
|
<button :class="{ 'justify-center': miniVariant }" @mouseover="doMouseOver">
|
||||||
<v-icon v-if="item.lvl === 1 && menuIconKeys.includes(item.menuId)"
|
|
||||||
v-text="menuIconById[item.menuId]" :class="{ 'mr-2': !miniVariant }" size="20"></v-icon>
|
<v-icon
|
||||||
<v-icon v-else-if="item.lvl === 1 && !menuIconKeys.includes(item.menuId)"
|
v-if="item.lvl === 1 && menuIconKeys.includes(item.menuId)"
|
||||||
:class="{ 'mr-2': !miniVariant }" size="20">mdi-package-variant-closed</v-icon>
|
:class="{ 'mr-2': !miniVariant }"
|
||||||
<v-icon v-else-if="item.lvl === 2" :class="{ 'mr-2': !miniVariant }" size="10">
|
size="14"
|
||||||
|
v-text="menuIconById[item.menuId]"
|
||||||
|
></v-icon>
|
||||||
|
<v-icon
|
||||||
|
v-else-if="item.lvl === 1 && !menuIconKeys.includes(item.menuId)"
|
||||||
|
:class="{ 'mr-2': !miniVariant }"
|
||||||
|
size="14">mdi-package-variant-closed</v-icon>
|
||||||
|
<v-icon
|
||||||
|
v-else-if="item.lvl === 2" :class="{ 'mr-2': !miniVariant }"
|
||||||
|
size="8">
|
||||||
mdi-checkbox-blank
|
mdi-checkbox-blank
|
||||||
</v-icon>
|
</v-icon>
|
||||||
<v-icon v-else-if="item.lvl >= 3 && item.childeVo.length === 0 && item.url"
|
<v-icon
|
||||||
:class="miniVariant === false ? 'mr-2' : ''" size="9">
|
v-else-if="item.lvl >= 3 && item.childeVo.length === 0 && item.url"
|
||||||
|
:class="miniVariant === false ? 'mr-2' : ''"
|
||||||
|
size="8">
|
||||||
$depth3rdBulletDark
|
$depth3rdBulletDark
|
||||||
</v-icon>
|
</v-icon>
|
||||||
<span v-if="item.url">
|
<span v-if="item.url">
|
||||||
@ -298,6 +315,7 @@ import ThemeSwitch from "@/components/common/ThemeSwitch";
|
|||||||
import AdminMenu from "@/components/common/AdminMenu";
|
import AdminMenu from "@/components/common/AdminMenu";
|
||||||
import FadeLoader from "vue-spinner/src/FadeLoader.vue";
|
import FadeLoader from "vue-spinner/src/FadeLoader.vue";
|
||||||
import ChangePswdPop from "~/components/common/modal/ChangePswdPop";
|
import ChangePswdPop from "~/components/common/modal/ChangePswdPop";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ThemeSwitch,
|
ThemeSwitch,
|
||||||
@ -318,19 +336,17 @@ export default {
|
|||||||
myPrgmId: null,
|
myPrgmId: null,
|
||||||
treeValue: [],
|
treeValue: [],
|
||||||
menuIconById: {
|
menuIconById: {
|
||||||
// MNU0003: 'mdi-chart-line',
|
MNU0110: "$anticonAppStore",
|
||||||
// MNU0004: 'mdi-alarm-light',
|
MNU0002: "$anticonDesktop",
|
||||||
// MNU0005: 'mdi-pencil-box-outline',
|
MNU0003: "$anticonDrag",
|
||||||
// MNU0006: 'mdi-cog-outline',
|
MNU0091: "$anticonLineChart",
|
||||||
MNU0002: "mdi-monitor",
|
MNU0102: "$anticonBulb",
|
||||||
MNU0091: "mdi-chart-box",
|
MNU0103: "$anticonFileText",
|
||||||
MNU0102: "mdi-human-male-board-poll",
|
MNU0104: "$anticonNoteExpand",
|
||||||
MNU0103: "mdi-file-chart-outline",
|
MNU0106: "$anticonPieChart",
|
||||||
MNU0104: "mdi-chart-sankey-variant",
|
MNU0105: "$anticonSearch",
|
||||||
MNU0106: "mdi-database-edit-outline",
|
MNU0006: "$anticonMessage",
|
||||||
MNU0105: "mdi-chart-bell-curve",
|
MNU0007: "$anticonSetting",
|
||||||
MNU0006: "mdi-bulletin-board",
|
|
||||||
MNU0007: "mdi-cog",
|
|
||||||
},
|
},
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
loadingStackCnt: 0,
|
loadingStackCnt: 0,
|
||||||
@ -829,21 +845,6 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
// @import '@/assets/scss/common.scss';
|
@import '@/assets/scss/layout.scss';
|
||||||
.loading {
|
|
||||||
z-index: 99;
|
|
||||||
position: fixed;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
background-color: rgba(0, 0, 0, 0.4);
|
|
||||||
//box-shadow: rgba(68, 67, 67, 0.9) 0 0 0 9999px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-spinner {
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -432,7 +432,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@ -445,7 +445,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// type: "InputText",
|
// type: "InputText",
|
||||||
@ -464,7 +464,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -476,7 +476,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -488,7 +488,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -500,7 +500,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
<!-- 사용자 정보 -->
|
<!-- 사용자 정보 -->
|
||||||
<v-col :cols="7" class="h100">
|
<v-col :cols="7" class="h100">
|
||||||
<v-card class="pb-5 h100">
|
<v-card class="pb-5 h100">
|
||||||
<v-card-title class="custom-title-4">사용자 정보</v-card-title>
|
<v-card-title class="custom-title-4 pb-0">사용자 정보</v-card-title>
|
||||||
<div class="px-5" :style="{ height: 'calc(100% - 62.5px)' }">
|
<div class="px-5" :style="{ height: 'calc(100% - 62.5px)' }">
|
||||||
<v-tabs v-model="tab">
|
<v-tabs v-model="tab">
|
||||||
<v-tab
|
<v-tab
|
||||||
@ -912,17 +912,6 @@ const myColumns = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const unAsgnRoleByUserColumns = [
|
const unAsgnRoleByUserColumns = [
|
||||||
{
|
|
||||||
header: '',
|
|
||||||
name: '',
|
|
||||||
align: 'center',
|
|
||||||
width: 50,
|
|
||||||
formatter: (props) => {
|
|
||||||
return `<label class="custom-radio">
|
|
||||||
<span class="radio-mark"></span>
|
|
||||||
</label>`;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ header: '역할ID', name: 'roleId', align: 'left' },
|
{ header: '역할ID', name: 'roleId', align: 'left' },
|
||||||
{ header: '역할명', name: 'roleNm' },
|
{ header: '역할명', name: 'roleNm' },
|
||||||
{ header: '적용시작일', name: 'aplyStartDt', hidden: true },
|
{ header: '적용시작일', name: 'aplyStartDt', hidden: true },
|
||||||
@ -932,8 +921,7 @@ const unAsgnRoleByUserColumns = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const asgnRoleByUserColumns = [
|
const asgnRoleByUserColumns = [
|
||||||
|
{ header: '역할ID', name: 'roleId', align: 'left' },
|
||||||
{ header: '역할ID', name: 'roleId', align: 'center' },
|
|
||||||
{ header: '역할명', name: 'roleNm' },
|
{ header: '역할명', name: 'roleNm' },
|
||||||
{
|
{
|
||||||
header: '적용시작일',
|
header: '적용시작일',
|
||||||
@ -971,7 +959,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: false,
|
required: false,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
@ -983,7 +971,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@ -996,8 +984,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1007,7 +994,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@ -1018,7 +1005,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
list: blocCdList.map(item => ({
|
list: blocCdList.map(item => ({
|
||||||
text: item.blocNm,
|
text: item.blocNm,
|
||||||
@ -1033,7 +1020,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1044,7 +1031,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -1056,7 +1043,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -1068,7 +1055,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -1080,7 +1067,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 pl-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
|
@ -7,41 +7,21 @@
|
|||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row align="end" no-gutters>
|
<v-row align="end" no-gutters>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<InputText
|
<InputText :parentPrgmId="myPrgmId" label="배치ID" valueNm="batchId" :searchOption="true"
|
||||||
:parentPrgmId="myPrgmId"
|
customClass="input-large" />
|
||||||
label="배치ID"
|
|
||||||
valueNm="batchId"
|
|
||||||
:searchOption="true"
|
|
||||||
customClass="input-large"
|
|
||||||
/>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<InputText
|
<InputText :parentPrgmId="myPrgmId" label="배치명" valueNm="batchNm" :searchOption="true"
|
||||||
:parentPrgmId="myPrgmId"
|
customClass="input-large" />
|
||||||
label="배치명"
|
|
||||||
valueNm="batchNm"
|
|
||||||
:searchOption="true"
|
|
||||||
customClass="input-large"
|
|
||||||
/>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component
|
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'실행 결과'"
|
||||||
:is="'selectCodeList'"
|
:dataKey="'execRsltCd'" :sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
|
||||||
:parentPrgmId="myPrgmId"
|
:addAll="true" customClass="select-large" />
|
||||||
:label="'실행 결과'"
|
|
||||||
:dataKey="'execRsltCd'"
|
|
||||||
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
|
|
||||||
:addAll="true"
|
|
||||||
customClass="select-large"
|
|
||||||
/>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component
|
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'조회기간'"
|
||||||
:is="'Datepicker'"
|
customClass="datepicker-large" />
|
||||||
:parentPrgmId="myPrgmId"
|
|
||||||
:label="'조회기간'"
|
|
||||||
customClass="datepicker-large"
|
|
||||||
/>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
<div class="text-right d-flex align-end justify-end pl-9" style="gap: 8px">
|
<div class="text-right d-flex align-end justify-end pl-9" style="gap: 8px">
|
||||||
<BtnSearch />
|
<BtnSearch />
|
||||||
@ -54,37 +34,30 @@
|
|||||||
|
|
||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<!-- 배치 리스트 -->
|
<!-- 배치 리스트 -->
|
||||||
<v-col :cols="12" style="height:50%">
|
<v-col :cols="12" style="height:70%">
|
||||||
<v-card class="pb-5 h100">
|
<v-card class="h100">
|
||||||
<v-card-title>배치 리스트</v-card-title>
|
<v-card-title>배치 리스트</v-card-title>
|
||||||
<div class="h100" style="height:calc(100% - 70px)">
|
<div class="h100" style="height:calc(100% - 150px)">
|
||||||
<div ref="gridParent" class="px-5 h100">
|
<div ref="gridParent" class="px-5 h100">
|
||||||
<component
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :parentPrgmId="myPrgmId"
|
||||||
:ref="gridName"
|
:gridName="gridName" @getRowsData="getRowData" />
|
||||||
:is="loadGrid ? 'Grid' : null"
|
</div>
|
||||||
:parentPrgmId="myPrgmId"
|
<div class="d-flex align-center justify-center pt-7" v-if="loadGrid && totalCount > 0">
|
||||||
:gridName="gridName"
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
@getRowsData="getRowData"
|
@loadData="changeGrid" />
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<!-- 배치 상세 -->
|
<!-- 배치 상세 -->
|
||||||
<v-col :cols="12" style="height:50%">
|
<v-col :cols="12" style="height:30%">
|
||||||
<v-card class="pb-5 h100">
|
<v-card class="h100">
|
||||||
<div class="d-flex align-center justify-space-between pa-5">
|
<div class="d-flex align-center justify-space-between pa-5">
|
||||||
<v-card-title class="pa-0">배치 상세</v-card-title>
|
<v-card-title class="pa-0">배치 상세</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div style="height:calc(100% - 50px)">
|
<div style="height:calc(100% - 50px)" class="px-5">
|
||||||
<div ref="gridParent" class="px-5 h100">
|
<component :is="'Form'" :parentPrgmId="myPrgmId" :detailList="detailList"
|
||||||
<component
|
@gridEditingFinish="gridEditingFinish" />
|
||||||
:is="'Form'"
|
|
||||||
:parentPrgmId="myPrgmId"
|
|
||||||
:detailList="detailList"
|
|
||||||
@gridEditingFinish="gridEditingFinish"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -105,6 +78,7 @@ import Buttons from '~/components/common/button/Buttons';
|
|||||||
import Grid from '~/components/common/Grid';
|
import Grid from '~/components/common/Grid';
|
||||||
import Form from '~/components/common/form/Form';
|
import Form from '~/components/common/form/Form';
|
||||||
import Utility from '~/plugins/utility';
|
import Utility from '~/plugins/utility';
|
||||||
|
import pagination from '~/components/common/Pagination';
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
let myPrgmId;
|
let myPrgmId;
|
||||||
@ -133,6 +107,7 @@ export default {
|
|||||||
BtnSearch,
|
BtnSearch,
|
||||||
BtnExcelDownload,
|
BtnExcelDownload,
|
||||||
Buttons,
|
Buttons,
|
||||||
|
pagination,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -141,6 +116,11 @@ export default {
|
|||||||
gridName: 'rowGrid',
|
gridName: 'rowGrid',
|
||||||
// rowGridOrigin: [],
|
// rowGridOrigin: [],
|
||||||
detailList: myDetail,
|
detailList: myDetail,
|
||||||
|
itemsPerPage: 20,
|
||||||
|
itemsPerPageArray: [10, 20, 30],
|
||||||
|
limit: 20,
|
||||||
|
page: 1,
|
||||||
|
totalCount: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -161,7 +141,10 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
chkIsFind(val) {
|
chkIsFind(val) {
|
||||||
if (val) this.search();
|
if (val) {
|
||||||
|
this.page = 1;
|
||||||
|
this.search();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
chkExecRsltCd() {
|
chkExecRsltCd() {
|
||||||
this.setPageData({ isFind: true });
|
this.setPageData({ isFind: true });
|
||||||
@ -197,17 +180,16 @@ export default {
|
|||||||
// chkOpenTabList: "chkOpenTabList"
|
// chkOpenTabList: "chkOpenTabList"
|
||||||
// }),
|
// }),
|
||||||
init() {
|
init() {
|
||||||
// this.layoutInit();
|
this.layoutInit();
|
||||||
this.gridInit();
|
this.gridInit();
|
||||||
},
|
},
|
||||||
// layoutInit() {
|
layoutInit() {
|
||||||
// const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
||||||
// this.$refs.contents.style.height = `calc(100% - ${searchFilterHeight}px)`;
|
this.$refs.contents.style.height = `calc(100% - 30px - ${searchFilterHeight}px)`;
|
||||||
// },
|
},
|
||||||
gridInit() {
|
gridInit() {
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
scrollX: false,
|
scrollX: false,
|
||||||
};
|
};
|
||||||
@ -219,10 +201,10 @@ export default {
|
|||||||
|
|
||||||
const _this = this;
|
const _this = this;
|
||||||
const myColumns = [
|
const myColumns = [
|
||||||
{ header: 'No.', name: 'batchLogSeq', align: 'right', width: 100 },
|
{ header: 'No.', name: 'batchLogSeq', align: 'right', width: 90 },
|
||||||
{ header: '배치ID', name: 'batchId', align: 'right', width: 100 },
|
{ header: '배치ID', name: 'batchId', align: 'right', width: 90 },
|
||||||
{ header: '배치명', name: 'batchNm', align: 'left', width: 150 },
|
{ header: '배치명', name: 'batchNm', align: 'left', width: 150 },
|
||||||
{ header: '실행 일자', name: 'execDt', align: 'right', width: 80 },
|
{ header: '실행 일자', name: 'execDt', align: 'right', width: 70 },
|
||||||
{
|
{
|
||||||
header: '실행 결과',
|
header: '실행 결과',
|
||||||
name: 'execRsltCd',
|
name: 'execRsltCd',
|
||||||
@ -252,9 +234,9 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 160,
|
width: 160,
|
||||||
},
|
},
|
||||||
{ header: '등록자NO', name: 'regUserNo', width: 120 },
|
{ header: '등록자NO', name: 'regUserNo', width: 100 },
|
||||||
{ header: '등록일시', name: 'regDttm', align: 'center', width: 160 },
|
{ header: '등록일시', name: 'regDttm', align: 'center', width: 160 },
|
||||||
{ header: '수정자NO', name: 'procUserNo', width: 120 },
|
{ header: '수정자NO', name: 'procUserNo', width: 100 },
|
||||||
{ header: '수정일시', name: 'procDttm', align: 'center', width: 160 },
|
{ header: '수정일시', name: 'procDttm', align: 'center', width: 160 },
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -274,6 +256,11 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
async getRowGridData() {
|
async getRowGridData() {
|
||||||
|
this.loadGrid = false;
|
||||||
|
// this.setGridData({
|
||||||
|
// gridKey: this.gridName,
|
||||||
|
// value: [],
|
||||||
|
// });
|
||||||
const res = await this.postApiReturn({
|
const res = await this.postApiReturn({
|
||||||
apiKey: 'selectBatchLog',
|
apiKey: 'selectBatchLog',
|
||||||
resKey: 'batchLogData',
|
resKey: 'batchLogData',
|
||||||
@ -282,8 +269,24 @@ export default {
|
|||||||
batchNm: this.pageData.batchNm, // 검색키워드: 배치명
|
batchNm: this.pageData.batchNm, // 검색키워드: 배치명
|
||||||
execRsltCd: this.pageData.execRsltCd, //배치 실행 결과
|
execRsltCd: this.pageData.execRsltCd, //배치 실행 결과
|
||||||
fromDt: this.pageData.fromDt,
|
fromDt: this.pageData.fromDt,
|
||||||
|
limit: this.limit,
|
||||||
|
page: this.page,
|
||||||
|
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const res2 = await this.postApiReturn({
|
||||||
|
apiKey: 'selectBatchLogPageTotal',
|
||||||
|
resKey: 'batchLogPageTotal',
|
||||||
|
sendParam: {
|
||||||
|
batchId: this.pageData.batchId, // 검색키워드: 배치ID
|
||||||
|
batchNm: this.pageData.batchNm, // 검색키워드: 배치명
|
||||||
|
execRsltCd: this.pageData.execRsltCd, //배치 실행 결과
|
||||||
|
fromDt: this.pageData.fromDt,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.totalCount = res2[0].totalcount;
|
||||||
|
|
||||||
const newRes = res.map(item => {
|
const newRes = res.map(item => {
|
||||||
const newObj = {
|
const newObj = {
|
||||||
...item,
|
...item,
|
||||||
@ -302,6 +305,7 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
this.loadGrid = true;
|
||||||
if (newRes.length > 0) {
|
if (newRes.length > 0) {
|
||||||
this.$refs[this.gridName].focus({
|
this.$refs[this.gridName].focus({
|
||||||
rowKey: this.chkRowGridSelectKey || 0,
|
rowKey: this.chkRowGridSelectKey || 0,
|
||||||
@ -361,6 +365,12 @@ export default {
|
|||||||
}
|
}
|
||||||
return retVal;
|
return retVal;
|
||||||
},
|
},
|
||||||
|
changeGrid: async function (pageNum, limit) {
|
||||||
|
this.page = pageNum;
|
||||||
|
this.limit = limit;
|
||||||
|
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -428,6 +438,7 @@ const myDetail = [
|
|||||||
readonly: true,
|
readonly: true,
|
||||||
cols: 12,
|
cols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2',
|
||||||
|
rows: 3
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
@ -41,7 +41,7 @@
|
|||||||
<v-card-title>
|
<v-card-title>
|
||||||
<span class="custom-title-4">캘린더 미리보기</span>
|
<span class="custom-title-4">캘린더 미리보기</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-actions class="px-5 d-block" >
|
<v-card-actions class="px-5 d-block">
|
||||||
<Calendar :parentPrgmId="myPrgmId" :gridName="gridName" :headerVisible="false"
|
<Calendar :parentPrgmId="myPrgmId" :gridName="gridName" :headerVisible="false"
|
||||||
:showTitle="false" />
|
:showTitle="false" />
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
@ -470,20 +470,21 @@ const defaultData = {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.selectbox:focus {
|
::v-deep {
|
||||||
|
.selectbox:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendarOption {
|
.calendarOption {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
select.selectbox {
|
select.selectbox {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -509,9 +510,13 @@ select.selectbox {
|
|||||||
/* 네이티브 외형 감추기 */
|
/* 네이티브 외형 감추기 */
|
||||||
-moz-appearance: auto;
|
-moz-appearance: auto;
|
||||||
appearance: auto;
|
appearance: auto;
|
||||||
}
|
background: #fff;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
border-radius: 6px;
|
||||||
|
color: rgba(0,0,0,0.87843);
|
||||||
|
}
|
||||||
|
|
||||||
.tui-grid-layer-editing {
|
.tui-grid-layer-editing {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
// background-image: initial;
|
// background-image: initial;
|
||||||
@ -532,9 +537,9 @@ select.selectbox {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
border-width: 0px;
|
border-width: 0px;
|
||||||
// box-sizing: border-box;
|
// box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
::v-deep {
|
|
||||||
.custom-vc-calender {
|
.custom-vc-calender {
|
||||||
.vc-header {
|
.vc-header {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
class="mr-1" icon="unordered-list">목록</a-button>
|
class="mr-1" icon="unordered-list">목록</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
||||||
class="mr-1" icon="send-outlined">
|
class="mr-1" icon="send-outlined">
|
||||||
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
<v-icon small :class="['mr-2']" >$icoSend</v-icon>
|
||||||
답글
|
답글
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
<v-col :cols="12" class="mt-5 pb-4">
|
<v-col :cols="12" class="mt-5 pb-4">
|
||||||
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
|
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" style="min-height: 30vh;" class="pa-0 custom-view">
|
<v-col :cols="12" style="min-height: 50vh;" class="pa-0 custom-view">
|
||||||
<v-card class="pa-3" style="overflow-y:auto;">
|
<v-card class="pa-3" style="overflow-y:auto;">
|
||||||
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
|
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
|
||||||
:initialValue="viewActionData.content" theme="white"
|
:initialValue="viewActionData.content" theme="white"
|
||||||
@ -60,9 +60,13 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">
|
<v-card-title class="custom-title-7 pa-0">
|
||||||
파일목록
|
파일목록
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div v-for="fileData in viewActionData.fileData" :key="fileData.apndFileId" class="file-item" style="background-color: unset;">
|
<div v-for="fileData in viewActionData.fileData"
|
||||||
<a @click.prevent="downloadFile(fileData)">
|
:key="fileData.apndFileId"
|
||||||
<div class="d-flex justify-start search-box-label">
|
:class="['file-item', isDarkMode?'dark':'light']"
|
||||||
|
style="background-color: unset;"
|
||||||
|
>
|
||||||
|
<a @click.prevent="downloadFile(fileData)" class="pa-0">
|
||||||
|
<div class="d-flex justify-start search-box-label mb-0">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' +
|
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' +
|
||||||
fileData.apndFileExt }}</span>
|
fileData.apndFileExt }}</span>
|
||||||
@ -96,7 +100,8 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="writeActionData.fileData">
|
<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">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -105,15 +110,17 @@
|
|||||||
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
<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>
|
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false"
|
<a-button @click="writePageButtonGroupClickEvent('cancel')"
|
||||||
class="mr-2">취소</a-button>
|
:ripple="false"
|
||||||
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary" >취소</a-button>
|
||||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
||||||
type="primary">등록</a-button>
|
type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -142,7 +149,8 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="replyActionData.fileData">
|
<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">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -151,7 +159,7 @@
|
|||||||
@click="replyActionData.fileData.splice(index, 1)" />
|
@click="replyActionData.fileData.splice(index, 1)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
<a-button class="ant-btn-popup-default mt-3" color="primary" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
||||||
@ -159,7 +167,10 @@
|
|||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('cancel')" :ripple="false">취소</a-button>
|
<a-button @click="replyPageButtonGroupClickEvent('cancel')"
|
||||||
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary"
|
||||||
|
:ripple="false">취소</a-button>
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
||||||
type="primary">등록</a-button>
|
type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -168,7 +179,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 답글 작성 페이지 끝 -->
|
<!-- 답글 작성 페이지 끝 -->
|
||||||
<!-- 수정 페이지 시작 -->
|
<!-- 수정 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'update'">
|
<div v-if="pageActionFlag == 'update'" class="update">
|
||||||
<v-card>
|
<v-card>
|
||||||
<div class="pa-5">
|
<div class="pa-5">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="center" no-gutters>
|
||||||
@ -190,7 +201,8 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="updateActionData.fileData">
|
<div class="" v-if="updateActionData.fileData">
|
||||||
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
||||||
class="file-item d-flex justify-space-between">
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
@ -199,9 +211,11 @@
|
|||||||
@click="updateActionData.fileData.splice(index, 1)" />
|
@click="updateActionData.fileData.splice(index, 1)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="" v-if="updateActionData.currentFileList">
|
<div class="current-files" v-if="updateActionData.currentFileList">
|
||||||
<div v-for="(fileData, index) in updateActionData.currentFileList"
|
<div v-for="(fileData, index) in updateActionData.currentFileList"
|
||||||
:key="fileData.apndFileId" class="file-item d-flex justify-space-between">
|
:key="fileData.apndFileId"
|
||||||
|
:class="['file-item d-flex justify-space-between', isDarkMode?'dark':'light']"
|
||||||
|
>
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
<v-icon style="font-size: 18px;">mdi-paperclip</v-icon>
|
||||||
<span @click.prevent="downloadFile(fileData)" href="#"
|
<span @click.prevent="downloadFile(fileData)" href="#"
|
||||||
@ -212,7 +226,7 @@
|
|||||||
@click="addFileToDeleteFileList(fileData)" />
|
@click="addFileToDeleteFileList(fileData)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
<a-button class="ant-btn-popup-default mt-2" color="primary" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||||
@ -220,7 +234,10 @@
|
|||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')">취소</a-button>
|
<a-button @click="updatePageButtonGroupClickEvent('cancel')"
|
||||||
|
class="ant-btn-popup-default mr-2"
|
||||||
|
color="primary"
|
||||||
|
>취소</a-button>
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -1042,17 +1059,6 @@ const defaultData = {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.file-item {
|
|
||||||
width: auto;
|
|
||||||
margin: 2px 0;
|
|
||||||
padding: 4px;
|
|
||||||
background-color: #0000000A;
|
|
||||||
|
|
||||||
.file-item-name {
|
|
||||||
color: #1677FF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.v-input__slot {
|
.v-input__slot {
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
@ -1076,17 +1082,46 @@ const defaultData = {
|
|||||||
font-size: 1.0rem !important;
|
font-size: 1.0rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toastui-editor-mode-switch .tab-item.active {
|
|
||||||
color: #1677FF
|
|
||||||
}
|
|
||||||
|
|
||||||
.toastui-editor-light .toastui-editor-mode-switch .tab-item {
|
|
||||||
color: #000000E0
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-icon.anticon-delete svg {
|
.v-icon.anticon-delete svg {
|
||||||
width: 14px;
|
width: 14px;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@each $theme in dark, light {
|
||||||
|
@include theme($theme);
|
||||||
|
|
||||||
|
::v-deep {
|
||||||
|
.toastui-editor-#{$theme} {
|
||||||
|
.toastui-editor-mode-switch {
|
||||||
|
>.tab-item {
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
color: map-deep-get($config, #{$theme}, "card-title-color") !important;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: map-deep-get($config, #{$theme}, "card-text-info-color") !important;
|
||||||
|
border-top: 1px solid map-deep-get($config, #{$theme}, "card-text-info-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-item {
|
||||||
|
&.#{$theme} {
|
||||||
|
width: auto;
|
||||||
|
margin: 2px 0;
|
||||||
|
padding: 4px;
|
||||||
|
background-color: map-deep-get($config, #{$theme}, "v-calendar-day-in-not-month-color");
|
||||||
|
|
||||||
|
.file-item-name {
|
||||||
|
color: map-deep-get($config, #{$theme}, "card-text-info-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="mainDiv" class="l-layout">
|
<div ref="mainDiv" class="l-layout">
|
||||||
|
<CommonPageTitle/>
|
||||||
<v-row ref="searchFilter">
|
<v-row ref="searchFilter">
|
||||||
<v-col :cols="12">
|
<v-col :cols="12">
|
||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
@ -287,7 +288,7 @@ export default {
|
|||||||
header: 'Data 형식',
|
header: 'Data 형식',
|
||||||
name: 'addInfoDataKind',
|
name: 'addInfoDataKind',
|
||||||
minWidth: 85,
|
minWidth: 85,
|
||||||
align: 'center',
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
let retVal = '';
|
let retVal = '';
|
||||||
const newValue = _this.pageData.addInfoDataKindList.filter(
|
const newValue = _this.pageData.addInfoDataKindList.filter(
|
||||||
@ -304,7 +305,7 @@ export default {
|
|||||||
header: '사용여부',
|
header: '사용여부',
|
||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
minWidth: 85,
|
minWidth: 85,
|
||||||
align: 'center',
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
let retVal = '';
|
let retVal = '';
|
||||||
value = value === true ? '1' : '0';
|
value = value === true ? '1' : '0';
|
||||||
|
@ -512,7 +512,7 @@
|
|||||||
<v-col cols="12" sm="12" xl="12" style="height: 300px">
|
<v-col cols="12" sm="12" xl="12" style="height: 300px">
|
||||||
<v-card style="border-radius: 4px" class="pb-5">
|
<v-card style="border-radius: 4px" class="pb-5">
|
||||||
<div style="height: 20px"></div>
|
<div style="height: 20px"></div>
|
||||||
<div class="h100 px-5" style="height: calc(100% - 30px)">
|
<div class="h100 px-5" style="height: calc(100% - 70px)">
|
||||||
<div ref="gridParent" class="h100 w100">
|
<div ref="gridParent" class="h100 w100">
|
||||||
<component
|
<component
|
||||||
:is="loadGrid ? 'Grid' : null"
|
:is="loadGrid ? 'Grid' : null"
|
||||||
@ -521,6 +521,16 @@
|
|||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
@dblClick="gridClickEvent"
|
@dblClick="gridClickEvent"
|
||||||
/>
|
/>
|
||||||
|
<div v-if="loadGrid && totalCount > 0" class="pagination-wrapper">
|
||||||
|
<pagination
|
||||||
|
id="pagination"
|
||||||
|
:total-count="totalCount"
|
||||||
|
:page-num="page"
|
||||||
|
:limit="limit"
|
||||||
|
:itemsPerPageArray="itemsPerPageArray"
|
||||||
|
@loadData="changeGrid"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
@ -539,6 +549,7 @@ import DateUtility from "~/plugins/dateUtility";
|
|||||||
import Utility from "~/plugins/utility";
|
import Utility from "~/plugins/utility";
|
||||||
import Grid from "~/components/common/Grid";
|
import Grid from "~/components/common/Grid";
|
||||||
import Chart from "~/components/common/Chart";
|
import Chart from "~/components/common/Chart";
|
||||||
|
import pagination from "~/components/common/Pagination";
|
||||||
|
|
||||||
import AntCard from "~/components/common/card/AntCard";
|
import AntCard from "~/components/common/card/AntCard";
|
||||||
|
|
||||||
@ -579,7 +590,8 @@ export default {
|
|||||||
Chart,
|
Chart,
|
||||||
UnusedStatPopPage,
|
UnusedStatPopPage,
|
||||||
EtcStatPopPage,
|
EtcStatPopPage,
|
||||||
PageTitle
|
PageTitle,
|
||||||
|
pagination
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState({
|
...mapState({
|
||||||
@ -697,6 +709,10 @@ export default {
|
|||||||
|
|
||||||
gridName: "dashBoard_grid_01",
|
gridName: "dashBoard_grid_01",
|
||||||
loadGrid: false,
|
loadGrid: false,
|
||||||
|
itemsPerPageArray: [10, 20, 50],
|
||||||
|
limit: 10,
|
||||||
|
page: 1,
|
||||||
|
totalCount: 0,
|
||||||
isGridLoading: true,
|
isGridLoading: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -735,6 +751,11 @@ export default {
|
|||||||
}
|
}
|
||||||
this.timer = setInterval(this.search, 90000); //15분 주기마다 갱신
|
this.timer = setInterval(this.search, 90000); //15분 주기마다 갱신
|
||||||
},
|
},
|
||||||
|
changeGrid: async function (pageNum, limit) {
|
||||||
|
this.page = pageNum;
|
||||||
|
this.limit = limit;
|
||||||
|
await this.getGridData();
|
||||||
|
},
|
||||||
async search() {
|
async search() {
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1500));
|
await new Promise((resolve) => setTimeout(resolve, 1500));
|
||||||
if (this.$router.currentRoute.fullPath == this.myHome.root) {
|
if (this.$router.currentRoute.fullPath == this.myHome.root) {
|
||||||
@ -756,6 +777,41 @@ export default {
|
|||||||
// gridHeight = gridHeight*0.9
|
// gridHeight = gridHeight*0.9
|
||||||
gridHeight = this.$refs.gridParent.offsetHeight - 35;
|
gridHeight = this.$refs.gridParent.offsetHeight - 35;
|
||||||
}
|
}
|
||||||
|
// Define custom button
|
||||||
|
class CustomButton {
|
||||||
|
constructor(props, pageData) {
|
||||||
|
const { grid, rowKey, columnInfo } = props;
|
||||||
|
const gridData = grid.store.data.rawData;
|
||||||
|
const value = gridData[rowKey][columnInfo.name];
|
||||||
|
const onClickCallback = columnInfo.renderer.options.onClick;
|
||||||
|
|
||||||
|
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||||
|
const elDiv = document.createElement("div");
|
||||||
|
elDiv.innerHTML = `<span>${value}</span>`;
|
||||||
|
$(elDiv).addClass("tui-grid-cell-content d-flex justify-space-between");
|
||||||
|
const el2 = document.createElement("button");
|
||||||
|
$(el2).addClass("edit-btn blue--text");
|
||||||
|
el2.innerText = "보기";
|
||||||
|
elDiv.appendChild(el2);
|
||||||
|
this.el = elDiv;
|
||||||
|
if (!this.disabled && typeof onClickCallback === "function") {
|
||||||
|
// click 이벤트
|
||||||
|
this.el.addEventListener("click", function (event) {
|
||||||
|
onClickCallback(rowKey);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
getValue() {
|
||||||
|
// return this.el.value;
|
||||||
|
}
|
||||||
|
mounted() {
|
||||||
|
// this.el.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
// scrollX: false,
|
// scrollX: false,
|
||||||
setScroll: true,
|
setScroll: true,
|
||||||
@ -840,7 +896,42 @@ export default {
|
|||||||
{ header: "주의", name: "careStndVal", align: "right", width: 40 },
|
{ header: "주의", name: "careStndVal", align: "right", width: 40 },
|
||||||
{ header: "경고", name: "warnStndVal", align: "right", width: 40 },
|
{ header: "경고", name: "warnStndVal", align: "right", width: 40 },
|
||||||
{ header: "가이드", name: "totVal", align: "right", width: 40 },
|
{ header: "가이드", name: "totVal", align: "right", width: 40 },
|
||||||
{ header: "알람 내용", name: "alrmMsg", align: "left", resizable: false },
|
{ header: "알람 내용", name: "alrmMsg", align: "left", resizable: false,
|
||||||
|
// Render custom button to switch page instead of double click on row
|
||||||
|
renderer: {
|
||||||
|
type: CustomButton,
|
||||||
|
options: {
|
||||||
|
value: "보기",
|
||||||
|
onClick: (rowKey) => {
|
||||||
|
var gridInstance = this.$refs[this.gridName].gridInstance;
|
||||||
|
var eventRowData = gridInstance.invoke("getRow", rowKey);
|
||||||
|
var data = {
|
||||||
|
cmCycle: "CYC_DAY",
|
||||||
|
fromDt:
|
||||||
|
eventRowData.totDttm != undefined
|
||||||
|
? eventRowData.totDttm
|
||||||
|
: Utility.setFormatDate(new Date(), "YYYY-MM-DD HH:mm"),
|
||||||
|
fabId: eventRowData.fabId,
|
||||||
|
eqpmKindId: eventRowData.eqpmKindId,
|
||||||
|
eqpmGrpId: eventRowData.eqpmGrpId,
|
||||||
|
eqpmId: eventRowData.eqpmId,
|
||||||
|
};
|
||||||
|
var key = "tick_" + Math.random();
|
||||||
|
this.$router.push({
|
||||||
|
name: "ems-effc-EnrgUseEqpmDetlMntrPage",
|
||||||
|
query: {
|
||||||
|
prgmId: "PRG0082",
|
||||||
|
// tick:key
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
...data,
|
||||||
|
key: key,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{ header: "설비종류", name: "eqpmKindId", align: "left", hidden: true },
|
{ header: "설비종류", name: "eqpmKindId", align: "left", hidden: true },
|
||||||
{ header: "설비종류", name: "eqpmKindNm", align: "left", hidden: true },
|
{ header: "설비종류", name: "eqpmKindNm", align: "left", hidden: true },
|
||||||
];
|
];
|
||||||
@ -855,11 +946,21 @@ export default {
|
|||||||
},
|
},
|
||||||
async getGridData() {
|
async getGridData() {
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
// console
|
// Get total records of grid
|
||||||
|
const totalRes = await this.postApiReturn({
|
||||||
|
apiKey: "selectIssueGdIdxDataPageTotal",
|
||||||
|
resKey: "issueGdIdxDataPageTotal",
|
||||||
|
});
|
||||||
|
this.totalCount = totalRes[0].totalcount;
|
||||||
|
|
||||||
const res = await this.postApiReturn({
|
const res = await this.postApiReturn({
|
||||||
apiKey: "selectIssueGdIdxData",
|
apiKey: "selectIssueGdIdxData",
|
||||||
resKey: "issueGdIdxData",
|
resKey: "issueGdIdxData",
|
||||||
sendParam: {},
|
sendParam: {
|
||||||
|
limit: this.limit,
|
||||||
|
page: this.page,
|
||||||
|
offset: (this.page - 1) * this.limit,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
// let fakeData = [
|
// let fakeData = [
|
||||||
// {
|
// {
|
||||||
@ -1196,7 +1297,8 @@ export default {
|
|||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
left: "22%",
|
left: "22%",
|
||||||
radius: ["50%", "80%"], // Bigger inner and outer radius
|
bottom: "23",
|
||||||
|
radius: ["67%", "97%"], // Bigger inner and outer radius
|
||||||
center: ["60%", "50%"], // Shift chart slightly right to make room for legend
|
center: ["60%", "50%"], // Shift chart slightly right to make room for legend
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
borderColor: "#fff", // Color of the gap
|
borderColor: "#fff", // Color of the gap
|
||||||
@ -1272,10 +1374,16 @@ export default {
|
|||||||
top: "middle",
|
top: "middle",
|
||||||
type: "scroll",
|
type: "scroll",
|
||||||
orient: "vertical",
|
orient: "vertical",
|
||||||
left: "left",
|
left: "20",
|
||||||
|
icon: 'rect',
|
||||||
|
itemWidth: 15, // Width of the legend icon
|
||||||
|
itemHeight: 15,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: this.isDarkMode ? "#fff" : "#333333",
|
color: this.isDarkMode ? "#fff" : "#333333",
|
||||||
},
|
},
|
||||||
|
itemStyle: {
|
||||||
|
borderWidth: 0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
series: seriesData,
|
series: seriesData,
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="l-layout">
|
<div class="l-layout">
|
||||||
|
<CommonPageTitle/>
|
||||||
<v-row ref="searchFilter">
|
<v-row ref="searchFilter">
|
||||||
<v-col :cols="12">
|
<v-col :cols="12">
|
||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
@ -12,6 +13,7 @@
|
|||||||
dataKey="searchLocKind"
|
dataKey="searchLocKind"
|
||||||
:sendParam="{ commGrpCd: 'EM_LOC_KIND', useFg: '1' }"
|
:sendParam="{ commGrpCd: 'EM_LOC_KIND', useFg: '1' }"
|
||||||
:addAll="true"
|
:addAll="true"
|
||||||
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
@ -22,6 +24,7 @@
|
|||||||
dataKey="searchEccKind"
|
dataKey="searchEccKind"
|
||||||
:sendParam="{ commGrpCd: 'EM_ECC_KIND', useFg: '1' }"
|
:sendParam="{ commGrpCd: 'EM_ECC_KIND', useFg: '1' }"
|
||||||
:addAll="true"
|
:addAll="true"
|
||||||
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<!-- 사업장 -->
|
<!-- 사업장 -->
|
||||||
@ -42,6 +45,7 @@
|
|||||||
dataKey="useFg"
|
dataKey="useFg"
|
||||||
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
|
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
|
||||||
:addAll="true"
|
:addAll="true"
|
||||||
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
@ -52,6 +56,7 @@
|
|||||||
:labelCols="12"
|
:labelCols="12"
|
||||||
:textCols="12"
|
:textCols="12"
|
||||||
:searchOption="true"
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col class="text-right">
|
<v-col class="text-right">
|
||||||
@ -64,6 +69,7 @@
|
|||||||
:is="'SelectBlocMstr'"
|
:is="'SelectBlocMstr'"
|
||||||
ref="SelectBlocMstr"
|
ref="SelectBlocMstr"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
|
customClass="select-large"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -99,7 +105,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="7" style="min-height:75vh;">
|
<v-col :cols="7" style="min-height:75vh;">
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<v-card-title class="custom-title-4" style="min-height:76px;"
|
<v-card-title class="custom-title-4 pb-0" style="min-height:65px;"
|
||||||
>공정 상세
|
>공정 상세
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div class="px-5" style="height:calc(100% - 76px)">
|
<div class="px-5" style="height:calc(100% - 76px)">
|
||||||
@ -471,7 +477,7 @@ export default {
|
|||||||
header: '사용 여부',
|
header: '사용 여부',
|
||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
width: gridWidth * 0.18,
|
width: gridWidth * 0.18,
|
||||||
align: 'center',
|
align: 'left',
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
value = value === true ? '1' : '0';
|
value = value === true ? '1' : '0';
|
||||||
const newValue = _this.pageData.useFgList.filter(
|
const newValue = _this.pageData.useFgList.filter(
|
||||||
@ -895,7 +901,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 px-4',
|
||||||
required: true,
|
required: true,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
},
|
},
|
||||||
@ -921,7 +927,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'pb-0 mb-0 pr-4',
|
class: 'pb-0 mb-0 pr-4 mt-2',
|
||||||
disableContent: true,
|
disableContent: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -932,7 +938,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 mb-0 pb-0 pl-4',
|
class: 'py-2 mb-0 pb-0 px-4 mt-2',
|
||||||
list: 'locKindList',
|
list: 'locKindList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -944,13 +950,13 @@ const myDetail = [
|
|||||||
valueNm: 'upEccNm',
|
valueNm: 'upEccNm',
|
||||||
readonly: true,
|
readonly: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// 공백 처리
|
// 공백 처리
|
||||||
type: 'Label',
|
type: 'Label',
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 px-4 mt-2',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
@ -964,7 +970,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
list: 'eccKindList',
|
list: 'eccKindList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -979,7 +985,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 px-4 mt-2',
|
||||||
inputType: 'number',
|
inputType: 'number',
|
||||||
iconShow: true
|
iconShow: true
|
||||||
// onkeydown : "if(this.value > 100) this.value = 100;if(this.value < 0) this.value = 0;if(this.value == '') this.value = 0;"
|
// onkeydown : "if(this.value > 100) this.value = 100;if(this.value < 0) this.value = 0;if(this.value == '') this.value = 0;"
|
||||||
@ -992,7 +998,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
list: 'blocIdList',
|
list: 'blocIdList',
|
||||||
itemText: 'blocNm',
|
itemText: 'blocNm',
|
||||||
itemValue: 'blocId',
|
itemValue: 'blocId',
|
||||||
@ -1006,7 +1012,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-2 px-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
@ -1017,7 +1023,7 @@ const myDetail = [
|
|||||||
valueNm: 'eccFg',
|
valueNm: 'eccFg',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pr-4 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
},
|
},
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<v-tabs-items v-model="tab" style="height: calc(100% - 65px);" class="pt-6 py-2">
|
<v-tabs-items v-model="tab" style="height: calc(100% - 65px);" class="pt-6 py-2">
|
||||||
<v-tab-item v-for="(item, idx) in items" :key="item.id">
|
<v-tab-item v-for="(item, idx) in items" :key="item.id">
|
||||||
<component v-if="item.id == 'readPlcBaseInfoTab'" :is="'Form'" :parentPrgmId="myPrgmId"
|
<component v-if="item.id == 'readPlcBaseInfoTab'" :is="'Form'" :parentPrgmId="myPrgmId"
|
||||||
:detailList="detailList" :bindingData="gridName"
|
:detailList="f" :bindingData="gridName"
|
||||||
@gridEditingFinish="gridEditingFinish" />
|
@gridEditingFinish="gridEditingFinish" />
|
||||||
<ReadPlcAddInfoTab v-if="item.id == 'readPlcAddInfoTab'" :parentPrgmId="myPrgmId"
|
<ReadPlcAddInfoTab v-if="item.id == 'readPlcAddInfoTab'" :parentPrgmId="myPrgmId"
|
||||||
:innerTabGridInfo="{ tab, idx }" />
|
:innerTabGridInfo="{ tab, idx }" />
|
||||||
|
@ -84,9 +84,9 @@
|
|||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row >
|
<v-row align="stretch">
|
||||||
<v-col :cols="5" class="h100">
|
<v-col :cols="5">
|
||||||
<v-card class="pb-5">
|
<v-card class="d-flex flex-column h100">
|
||||||
<v-card-title class="d-flex justify-space-between align-end">
|
<v-card-title class="d-flex justify-space-between align-end">
|
||||||
<span class="tit ft-size_20 ft-weight_600">에너지원 정보</span>
|
<span class="tit ft-size_20 ft-weight_600">에너지원 정보</span>
|
||||||
<Buttons
|
<Buttons
|
||||||
@ -96,8 +96,8 @@
|
|||||||
:btnActionsFnc="btnActions"
|
:btnActionsFnc="btnActions"
|
||||||
/>
|
/>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div class="px-5" style="height:calc(100% - 106px)">
|
<div class="px-5" style="height: auto;">
|
||||||
<div ref="gridParent" class="w100 h100">
|
<div ref="gridParent" class="w100">
|
||||||
<component
|
<component
|
||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
:is="loadGrid ? 'Grid' : null"
|
:is="loadGrid ? 'Grid' : null"
|
||||||
@ -111,10 +111,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="7" class="h100">
|
|
||||||
<v-card class="pb-5">
|
<v-col :cols="7">
|
||||||
|
<v-card class="d-flex flex-column h100">
|
||||||
<v-card-title>에너지원 상세</v-card-title>
|
<v-card-title>에너지원 상세</v-card-title>
|
||||||
<div class="px-5" style="min-height: auto;">
|
<div class="px-5" style="height: auto;">
|
||||||
<v-tabs v-model="tab">
|
<v-tabs v-model="tab">
|
||||||
<v-tab
|
<v-tab
|
||||||
v-for="item in items"
|
v-for="item in items"
|
||||||
@ -124,11 +125,7 @@
|
|||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</v-tab>
|
</v-tab>
|
||||||
</v-tabs>
|
</v-tabs>
|
||||||
<v-tabs-items
|
<v-tabs-items v-model="tab" class="py-6">
|
||||||
v-model="tab"
|
|
||||||
class="py-6"
|
|
||||||
style="min-height: auto;"
|
|
||||||
>
|
|
||||||
<v-tab-item v-for="(item, idx) in items" :key="item.id">
|
<v-tab-item v-for="(item, idx) in items" :key="item.id">
|
||||||
<component
|
<component
|
||||||
v-if="item.id == 'ercInfoTab'"
|
v-if="item.id == 'ercInfoTab'"
|
||||||
@ -835,7 +832,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-3 pr-4',
|
||||||
required: false,
|
required: false,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -848,7 +845,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-3 pl-4',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -860,7 +857,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
list: 'ercKindList',
|
list: 'ercKindList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -875,7 +872,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
list: 'readObjList',
|
list: 'readObjList',
|
||||||
itemText: 'readObjNm',
|
itemText: 'readObjNm',
|
||||||
itemValue: 'readObjId',
|
itemValue: 'readObjId',
|
||||||
@ -890,7 +887,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
list: 'chrgKindList',
|
list: 'chrgKindList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -905,7 +902,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'InputText',
|
type: 'InputText',
|
||||||
@ -916,7 +913,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -928,7 +925,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
list: 'blocMstrList',
|
list: 'blocMstrList',
|
||||||
itemText: 'blocNm',
|
itemText: 'blocNm',
|
||||||
itemValue: 'blocId',
|
itemValue: 'blocId',
|
||||||
@ -944,7 +941,7 @@ const myDetail = [
|
|||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
// class: 'py-2',
|
// class: 'py-2',
|
||||||
class: 'pb-0 mb-0 pr-4',
|
class: 'pb-0 mb-0 pr-4 mt-2',
|
||||||
disableContent: true,
|
disableContent: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -956,7 +953,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'pb-0 mb-0 pl-4 mt-2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'InputText',
|
type: 'InputText',
|
||||||
@ -981,7 +978,7 @@ const myDetail = [
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-3 pr-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -991,7 +988,7 @@ const myDetail = [
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pl-4',
|
class: 'py-3 pl-4 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
|
<component :is="'EvtObjPop'" :parentPrgmId="myPrgmId" :item="evtObjPopItem"
|
||||||
customClass="select-large" />
|
class="no-gutters" customClass="select-large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<!-- 대상일 -->
|
<!-- 대상일 -->
|
||||||
@ -29,17 +29,18 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<v-col :cols="12" style="height: 100%" class="h100">
|
<v-col :cols="12" class="h100">
|
||||||
<v-card class="px-5 py-5 h100">
|
<v-card class="px-5 py-5">
|
||||||
<div ref="gridParent" class="h100 px-5" style="height: 100%">
|
<div ref="gridParent" class="px-5" style="height:calc(100% - 40px)">
|
||||||
<component ref="myGrid" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component ref="myGrid" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId" />
|
:parentPrgmId="myPrgmId" />
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-center justify-space-between">
|
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
@loadData="changeGrid" />
|
@loadData="changeGrid" />
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</div>
|
</div>
|
||||||
@ -61,7 +62,7 @@ import BtnExcelDownload from '~/components/common/button/BtnExcelDownload';
|
|||||||
import DateUtility from '~/plugins/dateUtility';
|
import DateUtility from '~/plugins/dateUtility';
|
||||||
// import Search from "~/components/common/search";
|
// import Search from "~/components/common/search";
|
||||||
import EvtObjPop from '~/components/common/modal/EvtObjPop';
|
import EvtObjPop from '~/components/common/modal/EvtObjPop';
|
||||||
import pagination from '~/components/Pagination';
|
import pagination from '~/components/common/Pagination';
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
// const myPrgmId = "PRG0052";
|
// const myPrgmId = "PRG0052";
|
||||||
@ -212,7 +213,7 @@ export default {
|
|||||||
},
|
},
|
||||||
layoutInit() {
|
layoutInit() {
|
||||||
const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
||||||
this.$refs.contents.style.height = `calc(100% - ${searchFilterHeight}px)`;
|
this.$refs.contents.style.height = `calc(100% - 30px - ${searchFilterHeight}px) `;
|
||||||
},
|
},
|
||||||
async setFromDt() {
|
async setFromDt() {
|
||||||
this.pageData.fromDt = Utility.setBeforetDate(
|
this.pageData.fromDt = Utility.setBeforetDate(
|
||||||
@ -220,7 +221,6 @@ export default {
|
|||||||
this.pageData.toDt,
|
this.pageData.toDt,
|
||||||
'YYYYMMDD',
|
'YYYYMMDD',
|
||||||
);
|
);
|
||||||
// this.pageData.toDt = Utility.setAftertDate(this.pageData, this.pageData.fromDt, "YYYYMMDD");
|
|
||||||
},
|
},
|
||||||
gridInit() {
|
gridInit() {
|
||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<v-col :cols="5" class="h100">
|
<v-col :cols="5" class="h100">
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between pa-5">
|
<div class="d-flex align-center justify-space-between pa-5">
|
||||||
<v-card-title class="pa-0 custom-title-4-new"
|
<v-card-title class="pa-0 custom-title-4"
|
||||||
>검침 대상 정보</v-card-title
|
>검침 대상 정보</v-card-title
|
||||||
>
|
>
|
||||||
<Buttons
|
<Buttons
|
||||||
@ -75,7 +75,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="7" class="h100">
|
<v-col :cols="7" class="h100">
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<v-card-title class="custom-title-4-new" style="min-height:76px;"
|
<v-card-title class="custom-title-4-new pb-0" style="min-height:65px;"
|
||||||
>검침대상 상세
|
>검침대상 상세
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div class="px-5" style="height:calc(100% - 76px)">
|
<div class="px-5" style="height:calc(100% - 76px)">
|
||||||
@ -315,7 +315,7 @@ export default {
|
|||||||
header: '검침 대상 ID',
|
header: '검침 대상 ID',
|
||||||
name: 'readObjId',
|
name: 'readObjId',
|
||||||
width: 130,
|
width: 130,
|
||||||
align: 'center',
|
align: 'left',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: '검침 대상 명',
|
header: '검침 대상 명',
|
||||||
@ -385,7 +385,7 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '사용여부',
|
header: '사용여부',
|
||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
width: 100,
|
width: 100,
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
value = value === true ? '1' : '0';
|
value = value === true ? '1' : '0';
|
||||||
@ -742,7 +742,7 @@ const myDetail = [
|
|||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
class: 'py-2 pr-2',
|
class: 'py-2 pr-2 mt-2',
|
||||||
required: false,
|
required: false,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -754,7 +754,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2 mt-2',
|
||||||
required: true,
|
required: true,
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
},
|
},
|
||||||
@ -766,7 +766,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-2',
|
class: 'py-2 pr-2 mt-2',
|
||||||
list: 'readObjKindDetailList',
|
list: 'readObjKindDetailList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -781,7 +781,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2 mt-2',
|
||||||
list: 'readObjGrpList',
|
list: 'readObjGrpList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -796,7 +796,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-2',
|
class: 'py-2 pr-2 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
inputType: 'number',
|
inputType: 'number',
|
||||||
},
|
},
|
||||||
@ -808,7 +808,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
inputType: 'number',
|
inputType: 'number',
|
||||||
},
|
},
|
||||||
@ -820,7 +820,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-2',
|
class: 'py-2 pr-2 mt-2',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
inputType: 'number',
|
inputType: 'number',
|
||||||
},
|
},
|
||||||
@ -832,7 +832,7 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2',
|
class: 'py-2 mt-2',
|
||||||
list: 'unitCdList',
|
list: 'unitCdList',
|
||||||
itemText: 'commCdNm',
|
itemText: 'commCdNm',
|
||||||
itemValue: 'commCd',
|
itemValue: 'commCd',
|
||||||
@ -847,13 +847,24 @@ const myDetail = [
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-2',
|
class: 'py-2 pr-2 mt-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
@import '@/assets/scss/common.scss';
|
@import '@/assets/scss/common.scss';
|
||||||
|
::v-deep {
|
||||||
|
.tui-grid-layer-state {
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tui-grid-layer-selection,
|
||||||
|
.tui-grid-cell-content-editor{
|
||||||
|
height: 36px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
@ -100,6 +100,10 @@
|
|||||||
:gridName="gridName"
|
:gridName="gridName"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="d-flex align-center justify-center pa-5" v-if="loadGrid && totalCount > 0">
|
||||||
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
|
@loadData="changeGrid" />
|
||||||
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -117,6 +121,7 @@ import selectCodeList from "@/components/common/select/selectCodeList";
|
|||||||
import SelectMttList from "@/components/common/select/SelectMttList";
|
import SelectMttList from "@/components/common/select/SelectMttList";
|
||||||
import Datepicker from "~/components/common/Datepicker";
|
import Datepicker from "~/components/common/Datepicker";
|
||||||
import BtnExcelDownload from "~/components/common/button/BtnExcelDownload";
|
import BtnExcelDownload from "~/components/common/button/BtnExcelDownload";
|
||||||
|
import pagination from '~/components/common/Pagination';
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
// const myPrgmId = "PRG0018";
|
// const myPrgmId = "PRG0018";
|
||||||
@ -144,27 +149,18 @@ export default {
|
|||||||
Datepicker,
|
Datepicker,
|
||||||
Search,
|
Search,
|
||||||
Grid,
|
Grid,
|
||||||
|
pagination,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
myPrgmId: myPrgmId,
|
myPrgmId: myPrgmId,
|
||||||
gridName: "rowGrid",
|
gridName: "rowGrid",
|
||||||
loadGrid: false,
|
loadGrid: false,
|
||||||
dataPathMock: {
|
itemsPerPage: 10,
|
||||||
rowGrid: {
|
itemsPerPageArray: [10, 20, 30],
|
||||||
column: [
|
limit: 20,
|
||||||
{ header: "태그", name: "id", headerAlign: "left" },
|
page: 1,
|
||||||
{ header: "배율", name: "lable", headerAlign: "left" },
|
totalCount: 0,
|
||||||
{ header: "설비비", name: "type", headerAlign: "left" },
|
|
||||||
{ header: "설비배분비율", name: "note", headerAlign: "left" },
|
|
||||||
{ header: "금일데이터", name: "note", headerAlign: "left" },
|
|
||||||
{ header: "최종마감시각", name: "date", headerAlign: "left" },
|
|
||||||
],
|
|
||||||
data: dataPathDataExample,
|
|
||||||
defaultRow: dataPathDataExample,
|
|
||||||
option: {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -190,7 +186,10 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
chkIsFind(val) {
|
chkIsFind(val) {
|
||||||
if (val) this.search();
|
if (val) {
|
||||||
|
this.page = 1;
|
||||||
|
this.search();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
chkBlocId() {
|
chkBlocId() {
|
||||||
this.setPageData({ isFind: true });
|
this.setPageData({ isFind: true });
|
||||||
@ -243,10 +242,6 @@ export default {
|
|||||||
columnOptions: {
|
columnOptions: {
|
||||||
resizable: true,
|
resizable: true,
|
||||||
},
|
},
|
||||||
pageOptions: {
|
|
||||||
useClient: true,
|
|
||||||
perPage: 13,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
this.setGridOption({
|
this.setGridOption({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
@ -261,6 +256,8 @@ export default {
|
|||||||
await this.getRowGridData();
|
await this.getRowGridData();
|
||||||
},
|
},
|
||||||
async getRowGridData() {
|
async getRowGridData() {
|
||||||
|
this.loadGrid = false;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
this.pageData.blocMstrList.length > 0 &&
|
this.pageData.blocMstrList.length > 0 &&
|
||||||
this.pageData.commCdList.length > 0 &&
|
this.pageData.commCdList.length > 0 &&
|
||||||
@ -274,8 +271,25 @@ export default {
|
|||||||
mttCd: this.pageData.commCd, // 검침대상유형
|
mttCd: this.pageData.commCd, // 검침대상유형
|
||||||
mttTp: this.pageData.readObjId, // 검침대상
|
mttTp: this.pageData.readObjId, // 검침대상
|
||||||
readDt: this.pageData.fromDt, // 조회기간
|
readDt: this.pageData.fromDt, // 조회기간
|
||||||
|
limit: this.limit,
|
||||||
|
page: this.page,
|
||||||
|
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const res2 = await this.postApiReturn({
|
||||||
|
apiKey: 'selectReadResultCloseMngPageTotal',
|
||||||
|
resKey: 'cdKindPageTotal',
|
||||||
|
sendParam: {
|
||||||
|
blocId: this.pageData.blocMstrList[this.pageData.blocId].blocId, // 사업장
|
||||||
|
mttCd: this.pageData.commCd, // 검침대상유형
|
||||||
|
mttTp: this.pageData.readObjId, // 검침대상
|
||||||
|
readDt: this.pageData.fromDt, // 조회기간
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
this.totalCount = res2[0].totalcount;
|
||||||
|
|
||||||
this.setGridData({
|
this.setGridData({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
value: res.map((item) => ({
|
value: res.map((item) => ({
|
||||||
@ -325,6 +339,12 @@ export default {
|
|||||||
this.setPageData({ isFind: true });
|
this.setPageData({ isFind: true });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
changeGrid: async function (pageNum, limit) {
|
||||||
|
this.page = pageNum;
|
||||||
|
this.limit = limit;
|
||||||
|
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -431,13 +451,4 @@ const myColumns = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
import { getPathDataExample } from "@/const/const";
|
|
||||||
const dataPathDataExample = getPathDataExample({
|
|
||||||
id: "INCHEON.HVAC.EQP_HT_CH001.UT_CH101.CHI_AMP_1A_PV",
|
|
||||||
lable: "INCHEON 고온 냉동기 101호기 - 호로1",
|
|
||||||
type: "사용",
|
|
||||||
note: "-",
|
|
||||||
date: "2023-01-10 20:02:00",
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -60,17 +60,23 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row ref="contents" class="pt-3">
|
<v-row ref="contents" class="pt-3">
|
||||||
<v-col :cols="12" style="height: 100%">
|
<v-col :cols="12" >
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between pa-4">
|
<div class="d-flex align-center justify-space-between pa-4">
|
||||||
<v-card-title class="pa-0">설비별 현황 리스트</v-card-title>
|
<v-card-title class="pa-0">설비별 현황 리스트</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div class="px-4" style="height:calc(100% - 76px)">
|
<div class="px-4" >
|
||||||
<div ref="gridParent" class="w100 h100">
|
<div ref="gridParent" class="w100 h100 enrg-effc">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
||||||
|
<div class="d-flex align-center justify-center pa-5 pb-0" v-if="loadGrid && totalCount > 0">
|
||||||
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
|
@loadData="changeGrid" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -92,6 +98,7 @@ import Datepicker from '~/components/common/Datepicker';
|
|||||||
import EqpmSelectPop from '~/components/common/modal/EqpmSelectPop';
|
import EqpmSelectPop from '~/components/common/modal/EqpmSelectPop';
|
||||||
import EnrgEffcEqpmDetailPop from '~/components/common/modal/EnrgEffcEqpmDetailPop';
|
import EnrgEffcEqpmDetailPop from '~/components/common/modal/EnrgEffcEqpmDetailPop';
|
||||||
import EnrgEffcGdIdxDetPop from '~/components/common/modal/EnrgEffcGdIdxDetPop';
|
import EnrgEffcGdIdxDetPop from '~/components/common/modal/EnrgEffcGdIdxDetPop';
|
||||||
|
import pagination from '~/components/common/Pagination';
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
let myPrgmId;
|
let myPrgmId;
|
||||||
@ -124,6 +131,7 @@ export default {
|
|||||||
EnrgEffcEqpmDetailPop,
|
EnrgEffcEqpmDetailPop,
|
||||||
EqpmSelectPop,
|
EqpmSelectPop,
|
||||||
EnrgEffcGdIdxDetPop,
|
EnrgEffcGdIdxDetPop,
|
||||||
|
pagination
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -149,7 +157,12 @@ export default {
|
|||||||
eqpmGrpFlag: false,
|
eqpmGrpFlag: false,
|
||||||
eqpmGdIdxFlag: false,
|
eqpmGdIdxFlag: false,
|
||||||
fabFlag: false,
|
fabFlag: false,
|
||||||
|
itemsPerPage: 10,
|
||||||
|
itemsPerPageArray: [10, 20, 30],
|
||||||
|
limit: 20,
|
||||||
|
page: 1,
|
||||||
routeData: {},
|
routeData: {},
|
||||||
|
totalCount: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -377,6 +390,7 @@ export default {
|
|||||||
resKey: 'eqpmKindCodeLists',
|
resKey: 'eqpmKindCodeLists',
|
||||||
sendParam: {},
|
sendParam: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.length > 0) {
|
if (res.length > 0) {
|
||||||
this.selectValueList01 = await res.map(item => {
|
this.selectValueList01 = await res.map(item => {
|
||||||
return {
|
return {
|
||||||
@ -680,9 +694,29 @@ export default {
|
|||||||
fabId: this.selectValue02,
|
fabId: this.selectValue02,
|
||||||
eqpmKindId: this.selectValue01,
|
eqpmKindId: this.selectValue01,
|
||||||
okFg: this.selectValue06,
|
okFg: this.selectValue06,
|
||||||
|
limit: this.limit,
|
||||||
|
page: this.page,
|
||||||
|
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const res2 = await this.postApiReturn({
|
||||||
|
apiKey: 'selectEnrgEffcEqpmDetlMntrPageTotal',
|
||||||
|
resKey: 'eqpmDetlDataPageTotal',
|
||||||
|
sendParam: {
|
||||||
|
eqpmId: this.selectValue04.eqpmId,
|
||||||
|
eqpmGrpId: this.selectValue03,
|
||||||
|
fromDt: this.pageData.fromDt,
|
||||||
|
toDt: this.pageData.toDt,
|
||||||
|
gdIdxId: this.selectValue05,
|
||||||
|
fabId: this.selectValue02,
|
||||||
|
eqpmKindId: this.selectValue01,
|
||||||
|
okFg: this.selectValue06,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
this.totalCount = res2[0]?.totalcount;
|
||||||
|
|
||||||
this.setGridData({
|
this.setGridData({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
value: res,
|
value: res,
|
||||||
@ -722,6 +756,12 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
changeGrid: async function (pageNum, limit) {
|
||||||
|
this.page = pageNum;
|
||||||
|
this.limit = limit;
|
||||||
|
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6" class="text-right">
|
<v-col :cols="6" class="text-right">
|
||||||
<!-- 조회버튼 -->
|
<!-- 조회버튼 -->
|
||||||
<BtnSearch style="margin-top: 20px" size="large" @click="search" />
|
<BtnSearch style="margin-top: 25px" size="large" @click="search" />
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
<!-- 대상일 -->
|
<!-- 대상일 -->
|
||||||
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
|
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="4" class="text-right">
|
<v-col :cols="6" class="text-right">
|
||||||
<BtnSearch @click="search" size="large" />
|
|
||||||
<!-- 조회버튼 -->
|
<!-- 조회버튼 -->
|
||||||
|
<BtnSearch @click="search" size="large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card>
|
</v-card>
|
||||||
@ -47,8 +47,13 @@
|
|||||||
</v-row>
|
</v-row>
|
||||||
<div class="px-5" style="height: 80%">
|
<div class="px-5" style="height: 80%">
|
||||||
<div ref="chartParent" class="w100 h100">
|
<div ref="chartParent" class="w100 h100">
|
||||||
<component :ref="chartName" class="w100 h100" :is="loadChart ? 'Chart' : null" :parentPrgmId="myPrgmId"
|
<component
|
||||||
:chartName="chartName" />
|
:ref="chartName"
|
||||||
|
class="w100 h100"
|
||||||
|
:is="loadChart ? 'Chart' : null"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:chartName="chartName"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
@ -68,6 +73,8 @@ import SelectBox from '@/components/common/select/SelectBox';
|
|||||||
import DateUtility from '~/plugins/dateUtility';
|
import DateUtility from '~/plugins/dateUtility';
|
||||||
import Chart from '~/components/common/Chart';
|
import Chart from '~/components/common/Chart';
|
||||||
|
|
||||||
|
import getSankeyChartOption from "~/components/common/chartoptions/sankeyChart";
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
let myPrgmId;
|
let myPrgmId;
|
||||||
|
|
||||||
@ -101,6 +108,8 @@ export default {
|
|||||||
selectValue01: null,
|
selectValue01: null,
|
||||||
loadChart: false,
|
loadChart: false,
|
||||||
chartName: 'sankeyChart',
|
chartName: 'sankeyChart',
|
||||||
|
sankeyChartData: [],
|
||||||
|
sankeyChartLinks: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -148,6 +157,16 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
isDarkMode(newVal) {
|
||||||
|
this.setChartOption({
|
||||||
|
chartKey: this.chartName,
|
||||||
|
value: getSankeyChartOption({
|
||||||
|
isDarkMode: newVal,
|
||||||
|
data: this.sankeyChartData,
|
||||||
|
links: this.sankeyChartLinks
|
||||||
|
})
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
async beforeCreate() {
|
async beforeCreate() {
|
||||||
myPrgmId = this.$route.query.prgmId;
|
myPrgmId = this.$route.query.prgmId;
|
||||||
@ -159,9 +178,6 @@ export default {
|
|||||||
},
|
},
|
||||||
async created() { },
|
async created() { },
|
||||||
async mounted() {
|
async mounted() {
|
||||||
// this.initTest();
|
|
||||||
// return;
|
|
||||||
|
|
||||||
this.init();
|
this.init();
|
||||||
// document.querySelector('.icon_arrow').style.width = document.querySelector('.iconArrowCols').clientWidth-20 + "px";
|
// document.querySelector('.icon_arrow').style.width = document.querySelector('.iconArrowCols').clientWidth-20 + "px";
|
||||||
},
|
},
|
||||||
@ -176,10 +192,8 @@ export default {
|
|||||||
...mapActions({
|
...mapActions({
|
||||||
getCodeList: 'modules/search/getCodeList',
|
getCodeList: 'modules/search/getCodeList',
|
||||||
}),
|
}),
|
||||||
initTest() {
|
initTestChart() {
|
||||||
|
|
||||||
const randomNumber = n => Math.floor(Math.random() * n) + 1;
|
const randomNumber = n => Math.floor(Math.random() * n) + 1;
|
||||||
|
|
||||||
const makeData = [
|
const makeData = [
|
||||||
{ name: 'A' },
|
{ name: 'A' },
|
||||||
{ name: 'B' },
|
{ name: 'B' },
|
||||||
@ -205,45 +219,13 @@ export default {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const chartOption = {
|
this.sankeyChartData = makeData;
|
||||||
backgroundColor: '#FFFFFF',
|
this.sankeyChartLinks = makeLinks;
|
||||||
series: [
|
const chartOption = getSankeyChartOption({
|
||||||
{
|
isDarkMode: this.isDarkMode,
|
||||||
layoutIterations: 0,
|
|
||||||
type: 'sankey',
|
|
||||||
left: 25.0,
|
|
||||||
top: 20.0,
|
|
||||||
right: 120,
|
|
||||||
bottom: 50.0,
|
|
||||||
// nodeWidth:10,
|
|
||||||
nodeGap: 10,
|
|
||||||
nodeAlign: 'left',
|
|
||||||
data: makeData,
|
data: makeData,
|
||||||
links: makeLinks,
|
links: makeLinks
|
||||||
lineStyle: {
|
});
|
||||||
color: 'source',
|
|
||||||
curveness: 0.5,
|
|
||||||
},
|
|
||||||
// triggerEvent: true,
|
|
||||||
itemStyle: {
|
|
||||||
//color: '#1f77b4',
|
|
||||||
//borderColor: '#1f77b4'
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
color: this.isDarkMode
|
|
||||||
? 'rgba(250,250,250,0.7)'
|
|
||||||
: 'rgba(0,0,0,0.7)',
|
|
||||||
fontFamily: 'Arial',
|
|
||||||
fontSize: 12,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'item',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.loadChart = true;
|
this.loadChart = true;
|
||||||
@ -254,7 +236,11 @@ export default {
|
|||||||
this.setFromDt();
|
this.setFromDt();
|
||||||
},
|
},
|
||||||
async search() {
|
async search() {
|
||||||
|
try{
|
||||||
await this.getChartData();
|
await this.getChartData();
|
||||||
|
}catch(err){
|
||||||
|
this.initTestChart();
|
||||||
|
}
|
||||||
this.setPageData({
|
this.setPageData({
|
||||||
isFind: false,
|
isFind: false,
|
||||||
});
|
});
|
||||||
@ -458,43 +444,13 @@ export default {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const chartOption = {
|
this.sankeyChartData = makeData;
|
||||||
backgroundColor: '#FFFFFF',
|
this.sankeyChartLinks = makeLinks;
|
||||||
series: [
|
const chartOption = getSankeyChartOption({
|
||||||
{
|
isDarkMode: this.isDarkMode,
|
||||||
layoutIterations: 0,
|
|
||||||
type: 'sankey',
|
|
||||||
left: 25.0,
|
|
||||||
top: 20.0,
|
|
||||||
right: 120,
|
|
||||||
bottom: 50.0,
|
|
||||||
// nodeWidth:10,
|
|
||||||
nodeGap: 10,
|
|
||||||
nodeAlign: 'left',
|
|
||||||
data: makeData,
|
data: makeData,
|
||||||
links: makeLinks,
|
links: makeLinks
|
||||||
lineStyle: {
|
});
|
||||||
color: 'source',
|
|
||||||
curveness: 0.5,
|
|
||||||
},
|
|
||||||
// triggerEvent: true,
|
|
||||||
itemStyle: {
|
|
||||||
//color: '#1f77b4',
|
|
||||||
//borderColor: '#1f77b4'
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
color: this.isDarkMode
|
|
||||||
? 'rgba(250,250,250,0.7)'
|
|
||||||
: 'rgba(0,0,0,0.7)',
|
|
||||||
fontFamily: 'Arial',
|
|
||||||
fontSize: 12,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'item',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
this.setChartOption({ chartKey: this.chartName, value: chartOption });
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6.5" class="text-right d-flex align-end justify-end align-self-end">
|
<v-col :cols="6.5" class="text-right d-flex align-end justify-end align-self-end">
|
||||||
<!-- 조회버튼 -->
|
<!-- 조회버튼 -->
|
||||||
<a-button icon="file-excel" class="d-inline-flex-1 mr-1" size="large" @click="createExcel()">엑셀</a-button>
|
<a-button type="default" icon="file-excel" class="d-inline-flex-1 mr-1" size="large" @click="createExcel()">엑셀</a-button>
|
||||||
<BtnSearch @click="search" size="large" />
|
<BtnSearch @click="search" size="large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
<v-col :cols="12" style="height: 100%">
|
<v-col :cols="12" style="height: 100%">
|
||||||
<v-row class="pa-1" style="height: 50%; width: 100%">
|
<v-row class="pa-1" style="height: 50%; width: 100%">
|
||||||
<div style="width: 100%; height: 100%; overflow: hidden">
|
<div style="width: 100%; height: 100%; overflow: hidden">
|
||||||
<div style="height: 15%">
|
<v-card style="background: none; height: 15%">
|
||||||
<v-card-title
|
<v-card-title
|
||||||
class="d-flex align-center justify-space-between"
|
class="d-flex align-center justify-space-between"
|
||||||
style="padding: 0px"
|
style="padding: 0px"
|
||||||
@ -108,7 +108,7 @@
|
|||||||
주요가이드 지표
|
주요가이드 지표
|
||||||
</span>
|
</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
</div>
|
</v-card>
|
||||||
<div style="height: 85%">
|
<div style="height: 85%">
|
||||||
<v-row style="height: 100%; overflow: auto">
|
<v-row style="height: 100%; overflow: auto">
|
||||||
<v-col
|
<v-col
|
||||||
@ -117,7 +117,7 @@
|
|||||||
v-for="(value, key, index) in contentData01"
|
v-for="(value, key, index) in contentData01"
|
||||||
:key="'key1' + index"
|
:key="'key1' + index"
|
||||||
>
|
>
|
||||||
<v-card style="position: relative; overflow: hidden;" >
|
<v-card style="position: relative; overflow: hidden">
|
||||||
<!-- Card header -->
|
<!-- Card header -->
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
@ -133,9 +133,9 @@
|
|||||||
<v-card-title style="padding-left: 10px">{{
|
<v-card-title style="padding-left: 10px">{{
|
||||||
value["gdIdxNm"]
|
value["gdIdxNm"]
|
||||||
}}</v-card-title>
|
}}</v-card-title>
|
||||||
<div class="v-box" style="height: 80%; padding: 3px; margin: 10px;">
|
<div class="v-box" style="height: 80%; padding: 3px; margin: 10px">
|
||||||
<v-col :cols="12" style="height: 100%;">
|
<v-col :cols="12" style="height: 100%">
|
||||||
<div style="height: 85%;">
|
<div style="height: 85%">
|
||||||
<component
|
<component
|
||||||
class="w100 h100"
|
class="w100 h100"
|
||||||
:is="loadChart ? 'Chart' : null"
|
:is="loadChart ? 'Chart' : null"
|
||||||
@ -152,16 +152,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row class="pa-1" style="height: 40%; width: 100%">
|
<v-row class="pa-1" style="height: 45%; width: 100%">
|
||||||
<v-card class="pa-1" style="height: 100%; width: 100%; overflow: hidden">
|
<v-card class="pa-1" style="height: 100%; width: 100%; overflow: hidden">
|
||||||
<div style="height: 25%">
|
<div style="height: 15%">
|
||||||
<v-card-title class="d-flex align-center justify-space-between pa-5">
|
<v-card-title class="d-flex align-center justify-space-between pl-3 pt-2">
|
||||||
<span class="tit ft-size_20 ft-weight_600">가이드 알람정보</span>
|
<span class="tit ft-size_20 ft-weight_600">가이드 알람정보</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
ref="gridParent01"
|
ref="gridParent01"
|
||||||
style="height: 75%; overflow: hidden; margin-top: 15px"
|
class="pl-3 mt-3"
|
||||||
|
style="height: 75%; overflow: hidden;"
|
||||||
>
|
>
|
||||||
<component
|
<component
|
||||||
:ref="gridName01"
|
:ref="gridName01"
|
||||||
@ -172,17 +173,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-row class="pa-1" style="height: 34%; width: 100%">
|
<v-row class="pa-1" style="height: 40%; width: 100%">
|
||||||
<div style="height: 100%; width: 100%">
|
<div style="height: 100%; width: 100%">
|
||||||
<v-row style="height: 100%">
|
<v-row style="height: 100%">
|
||||||
<v-col :cols="5" class="">
|
<v-col :cols="5" class="">
|
||||||
<v-card class="pa-1" style="height: 100%; width: 100%">
|
<v-card class="pa-1" style="height: 100%; width: 100%">
|
||||||
<div style="height: 25%">
|
<div style="height: 15%">
|
||||||
<v-card-title class="d-flex align-center justify-space-between pa-5">
|
<v-card-title class="d-flex align-center justify-space-between pl-3">
|
||||||
<span class="tit ft-size_20 ft-weight_600">설비 상세 정보</span>
|
<span class="tit ft-size_20 ft-weight_600">설비 상세 정보</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div ref="gridParent02" style="height: 75%">
|
<div ref="gridParent02" style="height: 75%" class="pl-3 mt-5">
|
||||||
<component
|
<component
|
||||||
:ref="gridName02"
|
:ref="gridName02"
|
||||||
:is="loadGrid02 ? 'Grid' : null"
|
:is="loadGrid02 ? 'Grid' : null"
|
||||||
@ -528,9 +529,7 @@ export default {
|
|||||||
fromDt: this.fromDt,
|
fromDt: this.fromDt,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log('res 01:',res)
|
|
||||||
this.contentData01 = await this.makeContentData01(res);
|
this.contentData01 = await this.makeContentData01(res);
|
||||||
console.log("content", this.contentData01);
|
|
||||||
await this.setChartGroup01(this.contentData01);
|
await this.setChartGroup01(this.contentData01);
|
||||||
this.reloadChart();
|
this.reloadChart();
|
||||||
},
|
},
|
||||||
@ -620,8 +619,8 @@ export default {
|
|||||||
this.loadGrid02 = false;
|
this.loadGrid02 = false;
|
||||||
|
|
||||||
res = await this.postApiReturn({
|
res = await this.postApiReturn({
|
||||||
apiKey: 'selectEnrgUseEqpmDescInfo',
|
apiKey: "selectEnrgUseEqpmDescInfo",
|
||||||
resKey: 'enrgUseEqpmDetlMntrData',
|
resKey: "enrgUseEqpmDetlMntrData",
|
||||||
sendParam: {
|
sendParam: {
|
||||||
eqpmGrpId: this.selectValue03,
|
eqpmGrpId: this.selectValue03,
|
||||||
},
|
},
|
||||||
@ -727,6 +726,13 @@ export default {
|
|||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: "value",
|
type: "value",
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
type: "dashed", // Makes the lines dashed
|
||||||
|
color: "#ccc", // Optional: customize the color
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
@ -853,12 +859,8 @@ export default {
|
|||||||
currentChartData["data"][j]["totVal"];
|
currentChartData["data"][j]["totVal"];
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log("text seri data", seriesData);
|
|
||||||
|
|
||||||
this.$store.state.pageData[myPrgmId][chartKey]["xAxis"]["data"] = xAxisData;
|
this.$store.state.pageData[myPrgmId][chartKey]["xAxis"]["data"] = xAxisData;
|
||||||
this.$store.state.pageData[myPrgmId][chartKey]["series"][0]["data"] = seriesData;
|
this.$store.state.pageData[myPrgmId][chartKey]["series"][0]["data"] = seriesData;
|
||||||
|
|
||||||
console.log("chart data", this.$store.state.pageData[myPrgmId][chartKey]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getGroup01ChartOption() {
|
getGroup01ChartOption() {
|
||||||
@ -871,6 +873,17 @@ export default {
|
|||||||
color: "#D32029",
|
color: "#D32029",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Add dashed horizontal grid lines from y-axis
|
||||||
|
chartOption["yAxis"] = {
|
||||||
|
type: "value",
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
type: "dashed", // Makes the lines dashed
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
return chartOption;
|
return chartOption;
|
||||||
},
|
},
|
||||||
makeChartGroup01XaxisData() {
|
makeChartGroup01XaxisData() {
|
||||||
|
@ -304,7 +304,7 @@ export default {
|
|||||||
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
||||||
const el2 = document.createElement('button');
|
const el2 = document.createElement('button');
|
||||||
$(el2).addClass('edit-btn blue--text');
|
$(el2).addClass('edit-btn blue--text');
|
||||||
el2.innerText = '편집하다';
|
el2.innerText = '수정';
|
||||||
elDiv.appendChild(el2);
|
elDiv.appendChild(el2);
|
||||||
|
|
||||||
this.el = elDiv;
|
this.el = elDiv;
|
||||||
@ -415,7 +415,7 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '구분',
|
header: '구분',
|
||||||
name: 'gubun',
|
name: 'gubun',
|
||||||
width: 80,
|
width: 200,
|
||||||
align: 'left',
|
align: 'left',
|
||||||
// hidden: true,
|
// hidden: true,
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
@ -447,7 +447,7 @@ export default {
|
|||||||
myColumns.push({
|
myColumns.push({
|
||||||
header: i.toString() + '월',
|
header: i.toString() + '월',
|
||||||
name: qty,
|
name: qty,
|
||||||
width: 73,
|
width: 80,
|
||||||
align: 'right',
|
align: 'right',
|
||||||
editor: 'text',
|
editor: 'text',
|
||||||
formatter: this.numberFormatter,
|
formatter: this.numberFormatter,
|
||||||
|
@ -47,11 +47,14 @@
|
|||||||
<v-row ref="contents" style="overflow: auto">
|
<v-row ref="contents" style="overflow: auto">
|
||||||
<v-col>
|
<v-col>
|
||||||
<div v-for="(value, key, index) in contentData" :key="'key1_' + index">
|
<div v-for="(value, key, index) in contentData" :key="'key1_' + index">
|
||||||
|
<v-card style="background: none">
|
||||||
<v-card-title class="d-flex align-center justify-space-between pa-3">
|
<v-card-title class="d-flex align-center justify-space-between pa-3">
|
||||||
<span class="tit ft-size_20 ft-weight_600">{{ value.eqpmGrpNm }}</span>
|
<span class="tit ft-size_20 ft-weight_600">{{ value.eqpmGrpNm }}</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
|
</v-card>
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col :cols="3" v-for="(item, i) in value.chartData" :key="'key2_' + i">
|
<v-col :cols="3" v-for="(item, i) in value.chartData" :key="'key2_' + i">
|
||||||
|
<v-card>
|
||||||
<div
|
<div
|
||||||
class="v-box"
|
class="v-box"
|
||||||
style="height: 330px; position: relative"
|
style="height: 330px; position: relative"
|
||||||
@ -73,7 +76,7 @@
|
|||||||
<!-- Information area -->
|
<!-- Information area -->
|
||||||
<v-col :cols="5" style="height: 100%">
|
<v-col :cols="5" style="height: 100%">
|
||||||
<div style="height: 10%">
|
<div style="height: 10%">
|
||||||
<strong style="font-size: 20px; font-weight: 600">{{
|
<strong class="v-card v-card__title pa-0" >{{
|
||||||
item.fabNm
|
item.fabNm
|
||||||
}}</strong>
|
}}</strong>
|
||||||
</div>
|
</div>
|
||||||
@ -123,6 +126,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</div>
|
</div>
|
||||||
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</div>
|
</div>
|
||||||
|
@ -97,14 +97,24 @@
|
|||||||
<v-card-title class="d-flex align-center justify-space-between pa-5">
|
<v-card-title class="d-flex align-center justify-space-between pa-5">
|
||||||
<span class="tit ft-size_20 ft-weight_600">설비별 현황 리스트</span>
|
<span class="tit ft-size_20 ft-weight_600">설비별 현황 리스트</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div class="px-5" style="height: calc(100% - 106px)">
|
<div class="px-5" style="height: calc(100% - 56px)">
|
||||||
<div ref="gridParent" class="w100 h100">
|
<div ref="gridParent" class="w100 h100" style="height: calc(100% - 166px)">
|
||||||
<component
|
<component
|
||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
:is="loadGrid ? 'Grid' : null"
|
:is="loadGrid ? 'Grid' : null"
|
||||||
:gridName="gridName"
|
:gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
/>
|
/>
|
||||||
|
<div v-if="loadGrid && totalCount > 0" class="pagination-wrapper">
|
||||||
|
<pagination
|
||||||
|
id="pagination"
|
||||||
|
:total-count="totalCount"
|
||||||
|
:page-num="page"
|
||||||
|
:limit="limit"
|
||||||
|
:itemsPerPageArray="itemsPerPageArray"
|
||||||
|
@loadData="changeGrid"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<component
|
<component
|
||||||
:ref="gridName"
|
:ref="gridName"
|
||||||
@ -142,6 +152,7 @@ import SelectBox from "@/components/common/select/SelectBox";
|
|||||||
import SelectCmCycle from "@/components/common/select/SelectCmCycle";
|
import SelectCmCycle from "@/components/common/select/SelectCmCycle";
|
||||||
import DatePicker from "@/components/common/Datepicker";
|
import DatePicker from "@/components/common/Datepicker";
|
||||||
import Grid from "~/components/common/Grid";
|
import Grid from "~/components/common/Grid";
|
||||||
|
import pagination from "~/components/common/Pagination";
|
||||||
|
|
||||||
let myTitle;
|
let myTitle;
|
||||||
let myPrgmId;
|
let myPrgmId;
|
||||||
@ -168,6 +179,7 @@ export default {
|
|||||||
SelectCmCycle,
|
SelectCmCycle,
|
||||||
DatePicker,
|
DatePicker,
|
||||||
Grid,
|
Grid,
|
||||||
|
pagination,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -188,6 +200,10 @@ export default {
|
|||||||
gridName: "grid01",
|
gridName: "grid01",
|
||||||
|
|
||||||
enrgUseMainIdxDesc: [],
|
enrgUseMainIdxDesc: [],
|
||||||
|
itemsPerPageArray: [10, 20, 50],
|
||||||
|
limit: 10,
|
||||||
|
page: 1,
|
||||||
|
totalCount: 0,
|
||||||
|
|
||||||
// tooltipData: {
|
// tooltipData: {
|
||||||
// show: false,
|
// show: false,
|
||||||
@ -263,6 +279,11 @@ export default {
|
|||||||
this.chkOpenTabList({ key: "destroy", prgmId: myPrgmId });
|
this.chkOpenTabList({ key: "destroy", prgmId: myPrgmId });
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
changeGrid: async function (pageNum, limit) {
|
||||||
|
this.page = pageNum;
|
||||||
|
this.limit = limit;
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
async init() {
|
async init() {
|
||||||
await this.getSelectValueList();
|
await this.getSelectValueList();
|
||||||
await this.setQueryParams();
|
await this.setQueryParams();
|
||||||
@ -367,24 +388,24 @@ export default {
|
|||||||
const _this = this;
|
const _this = this;
|
||||||
// Define custom button
|
// Define custom button
|
||||||
class CustomButton {
|
class CustomButton {
|
||||||
constructor(props,pageData) {
|
constructor(props, pageData) {
|
||||||
const { grid, rowKey, columnInfo } = props;
|
const { grid, rowKey, columnInfo } = props;
|
||||||
const gridData = grid.store.data.rawData;
|
const gridData = grid.store.data.rawData;
|
||||||
const value = gridData[rowKey][columnInfo.name];
|
const value = gridData[rowKey][columnInfo.name];
|
||||||
const onClickCallback = columnInfo.renderer.options.onClick;
|
const onClickCallback = columnInfo.renderer.options.onClick;
|
||||||
|
|
||||||
this.disabled = columnInfo.renderer.options.disabled || false;
|
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||||
const elDiv = document.createElement('div');
|
const elDiv = document.createElement("div");
|
||||||
elDiv.innerHTML = `<span>${value}</span>`;
|
elDiv.innerHTML = `<span>${value}</span>`;
|
||||||
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
$(elDiv).addClass("tui-grid-cell-content d-flex justify-space-between");
|
||||||
const el2 = document.createElement('button');
|
const el2 = document.createElement("button");
|
||||||
$(el2).addClass('edit-btn blue--text');
|
$(el2).addClass("edit-btn blue--text");
|
||||||
el2.innerText = '보기';
|
el2.innerText = "보기";
|
||||||
elDiv.appendChild(el2);
|
elDiv.appendChild(el2);
|
||||||
this.el = elDiv;
|
this.el = elDiv;
|
||||||
if (!this.disabled && typeof onClickCallback === 'function') {
|
if (!this.disabled && typeof onClickCallback === "function") {
|
||||||
// click 이벤트
|
// click 이벤트
|
||||||
this.el.addEventListener('click', function(event) {
|
this.el.addEventListener("click", function (event) {
|
||||||
onClickCallback(rowKey);
|
onClickCallback(rowKey);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -405,12 +426,19 @@ export default {
|
|||||||
{ header: "fabId", name: "fabId", hidden: true },
|
{ header: "fabId", name: "fabId", hidden: true },
|
||||||
{ header: "FAB", name: "fabNm", align: "left" },
|
{ header: "FAB", name: "fabNm", align: "left" },
|
||||||
{ header: "eqpmGrpId", name: "eqpmGrpId", hidden: true },
|
{ header: "eqpmGrpId", name: "eqpmGrpId", hidden: true },
|
||||||
{ header: "설비그룹", name: "eqpmGrpNm", align: "left", width: 200,
|
{
|
||||||
|
header: "설비그룹",
|
||||||
|
name: "eqpmGrpNm",
|
||||||
|
align: "left",
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{ header: "eqpmId", name: "eqpmId", hidden: true },
|
||||||
|
{ header: "설비명", name: "eqpmNm", align: "left", width: 200,
|
||||||
// Render custom button to switch page instead of double click on row
|
// Render custom button to switch page instead of double click on row
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustomButton,
|
type: CustomButton,
|
||||||
options: {
|
options: {
|
||||||
value: '보기',
|
value: "보기",
|
||||||
onClick: (rowKey) => {
|
onClick: (rowKey) => {
|
||||||
const gridInstance = this.$refs[this.gridName].gridInstance;
|
const gridInstance = this.$refs[this.gridName].gridInstance;
|
||||||
const eventRowData = gridInstance.invoke("getRow", rowKey);
|
const eventRowData = gridInstance.invoke("getRow", rowKey);
|
||||||
@ -434,12 +462,10 @@ export default {
|
|||||||
key: key,
|
key: key,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{ header: "eqpmId", name: "eqpmId", hidden: true },
|
},
|
||||||
{ header: "설비명", name: "eqpmNm", align: "left", width: 200 },
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
header: "계획량",
|
header: "계획량",
|
||||||
name: "planVal",
|
name: "planVal",
|
||||||
@ -546,10 +572,10 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
pageOptions: {
|
// pageOptions: {
|
||||||
useClient: true,
|
// useClient: true,
|
||||||
perPage: 3,
|
// perPage: 3,
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setGridOption({
|
this.setGridOption({
|
||||||
@ -566,26 +592,39 @@ export default {
|
|||||||
this.loadGrid = false;
|
this.loadGrid = false;
|
||||||
this.enrgUseMainIdxDesc = [];
|
this.enrgUseMainIdxDesc = [];
|
||||||
var apiKey = null;
|
var apiKey = null;
|
||||||
|
var apiKey2 = null;
|
||||||
var params = {
|
var params = {
|
||||||
fabId: this.selectValue01,
|
fabId: this.selectValue01,
|
||||||
eqpmKindId: this.selectValue02,
|
eqpmKindId: this.selectValue02,
|
||||||
eqpmGrpId: this.selectValue03,
|
eqpmGrpId: this.selectValue03,
|
||||||
fromDt: this.pageData.fromDt,
|
fromDt: this.pageData.fromDt,
|
||||||
|
limit: this.limit,
|
||||||
|
page: this.page,
|
||||||
|
offset: (this.page - 1) * this.limit, // MariaDB Query에서 직접 계산이 안됨
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this.pageData.cmCycle == "CYC_DAY") {
|
if (this.pageData.cmCycle == "CYC_DAY") {
|
||||||
params["fromDtMm"] = String(this.pageData.fromDt).substring(0, 6);
|
params["fromDtMm"] = String(this.pageData.fromDt).substring(0, 6);
|
||||||
apiKey = "selectDailyEnrgUseMainIdx";
|
apiKey = "selectDailyEnrgUseMainIdx";
|
||||||
|
apiKey2 = "selectDailyEnrgUseMainIdxPageTotal";
|
||||||
} else if (this.pageData.cmCycle == "CYC_MONTH") {
|
} else if (this.pageData.cmCycle == "CYC_MONTH") {
|
||||||
apiKey = "selectMonthlyEnrgUseMainIdx";
|
apiKey = "selectMonthlyEnrgUseMainIdx";
|
||||||
|
apiKey2 = "selectMonthlyEnrgUseMainIdxPageTotal";
|
||||||
}
|
}
|
||||||
|
|
||||||
var res = await this.postApiReturn({
|
var res = await this.postApiReturn({
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
resKey: "eqpmIndMntrData",
|
resKey: "eqpmIndMntrData",
|
||||||
sendParam: params,
|
sendParam: params,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var res2 = await this.postApiReturn({
|
||||||
|
apiKey: apiKey2,
|
||||||
|
resKey: "eqpmIndMntrPageTotal",
|
||||||
|
sendParam: params,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.totalCount = res2[0].totalcount;
|
||||||
|
|
||||||
this.enrgUseMainIdxDesc = await this.postApiReturn({
|
this.enrgUseMainIdxDesc = await this.postApiReturn({
|
||||||
apiKey: "selectEnrgUseMainIdxDesc",
|
apiKey: "selectEnrgUseMainIdxDesc",
|
||||||
resKey: "eqpmIndMntrData",
|
resKey: "eqpmIndMntrData",
|
||||||
@ -654,7 +693,7 @@ export default {
|
|||||||
// id값 설정
|
// id값 설정
|
||||||
elementList[i].id = "tooltipTargetElement_" + i;
|
elementList[i].id = "tooltipTargetElement_" + i;
|
||||||
tooltipElement.id = "tooltipElement_" + i;
|
tooltipElement.id = "tooltipElement_" + i;
|
||||||
|
tooltipElement.classList.add(this.isDarkmode ? "dark-mode" : "light-mode");
|
||||||
// element 추가
|
// element 추가
|
||||||
elementList[i].append(tooltipElement);
|
elementList[i].append(tooltipElement);
|
||||||
}
|
}
|
||||||
@ -849,5 +888,12 @@ function numberFormatter({ value }) {
|
|||||||
overflow-y: visible;
|
overflow-y: visible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pagination-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 12px 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import Vue from "vue";
|
import Vue from "vue";
|
||||||
// import Antd from "ant-design-vue";
|
// import Antd from "ant-design-vue";
|
||||||
import { Row, Col, Card, Button, Checkbox, DatePicker, Select, Table, Modal, Input, Icon, Divider } from "ant-design-vue";
|
import { Row, Col, Card, Button, Checkbox, DatePicker, Select, Table, Modal, Input, Icon, Divider, Pagination } from "ant-design-vue";
|
||||||
|
|
||||||
import 'ant-design-vue/dist/antd.css'
|
import 'ant-design-vue/dist/antd.css'
|
||||||
// import { RangePicker } from "ant-design-vue/types/date-picker/range-picker";
|
// import { RangePicker } from "ant-design-vue/types/date-picker/range-picker";
|
||||||
@ -17,4 +17,5 @@ Vue.component(Modal.name, Modal)
|
|||||||
Vue.component(Input.name, Input)
|
Vue.component(Input.name, Input)
|
||||||
Vue.component(Icon.name, Icon)
|
Vue.component(Icon.name, Icon)
|
||||||
Vue.component(Divider.name, Divider)
|
Vue.component(Divider.name, Divider)
|
||||||
|
Vue.component(Pagination.name, Pagination)
|
||||||
// Vue.component(RangePicker.name, RangePicker)
|
// Vue.component(RangePicker.name, RangePicker)
|
@ -16,7 +16,38 @@ import 'material-design-icons-iconfont/dist/material-design-icons.css';
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Vuetify from 'vuetify/lib';
|
import Vuetify from 'vuetify/lib';
|
||||||
|
|
||||||
|
import anticonAppStore from '~/components/icons/anticonAppStore';
|
||||||
|
import anticonBulb from '~/components/icons/anticonBulb';
|
||||||
|
import anticonDesktop from '~/components/icons/anticonDesktop';
|
||||||
|
import anticonDrag from '~/components/icons/anticonDrag';
|
||||||
|
import anticonFileText from '~/components/icons/anticonFileText';
|
||||||
|
import anticonLineChart from '~/components/icons/anticonLineChart';
|
||||||
|
import anticonMessage from '~/components/icons/anticonMessage';
|
||||||
|
import anticonNoteExpand from '~/components/icons/anticonNoteExpand';
|
||||||
|
import anticonPieChart from '~/components/icons/anticonPieChart';
|
||||||
|
import anticonSearch from '~/components/icons/anticonSearch';
|
||||||
|
import anticonSetting from '~/components/icons/anticonSetting';
|
||||||
|
|
||||||
|
const anticons = {
|
||||||
|
anticonAppStore,
|
||||||
|
anticonBulb,
|
||||||
|
anticonDesktop,
|
||||||
|
anticonDrag,
|
||||||
|
anticonFileText,
|
||||||
|
anticonLineChart,
|
||||||
|
anticonMessage,
|
||||||
|
anticonNoteExpand,
|
||||||
|
anticonPieChart,
|
||||||
|
anticonSearch,
|
||||||
|
anticonSetting,
|
||||||
|
};
|
||||||
|
|
||||||
|
const anticonVal = {};
|
||||||
|
Object.keys(anticons).forEach(key => {
|
||||||
|
anticonVal[`${key}`] = {
|
||||||
|
component: anticons[key]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Vue.use(Vuetify);
|
Vue.use(Vuetify);
|
||||||
|
|
||||||
@ -77,6 +108,7 @@ export default new Vuetify({
|
|||||||
icoExpandAlt: {
|
icoExpandAlt: {
|
||||||
component: icoExpandAlt,
|
component: icoExpandAlt,
|
||||||
},
|
},
|
||||||
|
...anticonVal,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -210,6 +210,8 @@ const INIT_URL_STATE = {
|
|||||||
// prgmId: "TMP0013" 검침실적마감관리 ems/ReadResultCloseMngPage
|
// prgmId: "TMP0013" 검침실적마감관리 ems/ReadResultCloseMngPage
|
||||||
selectReadResultCloseMng:
|
selectReadResultCloseMng:
|
||||||
'ems/base/ReadResultCloseMngCtr/selectReadResultCloseMng', // 일일검침정보
|
'ems/base/ReadResultCloseMngCtr/selectReadResultCloseMng', // 일일검침정보
|
||||||
|
selectReadResultCloseMngPageTotal:
|
||||||
|
'ems/base/ReadResultCloseMngCtr/selectReadResultCloseMngPageTotal', // 일일검침정보
|
||||||
saveReadResultCloseMngSP:
|
saveReadResultCloseMngSP:
|
||||||
'ems/base/ReadResultCloseMngCtr/saveReadResultCloseMngSP', // 전월 or 일 마감
|
'ems/base/ReadResultCloseMngCtr/saveReadResultCloseMngSP', // 전월 or 일 마감
|
||||||
saveReadResultCloseMngSPMM:
|
saveReadResultCloseMngSPMM:
|
||||||
@ -279,6 +281,7 @@ const INIT_URL_STATE = {
|
|||||||
|
|
||||||
// prgmId: "PRG0020" 배치로그
|
// prgmId: "PRG0020" 배치로그
|
||||||
selectBatchLog: 'comm/base/BatchLogCtr/selectBatchLog', // 배치 로그
|
selectBatchLog: 'comm/base/BatchLogCtr/selectBatchLog', // 배치 로그
|
||||||
|
selectBatchLogPageTotal: 'comm/base/BatchLogCtr/selectBatchLogPageTotal', // 배치 로그
|
||||||
|
|
||||||
// prgmId: "PRG0017" 검침개소 기간별 비교
|
// prgmId: "PRG0017" 검침개소 기간별 비교
|
||||||
selectSameReadPlcTime: 'ems/base/sameReadPlcCtr/selectSameReadPlcTime',
|
selectSameReadPlcTime: 'ems/base/sameReadPlcCtr/selectSameReadPlcTime',
|
||||||
@ -910,6 +913,11 @@ const INIT_URL_STATE = {
|
|||||||
'ems/effc/eqpmIndMntrCtr/selectDailyEnrgUseMainIdx',
|
'ems/effc/eqpmIndMntrCtr/selectDailyEnrgUseMainIdx',
|
||||||
selectMonthlyEnrgUseMainIdx:
|
selectMonthlyEnrgUseMainIdx:
|
||||||
'ems/effc/eqpmIndMntrCtr/selectMonthlyEnrgUseMainIdx',
|
'ems/effc/eqpmIndMntrCtr/selectMonthlyEnrgUseMainIdx',
|
||||||
|
selectDailyEnrgUseMainIdxPageTotal:
|
||||||
|
'ems/effc/eqpmIndMntrCtr/selectDailyEnrgUseMainIdxPageTotal',
|
||||||
|
selectMonthlyEnrgUseMainIdxPageTotal:
|
||||||
|
'ems/effc/eqpmIndMntrCtr/selectMonthlyEnrgUseMainIdxPageTotal',
|
||||||
|
|
||||||
|
|
||||||
//prgmId : PRG0082 에너지 사용량 - 설비상세 모니터링
|
//prgmId : PRG0082 에너지 사용량 - 설비상세 모니터링
|
||||||
selectDailyEnrgUseMainGuideIdx:
|
selectDailyEnrgUseMainGuideIdx:
|
||||||
@ -935,6 +943,8 @@ const INIT_URL_STATE = {
|
|||||||
//prgmId : PRG0084 설비별 운전가이드
|
//prgmId : PRG0084 설비별 운전가이드
|
||||||
selectEqpmCodeList: 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEqpmCodeList',
|
selectEqpmCodeList: 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEqpmCodeList',
|
||||||
selectEnrgEffcEqpmDetlMntr:'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEnrgEffcEqpmDetlMntr',
|
selectEnrgEffcEqpmDetlMntr:'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEnrgEffcEqpmDetlMntr',
|
||||||
|
selectEnrgEffcEqpmDetlMntrPageTotal:
|
||||||
|
'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEnrgEffcEqpmDetlMntrPageTotal', // 일일검침정보
|
||||||
selectEqpmDetailPop: 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEqpmDetailPop',
|
selectEqpmDetailPop: 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEqpmDetailPop',
|
||||||
selectEnrgEffcGdIdxDetPop : 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEnrgEffcGdIdxDetPop',
|
selectEnrgEffcGdIdxDetPop : 'ems/effc/EnrgEffcEqpmDetlMntrCtr/selectEnrgEffcGdIdxDetPop',
|
||||||
|
|
||||||
@ -962,4 +972,5 @@ const INIT_URL_STATE = {
|
|||||||
selectTodayNgTopTen: 'ems/base/DashboardCtr/selectTodayNgTopTen',
|
selectTodayNgTopTen: 'ems/base/DashboardCtr/selectTodayNgTopTen',
|
||||||
selectCompareEqpmTGdChart: 'ems/base/DashboardCtr/selectCompareEqpmTGdChart',
|
selectCompareEqpmTGdChart: 'ems/base/DashboardCtr/selectCompareEqpmTGdChart',
|
||||||
selectIssueGdIdxData: 'ems/base/DashboardCtr/selectIssueGdIdxData',
|
selectIssueGdIdxData: 'ems/base/DashboardCtr/selectIssueGdIdxData',
|
||||||
|
selectIssueGdIdxDataPageTotal: 'ems/base/DashboardCtr/selectIssueGdIdxDataPageTotal',
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user