Explorar o código

fix some bugs

Pan %!s(int64=7) %!d(string=hai) anos
pai
achega
5b7aafacc4

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

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <div class="scroll-container" ref="scrollContainer" @mousewheel="handleScroll">
2
+  <div class="scroll-container" ref="scrollContainer" @wheel.prevent="handleScroll" >
3 3
     <div class="scroll-wrapper" ref="scrollWrapper" :style="{top: top + 'px'}">
4 4
       <slot></slot>
5 5
     </div>
@@ -8,6 +8,7 @@
8 8
 
9 9
 <script>
10 10
 const delta = 15
11
+
11 12
 export default {
12 13
   name: 'scrollBar',
13 14
   data() {
@@ -17,19 +18,19 @@ export default {
17 18
   },
18 19
   methods: {
19 20
     handleScroll(e) {
20
-      e.preventDefault()
21
+      const eventDelta = e.wheelDelta || -e.deltaY * 3
21 22
       const $container = this.$refs.scrollContainer
22 23
       const $containerHeight = $container.offsetHeight
23 24
       const $wrapper = this.$refs.scrollWrapper
24 25
       const $wrapperHeight = $wrapper.offsetHeight
25
-      if (e.wheelDelta > 0) {
26
-        this.top = Math.min(0, this.top + e.wheelDelta)
26
+      if (eventDelta > 0) {
27
+        this.top = Math.min(0, this.top + eventDelta)
27 28
       } else {
28 29
         if ($containerHeight - delta < $wrapperHeight) {
29 30
           if (this.top < -($wrapperHeight - $containerHeight + delta)) {
30 31
             this.top = this.top
31 32
           } else {
32
-            this.top = Math.max(this.top + e.wheelDelta, $containerHeight - $wrapperHeight - delta)
33
+            this.top = Math.max(this.top + eventDelta, $containerHeight - $wrapperHeight - delta)
33 34
           }
34 35
         } else {
35 36
           this.top = 0

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

@@ -1,21 +1,21 @@
1 1
 <template>
2 2
   <div class="menu-wrapper">
3
-    <template v-for="item in routes">
3
+    <template v-for="item in routes" v-if="!item.hidden&&item.children">
4 4
 
5
-      <router-link v-if="!item.hidden&&item.children&&item.children.length===1" :to="item.path+'/'+item.children[0].path" :key="item.children[0].name">
5
+      <router-link v-if="item.children.length===1 && !item.children[0].children" :to="item.path+'/'+item.children[0].path" :key="item.children[0].name">
6 6
         <el-menu-item :index="item.path+'/'+item.children[0].path" class='submenu-title-noDropdown'>
7 7
           <svg-icon v-if="item.children[0].meta&&item.children[0].meta.icon" :icon-class="item.children[0].meta.icon"></svg-icon>
8 8
           <span v-if="item.children[0].meta&&item.children[0].meta.title">{{item.children[0].meta.title}}</span>
9 9
         </el-menu-item>
10 10
       </router-link>
11 11
 
12
-      <el-submenu v-if="!item.hidden&&item.children&&item.children.length>1" :index="item.name||item.path" :key="item.name">
12
+      <el-submenu v-else :index="item.name||item.path" :key="item.name">
13 13
         <template slot="title">
14 14
           <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon>
15 15
           <span v-if="item.meta&&item.meta.title">{{item.meta.title}}</span>
16 16
         </template>
17 17
 
18
-        <template v-if="!child.hidden" v-for="child in item.children">
18
+        <template v-for="child in item.children" v-if="!child.hidden">
19 19
           <sidebar-item class="nest-menu" v-if="child.children&&child.children.length>0" :routes="[child]" :key="child.path"></sidebar-item>
20 20
 
21 21
           <router-link v-else :to="item.path+'/'+child.path" :key="child.name">