|
@@ -0,0 +1,524 @@
|
|
|
+
|
|
|
+
|
|
|
+.hc-layout-box {
|
|
|
+ position: relative;
|
|
|
+ height: 100vh;
|
|
|
+ width: 100%;
|
|
|
+ .hc-app-bg-box {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ z-index: 0;
|
|
|
+ display: flex;
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: cover;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .hc-layout-header {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ flex-direction: row;
|
|
|
+ --el-header-padding: 0;
|
|
|
+ --el-header-height: 44px;
|
|
|
+ background: #ffffff;
|
|
|
+ color: #333333;
|
|
|
+ box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);
|
|
|
+ border-bottom: 1px solid #EBEFF2;
|
|
|
+ margin-bottom: 4px;
|
|
|
+
|
|
|
+ .hc-layout-header-logo {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ // justify-content: center;
|
|
|
+ transition: opacity 0.3s;
|
|
|
+ cursor: pointer;
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+ z-index: 222;
|
|
|
+ #logo-icon {
|
|
|
+ height: 40px;
|
|
|
+ width: 52px;
|
|
|
+ filter: none;
|
|
|
+ }
|
|
|
+ #logo-name {
|
|
|
+ height: 32px;
|
|
|
+ margin-left: 5px;
|
|
|
+ filter: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .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;
|
|
|
+ .hc-header-project-name-box {
|
|
|
+ position: relative;
|
|
|
+ padding: 4px 15px;
|
|
|
+ border-radius: 100px;
|
|
|
+ background: white;
|
|
|
+ height: 28px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-right: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ user-select: none;
|
|
|
+ max-width: 340px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #606266;
|
|
|
+ .project-icon {
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .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);
|
|
|
+ background: #001529;
|
|
|
+ }
|
|
|
+ .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: #001529;
|
|
|
+ --el-menu-text-color: #88919B;
|
|
|
+ --el-menu-active-color: #DDE0E4;
|
|
|
+ --el-menu-hover-text-color: #DDE0E4;
|
|
|
+ --el-menu-hover-bg-color: #2D8CF0;
|
|
|
+ --el-menu-item-font-size: 16px;
|
|
|
+ --el-menu-item-height: 48px;
|
|
|
+ border-right: 0;
|
|
|
+ background-color: var(--el-menu-bg-color);
|
|
|
+ &.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-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);
|
|
|
+ background-color: #2D8CF0;
|
|
|
+ &::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: #DDE0E4 !important;
|
|
|
+ background: #2D8CF0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//菜单路由
|
|
|
+.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);
|
|
|
+}
|
|
|
+
|
|
|
+//深色模式
|
|
|
+html.dark {
|
|
|
+ .hc-layout-box {
|
|
|
+ .hc-layout-header, .hc-layout-container .hc-layout-aside {
|
|
|
+ background: transparent;
|
|
|
+ .el-menu .el-menu-item.is-active::after {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .hc-layout-container .hc-layout-main .hc-router-menu-bar {
|
|
|
+ background: #000834;
|
|
|
+ .hc-router-tab-item {
|
|
|
+ color: #7a7a7a;
|
|
|
+ }
|
|
|
+ .hc-router-tab-item.cur {
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .header-icon-bar {
|
|
|
+ border: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//没有 layout
|
|
|
+.hc-layout-box.is-no-layout {
|
|
|
+ .hc-layout-header, .hc-layout-aside, .hc-router-menu-bar {
|
|
|
+ display: none !important;
|
|
|
+ }
|
|
|
+ .hc-layout-container .hc-layout-main .hc-main-page {
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+}
|