.hc-layout-box { position: relative; height: 100vh; width: 100%; .hc-layout-header { position: relative; display: flex; align-items: center; flex-direction: row; --el-header-padding: 0; --el-header-height: 44px; background: var(--el-color-primary); color: white; .hc-layout-header-logo { position: relative; display: flex; align-items: center; justify-content: center; transition: opacity 0.3s; cursor: pointer; height: 100%; box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.4); z-index: 222; #logo-icon { height: 28px; width: 28px; filter: invert(85%) sepia(91%) saturate(0%) hue-rotate(233deg) brightness(114%) contrast(101%) } #logo-name { height: 32px; margin-left: 4px; filter: invert(85%) sepia(91%) saturate(0%) hue-rotate(233deg) brightness(114%) contrast(101%) } &:hover { opacity: .8; } } .header-top-collapse-bar { position: relative; height: 100%; font-size: 20px; display: flex; justify-content: center; align-items: center; padding: 0 10px; cursor: pointer; transition: opacity .2s; &:hover { opacity: 0.7; } } .header-top-menu-bar { position: relative; padding: 0 4px; height: 100%; flex: 1; .el-scrollbar__view { height: 100%; } } .header-content-bar { position: relative; padding: 0 20px; height: 100%; display: flex; align-items: center; .header-icon-bar { position: relative; height: 100%; display: flex; justify-content: center; align-items: center; cursor: pointer; font-size: 25px; margin-right: 8px; color: #efefef; transition: color .2s; &:hover { color: white; } } } } .hc-layout-container { position: relative; .hc-layout-aside { position: relative; color: white; padding: 8px 0; background: var(--el-color-primary); } .hc-layout-main { position: relative; overflow: hidden; height: 100%; --el-main-padding: 0; .hc-router-menu-bar { position: relative; height: 36px; padding: 0 10px; background: white; box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); z-index: 222; } .hc-main-page { position: relative; height: calc(100% - 36px); overflow: hidden; .hc-main-body { position: absolute; padding: 12px; inset: 0; } } } } } //左侧菜单 .hc-layout-box .hc-layout-container .hc-layout-aside .el-menu { --el-menu-bg-color: transparent; --el-menu-text-color: #ffffff; --el-menu-active-color: var(--el-menu-text-color); --el-menu-hover-text-color: var(--el-menu-text-color); --el-menu-hover-bg-color: var(--el-color-primary); --el-menu-item-font-size: 16px; --el-menu-item-height: 48px; border-right: 0; &.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item, &.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title, &.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title { white-space: nowrap; padding-left: 0; } &.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title { padding-right: 1px; border: 0; } .el-sub-menu__title { padding: 0; } .el-menu-item, .el-sub-menu { min-width: initial; transition: 0.2s; .hc-aside-menu-item { flex: 1; position: relative; padding: 0 20px; display: flex; align-items: center; transition: 0.2s; .menu---item { display: contents; } .hc-menu-icon { position: relative; font-size: 18px; margin-right: 8px; line-height: initial; } .name { flex: 1; width: 0; } .el-badge { position: absolute; top: -22px; right: 0; vertical-align: initial; } } } .el-sub-menu .el-menu .el-menu-item { padding-left: 24px !important; padding-right: 1px; font-size: 14px; height: 46px; line-height: initial; .hc-aside-menu-item .hc-menu-icon { margin-right: 6px; font-size: 14px; } } .el-sub-menu .el-icon { display: none; } .el-sub-menu .el-icon.hc-icon-i { position: relative; display: inline-block; font-size: 16px; right: 15px; top: initial; height: initial; width: initial; margin-top: 0; vertical-align: initial; } .el-sub-menu.is-active > .el-sub-menu__title { background-color: var(--el-color-primary-light-3); } .el-menu-item.is-active { background-color: var(--el-color-primary-dark-2); &::after { content: ''; position: absolute; right: 0; top: 0; width: 3px; height: 100%; background-color: white; } } .el-sub-menu .el-sub-menu__title:hover, .el-menu-item:not(.is-active):hover { background-color: var(--el-color-primary-dark-2); } //折叠状态 &.el-menu--collapse { margin-left: 0; width: 90px; .el-sub-menu__title { height: inherit; line-height: initial; width: 90px; justify-content: center; transition: 0.2s; } .el-menu-item, .el-sub-menu { padding: 0 !important; height: 60px; line-height: initial; display: flex; align-items: center; justify-content: center; width: 90px; transition: 0.2s; .hc-aside-menu-item { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; text-align: center; border-radius: 10px; padding: 5px; flex: initial; transition: 0.2s; .menu---item { position: relative; display: block; } .hc-menu-icon { margin-right: 0; } .name { flex: initial; width: 100%; } .el-badge, .el-badge .el-badge__content { vertical-align: initial; } .el-badge { position: absolute; top: -20px; right: -24px; } } } .el-sub-menu .el-icon.hc-icon-i { display: none; } .el-menu-item + .el-menu-item, .el-menu-item + .el-sub-menu, .el-sub-menu + .el-menu-item, .el-sub-menu + .el-sub-menu { margin-top: 12px; } .el-sub-menu.is-active > .el-sub-menu__title { background-color: initial; } .el-menu-item.is-active { background-color: initial; } .el-sub-menu .el-sub-menu__title:hover, .el-menu-item:not(.is-active):hover { background-color: initial; } .el-sub-menu:not(.is-active):hover, .el-menu-item:not(.is-active):hover { .hc-aside-menu-item { background-color: var(--el-color-primary-light-9); color: var(--el-color-primary); } } .el-menu-item.is-active, .el-sub-menu.is-active { .hc-aside-menu-item { color: #ffffff !important; background: var(--el-color-primary-dark-2); } } } } //菜单路由 .hc-layout-box .hc-layout-container .hc-layout-main .hc-router-menu-bar { .el-scrollbar__view { height: 100%; } .hc-router-tab-box { position: relative; display: flex; align-items: center; white-space: nowrap; height: 100%; } .hc-router-tab-item { position: relative; height: 100%; padding: 0 8px; display: inline-flex; align-items: center; cursor: pointer; color: #8F8F8F; user-select: none; transition: .3s; .close-icon { height: 30px; width: 18px; display: flex; align-items: center; justify-content: center; margin-left: 6px; font-size: 16px; cursor: pointer; transition: color 0.3s; &:hover { color: var(--el-color-primary); } } &::after{ content: ''; left: 0; bottom: 0; height: 2.5px; width: 100%; position: absolute; background-size: 200%; } &:hover:not([class*='cur']) { color: var(--el-color-primary); } &.cur { color: var(--el-color-primary-dark-2); &::after { background: linear-gradient(to right, var(--el-color-primary-light-5), var(--el-color-primary), var(--el-color-primary-dark-2)); } } } .el-scrollbar__bar.is-horizontal { bottom: -10px; } .el-scrollbar__bar.is-vertical { display: none; } } .aside-menu-popper.el-popper.is-light { background: initial !important; border: 0 !important; outline: none; } .aside-menu-popper.el-popper .el-menu--vertical .el-menu { --el-menu-bg-color: #f1f5f8; --el-menu-text-color: #838791; --el-menu-active-color: #ffffff; --el-menu-hover-bg-color: initial; --el-menu-item-font-size: 16px; background-color: #f1f5f8; color: #838791; .el-sub-menu__title { padding: 0; justify-content: center; transition: 0.2s; } .el-menu-item, .el-sub-menu { color: inherit; padding: 0; transition: 0.2s; .hc-aside-menu-item { flex: 1; position: relative; padding: 0 16px; display: flex; align-items: center; transition: 0.2s; .menu---item { display: contents; } .hc-menu-icon { font-size: 22px; margin-right: 10px; line-height: initial; } .name { flex: 1; width: 0; } .el-badge, .el-badge .el-badge__content { vertical-align: initial; } } &.is-active { color: white; } } .el-sub-menu .el-icon { display: none; } .el-sub-menu .el-icon.hc-icon-i { position: relative; display: inline-block; font-size: 16px; right: 10px; top: initial; height: initial; width: initial; margin-top: 0; vertical-align: initial; } .el-sub-menu:not(.is-active) .el-sub-menu__title:hover { background-color: var(--el-color-primary-light-9); color: var(--el-color-primary); } .el-menu-item:not(.is-active):hover { .hc-aside-menu-item { background-color: var(--el-color-primary-light-9); color: var(--el-color-primary); } } .el-menu-item.is-active { .hc-aside-menu-item { background-color: var(--el-color-primary); } } .el-sub-menu.is-active .el-sub-menu__title { background-color: var(--el-color-primary-light-9); color: var(--el-color-primary); } } .aside-menu-popper.el-popper .el-menu--vertical.home-index .el-menu { --el-menu-bg-color: initial; --el-menu-text-color: initial; color: white; background-color: var(--el-color-primary-dark-2); }