perf[Style]: optimize the sidebar style to make it better to set
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
				
			|||||||
#app {
 | 
					#app {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 主体区域
 | 
					  // 主体区域 Main container
 | 
				
			||||||
  .main-container {
 | 
					  .main-container {
 | 
				
			||||||
    min-height: 100%;
 | 
					    min-height: 100%;
 | 
				
			||||||
    transition: margin-left .28s;
 | 
					    transition: margin-left .28s;
 | 
				
			||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
    position: relative;
 | 
					    position: relative;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 侧边栏
 | 
					  // 侧边栏 Sidebar container
 | 
				
			||||||
  .sidebar-container {
 | 
					  .sidebar-container {
 | 
				
			||||||
    transition: width 0.28s;
 | 
					    transition: width 0.28s;
 | 
				
			||||||
    width: $sideBarWidth !important;
 | 
					    width: $sideBarWidth !important;
 | 
				
			||||||
@@ -26,10 +26,6 @@
 | 
				
			|||||||
      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
 | 
					      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .el-scrollbar__bar.is-vertical {
 | 
					 | 
				
			||||||
      right: 0px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .scrollbar-wrapper {
 | 
					    .scrollbar-wrapper {
 | 
				
			||||||
      overflow-x: hidden !important;
 | 
					      overflow-x: hidden !important;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,6 +34,10 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .el-scrollbar__bar.is-vertical {
 | 
				
			||||||
 | 
					      right: 0px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .is-horizontal {
 | 
					    .is-horizontal {
 | 
				
			||||||
      display: none;
 | 
					      display: none;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -58,8 +58,26 @@
 | 
				
			|||||||
      width: 100% !important;
 | 
					      width: 100% !important;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // menu hover
 | 
				
			||||||
 | 
					    .submenu-title-noDropdown,
 | 
				
			||||||
 | 
					    .el-submenu__title {
 | 
				
			||||||
 | 
					      &:hover {
 | 
				
			||||||
 | 
					        background-color: $menuHover !important;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .is-active>.el-submenu__title {
 | 
					    .is-active>.el-submenu__title {
 | 
				
			||||||
      color: #f4f4f5 !important;
 | 
					      color: $subMenuActiveText !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    & .nest-menu .el-submenu>.el-submenu__title,
 | 
				
			||||||
 | 
					    & .el-submenu .el-menu-item {
 | 
				
			||||||
 | 
					      min-width: $sideBarWidth !important;
 | 
				
			||||||
 | 
					      background-color: $subMenuBg !important;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &:hover {
 | 
				
			||||||
 | 
					        background-color: $subMenuHover !important;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -108,21 +126,11 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .sidebar-container .nest-menu .el-submenu>.el-submenu__title,
 | 
					 | 
				
			||||||
  .sidebar-container .el-submenu .el-menu-item {
 | 
					 | 
				
			||||||
    min-width: $sideBarWidth !important;
 | 
					 | 
				
			||||||
    background-color: $subMenuBg !important;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    &:hover {
 | 
					 | 
				
			||||||
      background-color: $menuHover !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .el-menu--collapse .el-menu .el-submenu {
 | 
					  .el-menu--collapse .el-menu .el-submenu {
 | 
				
			||||||
    min-width: $sideBarWidth !important;
 | 
					    min-width: $sideBarWidth !important;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //适配移动端
 | 
					  // 适配移动端, Mobile responsive
 | 
				
			||||||
  .mobile {
 | 
					  .mobile {
 | 
				
			||||||
    .main-container {
 | 
					    .main-container {
 | 
				
			||||||
      margin-left: 0px;
 | 
					      margin-left: 0px;
 | 
				
			||||||
@@ -135,6 +143,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    &.hideSidebar {
 | 
					    &.hideSidebar {
 | 
				
			||||||
      .sidebar-container {
 | 
					      .sidebar-container {
 | 
				
			||||||
 | 
					        pointer-events: none;
 | 
				
			||||||
        transition-duration: 0.3s;
 | 
					        transition-duration: 0.3s;
 | 
				
			||||||
        transform: translate3d(-$sideBarWidth, 0, 0);
 | 
					        transform: translate3d(-$sideBarWidth, 0, 0);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -150,10 +159,19 @@
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// when menu collapsed
 | 
				
			||||||
.el-menu--vertical {
 | 
					.el-menu--vertical {
 | 
				
			||||||
  &>.el-menu {
 | 
					  &>.el-menu {
 | 
				
			||||||
    .svg-icon {
 | 
					    .svg-icon {
 | 
				
			||||||
      margin-right: 16px;
 | 
					      margin-right: 16px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .nest-menu .el-submenu>.el-submenu__title,
 | 
				
			||||||
 | 
					  .el-menu-item {
 | 
				
			||||||
 | 
					    &:hover {
 | 
				
			||||||
 | 
					      // You can use $subMenuHover
 | 
				
			||||||
 | 
					      background-color: $menuHover !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,24 @@
 | 
				
			|||||||
//sidebar
 | 
					//sidebar
 | 
				
			||||||
 | 
					$menuText:#bfcbd9;
 | 
				
			||||||
 | 
					$menuActiveText:#409EFF;
 | 
				
			||||||
 | 
					$subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$menuBg:#304156;
 | 
					$menuBg:#304156;
 | 
				
			||||||
 | 
					$menuHover:#263445;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$subMenuBg:#1f2d3d;
 | 
					$subMenuBg:#1f2d3d;
 | 
				
			||||||
$menuHover:#001528;
 | 
					$subMenuHover:#001528;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$sideBarWidth: 180px;
 | 
					$sideBarWidth: 180px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// the :export directive is the magic sauce for webpack
 | 
				
			||||||
 | 
					:export {
 | 
				
			||||||
 | 
					  menuText: $menuText;
 | 
				
			||||||
 | 
					  menuActiveText: $menuActiveText;
 | 
				
			||||||
 | 
					  subMenuActiveText: $subMenuActiveText;
 | 
				
			||||||
 | 
					  menuBg: $menuBg;
 | 
				
			||||||
 | 
					  menuHover: $menuHover;
 | 
				
			||||||
 | 
					  subMenuBg: $subMenuBg;
 | 
				
			||||||
 | 
					  subMenuHover: $subMenuHover;
 | 
				
			||||||
 | 
					  sideBarWidth: $sideBarWidth;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,10 +4,10 @@
 | 
				
			|||||||
      :show-timeout="200"
 | 
					      :show-timeout="200"
 | 
				
			||||||
      :default-active="$route.path"
 | 
					      :default-active="$route.path"
 | 
				
			||||||
      :collapse="isCollapse"
 | 
					      :collapse="isCollapse"
 | 
				
			||||||
 | 
					      :background-color="variables.menuBg"
 | 
				
			||||||
 | 
					      :text-color="variables.menuText"
 | 
				
			||||||
 | 
					      :active-text-color="variables.menuActiveText"
 | 
				
			||||||
      mode="vertical"
 | 
					      mode="vertical"
 | 
				
			||||||
      background-color="#304156"
 | 
					 | 
				
			||||||
      text-color="#bfcbd9"
 | 
					 | 
				
			||||||
      active-text-color="#409EFF"
 | 
					 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path"/>
 | 
					      <sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path"/>
 | 
				
			||||||
    </el-menu>
 | 
					    </el-menu>
 | 
				
			||||||
@@ -16,6 +16,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { mapGetters } from 'vuex'
 | 
					import { mapGetters } from 'vuex'
 | 
				
			||||||
 | 
					import variables from '@/styles/variables.scss'
 | 
				
			||||||
import SidebarItem from './SidebarItem'
 | 
					import SidebarItem from './SidebarItem'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
@@ -27,6 +28,9 @@ export default {
 | 
				
			|||||||
    routes() {
 | 
					    routes() {
 | 
				
			||||||
      return this.$router.options.routes
 | 
					      return this.$router.options.routes
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    variables() {
 | 
				
			||||||
 | 
					      return variables
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    isCollapse() {
 | 
					    isCollapse() {
 | 
				
			||||||
      return !this.sidebar.opened
 | 
					      return !this.sidebar.opened
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user