Pan 7 лет назад
Родитель
Сommit
5b7aafacc4

+ 6 - 5
src/components/ScrollBar/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="scroll-container" ref="scrollContainer" @mousewheel="handleScroll">
+  <div class="scroll-container" ref="scrollContainer" @wheel.prevent="handleScroll" >
     <div class="scroll-wrapper" ref="scrollWrapper" :style="{top: top + 'px'}">
       <slot></slot>
     </div>
@@ -8,6 +8,7 @@
 
 <script>
 const delta = 15
+
 export default {
   name: 'scrollBar',
   data() {
@@ -17,19 +18,19 @@ export default {
   },
   methods: {
     handleScroll(e) {
-      e.preventDefault()
+      const eventDelta = e.wheelDelta || -e.deltaY * 3
       const $container = this.$refs.scrollContainer
       const $containerHeight = $container.offsetHeight
       const $wrapper = this.$refs.scrollWrapper
       const $wrapperHeight = $wrapper.offsetHeight
-      if (e.wheelDelta > 0) {
-        this.top = Math.min(0, this.top + e.wheelDelta)
+      if (eventDelta > 0) {
+        this.top = Math.min(0, this.top + eventDelta)
       } else {
         if ($containerHeight - delta < $wrapperHeight) {
           if (this.top < -($wrapperHeight - $containerHeight + delta)) {
             this.top = this.top
           } else {
-            this.top = Math.max(this.top + e.wheelDelta, $containerHeight - $wrapperHeight - delta)
+            this.top = Math.max(this.top + eventDelta, $containerHeight - $wrapperHeight - delta)
           }
         } else {
           this.top = 0

+ 4 - 4
src/views/layout/components/Sidebar/SidebarItem.vue

@@ -1,21 +1,21 @@
 <template>
   <div class="menu-wrapper">
-    <template v-for="item in routes">
+    <template v-for="item in routes" v-if="!item.hidden&&item.children">
 
-      <router-link v-if="!item.hidden&&item.children&&item.children.length===1" :to="item.path+'/'+item.children[0].path" :key="item.children[0].name">
+      <router-link v-if="item.children.length===1 && !item.children[0].children" :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'>
           <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">{{item.children[0].meta.title}}</span>
         </el-menu-item>
       </router-link>
 
-      <el-submenu v-if="!item.hidden&&item.children&&item.children.length>1" :index="item.name||item.path" :key="item.name">
+      <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">{{item.meta.title}}</span>
         </template>
 
-        <template v-if="!child.hidden" v-for="child in item.children">
+        <template v-for="child in item.children" v-if="!child.hidden">
           <sidebar-item class="nest-menu" v-if="child.children&&child.children.length>0" :routes="[child]" :key="child.path"></sidebar-item>
 
           <router-link v-else :to="item.path+'/'+child.path" :key="child.name">