#app { .main-container { min-height: 100%; transition: margin-left 0.28s; margin-left: $sideBarWidth; position: relative; } .sidebar-container { transition: width 0.28s; width: $sideBarWidth !important; background-color: $menuBg; height: 100%; position: fixed; font-size: 0px; top: 0; bottom: 0; left: 0; z-index: 1001; overflow: hidden; box-shadow: 4px 0px 10px rgba(0, 0, 0, 0.05); padding: 0px 10px; user-select: none; // reset element-ui css .horizontal-collapse-transition { transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; } .scrollbar-wrapper { overflow-x: hidden !important; } .el-scrollbar__bar.is-vertical { right: 0px; .el-scrollbar__thumb { background-color: rgba($--color-primary, 0.3); &:hover { background-color: rgba($--color-primary, 0.6); } } } .el-scrollbar { height: 100%; } &.has-logo { .el-scrollbar { height: calc(100% - 144px); } } .is-horizontal { display: none; } a { display: inline-block; width: 100%; overflow: hidden; } .svg-icon { margin-right: 15px; height: 20px; width: 20px; } .sub-el-icon { margin-left: -2px; margin-right: 12px; } .el-menu { border: none; height: 100%; width: 100% !important; } .el-menu-item { height: 40px; display: flex; padding: 0 10px; line-height: 48px; align-items: center; flex-direction: row; border-radius: 6px; &:not(.submenu-title-noDropdown) svg { width: 5px; height: 5px; } } .el-submenu__title { height: 40px; display: flex; align-items: center; flex-direction: row; } .is-active > .el-submenu__title { color: $subMenuActiveText !important; } .el-submenu.is-active div, .el-submenu.is-active ul li:not(.el-menu-item.is-active) { border-radius: 6px; background-color: $subMenuActiveBg !important; &:hover { background-color: $menuHover !important; } } .nest-menu .is-active, .el-menu-item.is-active { background-color: $itemActiveBg !important; } // menu hover .submenu-title-noDropdown:not(.is-active), .el-submenu__title { border-radius: 6px; &:hover { background-color: $menuHover !important; } } & .nest-menu .el-submenu > .el-submenu__title, & .el-submenu .el-menu-item:not(.is-active) { min-width: ($sideBarWidth - (2 * 10px)) !important; background-color: $subMenuBg; &:hover { background-color: $subMenuHover !important; } } } /*侧边栏菜单展开*/ .openSidebar { & .el-submenu.is-active:not(.is-opened) > .el-submenu__title::before { left: 6px; width: 6px; height: 6px; content: " "; border-radius: 6px; position: absolute; background-color: $itemActiveBg; } } /*侧边栏菜单关闭*/ .hideSidebar { .sidebar-container { width: 56px !important; padding: 0px 0px; } .main-container { margin-left: 54px; } .submenu-title-noDropdown { padding: 0 !important; position: relative; .el-tooltip { padding: 0 !important; .svg-icon { margin-left: 20px; } .sub-el-icon { margin-left: 19px; } } } .el-submenu { overflow: hidden; & > .el-submenu__title { padding: 0 !important; .svg-icon { margin-left: 20px; } .sub-el-icon { margin-left: 19px; } .el-submenu__icon-arrow { display: none; } } &.is-active .el-submenu__title::before { left: 6px; right: 6px; bottom: 6px; height: 3px; content: " "; position: absolute; background-color: $subMenuHover; } } .el-menu--collapse { .el-submenu { & > .el-submenu__title { & > span { height: 0; width: 0; overflow: hidden; visibility: hidden; display: inline-block; } } } } } .el-menu--collapse .el-menu .el-submenu { min-width: ($sideBarWidth - (2 * 10px)) !important; } // mobile responsive .mobile { .main-container { margin-left: 0px; } .sidebar-container { transition: transform 0.28s; width: $sideBarWidth !important; } &.hideSidebar { .sidebar-container { pointer-events: none; transition-duration: 0.3s; transform: translate3d(-$sideBarWidth, 0, 0); } } } .withoutAnimation { .main-container, .sidebar-container { transition: none; } } } // when menu collapsed .el-menu--vertical { & > .el-menu { .svg-icon { margin-right: 16px; } .sub-el-icon { margin-right: 12px; margin-left: -2px; } } .nest-menu .el-submenu > .el-submenu__title, .el-menu-item { &:hover { // you can use $subMenuHover background-color: $menuHover !important; } } // the scroll bar appears when the subMenu is too long > .el-menu--popup { max-height: 100vh; overflow-y: auto; &::-webkit-scrollbar-track-piece { background: #d3dce6; } &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-thumb { background: #99a9bf; border-radius: 20px; } } } .el-menu.el-menu--popup { svg { display: none; } .el-menu-item.is-active { background-color: $itemActiveBg !important; } }