diff --git a/package.json b/package.json index bf37a0dcd7e270d91d42349a87e9e504122a3460..30dc32ce07a634e24e1818977847de27167917c5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "codemirror": "5.32.0", "dropzone": "5.2.0", "echarts": "3.8.5", - "element-ui": "2.0.8", + "element-ui": "2.3.2", "file-saver": "1.3.3", "font-awesome": "4.7.0", "js-cookie": "2.2.0", diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss index 2fed2b1db3cf4bc096a2c5518bd398e190d330de..e8bc0ab2c8b1ba04b91ee10aa91253e5029ef7f0 100644 --- a/src/styles/sidebar.scss +++ b/src/styles/sidebar.scss @@ -2,18 +2,21 @@ // 主体区域 .main-container { min-height: 100%; - transition: margin-left 0.28s; + transition: margin-left .28s; margin-left: 180px; - } // 侧边æ + } + // 侧边æ .sidebar-container { - transition: width 0.28s; - width: 180px!important; + transition: width .28s; + width: 180px !important; height: 100%; position: fixed; + font-size: 0px; top: 0; bottom: 0; left: 0; z-index: 1001; + overflow: hidden; a { display: inline-block; width: 100%; @@ -23,78 +26,48 @@ } .el-menu { border: none; - width: 100%; + width: 100% !important; } } .hideSidebar { - .sidebar-container,.sidebar-container .el-menu { - width: 36px!important; - // overflow: inherit; + .sidebar-container { + width: 36px !important; } .main-container { margin-left: 36px; } - } - .hideSidebar { .submenu-title-noDropdown { - padding-left: 10px!important; + padding-left: 10px !important; position: relative; - span { - height: 0; - width: 0; - overflow: hidden; - visibility: hidden; - transition: opacity .3s cubic-bezier(.55, 0, .1, 1); - opacity: 0; - display: inline-block; - } - &:hover { - span { - display: block; - border-radius: 3px; - z-index: 1002; - width: 140px; - height: 56px; - visibility: visible; - position: absolute; - right: -145px; - text-align: left; - text-indent: 20px; - top: 0px; - background-color: $subMenuBg!important; - opacity: 1; - } + .el-tooltip { + padding: 0 10px !important; } } .el-submenu { &>.el-submenu__title { - padding-left: 10px!important; + padding-left: 10px !important; &>span { - display: none; + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; } .el-submenu__icon-arrow { display: none; } } - .nest-menu { - .el-submenu__icon-arrow { - display: block!important; - } - span { - display: inline-block!important; - } - } } } .nest-menu .el-submenu>.el-submenu__title, .el-submenu .el-menu-item { - min-width: 180px!important; - background-color: $subMenuBg!important; + min-width: 180px !important; + background-color: $subMenuBg !important; &:hover { - background-color: $menuHover!important; + background-color: $menuHover !important; } } - .el-menu--collapse .el-menu .el-submenu{ - min-width: 180px!important; + .el-menu--collapse .el-menu .el-submenu { + min-width: 180px !important; } } diff --git a/src/views/layout/components/Sidebar/SidebarItem.vue b/src/views/layout/components/Sidebar/SidebarItem.vue index e60313f9989011ae3c3a270b9d2a1997881606d3..cddcd61dec0a97cd818e31260ac98918655726cd 100644 --- a/src/views/layout/components/Sidebar/SidebarItem.vue +++ b/src/views/layout/components/Sidebar/SidebarItem.vue @@ -2,17 +2,18 @@ <div class="menu-wrapper"> <template v-for="item in routes" v-if="!item.hidden&&item.children"> - <router-link v-if="hasOneShowingChildren(item.children) && !item.children[0].children&&!item.alwaysShow" :to="item.path+'/'+item.children[0].path" :key="item.children[0].name"> + <router-link v-if="hasOneShowingChildren(item.children) && !item.children[0].children&&!item.alwaysShow" :to="item.path+'/'+item.children[0].path" + :key="item.children[0].name"> <el-menu-item :index="item.path+'/'+item.children[0].path" :class="{'submenu-title-noDropdown':!isNest}"> <svg-icon v-if="item.children[0].meta&&item.children[0].meta.icon" :icon-class="item.children[0].meta.icon"></svg-icon> - <span v-if="item.children[0].meta&&item.children[0].meta.title">{{generateTitle(item.children[0].meta.title)}}</span> + <span v-if="item.children[0].meta&&item.children[0].meta.title" slot="title">{{generateTitle(item.children[0].meta.title)}}</span> </el-menu-item> </router-link> <el-submenu v-else :index="item.name||item.path" :key="item.name"> <template slot="title"> <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon> - <span v-if="item.meta&&item.meta.title">{{generateTitle(item.meta.title)}}</span> + <span v-if="item.meta&&item.meta.title" slot="title">{{generateTitle(item.meta.title)}}</span> </template> <template v-for="child in item.children" v-if="!child.hidden"> @@ -21,7 +22,7 @@ <router-link v-else :to="item.path+'/'+child.path" :key="child.name"> <el-menu-item :index="item.path+'/'+child.path"> <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon> - <span v-if="child.meta&&child.meta.title">{{generateTitle(child.meta.title)}}</span> + <span v-if="child.meta&&child.meta.title" slot="title">{{generateTitle(child.meta.title)}}</span> </el-menu-item> </router-link> </template> diff --git a/src/views/layout/components/Sidebar/index.vue b/src/views/layout/components/Sidebar/index.vue index 6a6f14278029f50a292834b77775c645099b6752..de434e81fd83d71198bfc0eaa432b995c675d697 100644 --- a/src/views/layout/components/Sidebar/index.vue +++ b/src/views/layout/components/Sidebar/index.vue @@ -1,6 +1,15 @@ <template> <scroll-bar> - <el-menu mode="vertical" :default-active="$route.path" :collapse="isCollapse" background-color="#304156" text-color="#bfcbd9" active-text-color="#409EFF"> + <el-menu + mode="vertical" + :collapse-transition="false" + :show-timeout="200" + :default-active="$route.path" + :collapse="isCollapse" + background-color="#304156" + text-color="#bfcbd9" + active-text-color="#409EFF" + > <sidebar-item :routes="permission_routers"></sidebar-item> </el-menu> </scroll-bar>