瀏覽代碼

fix: fix the problem that the page is stuck in top mode

ckl1 3 年之前
父節點
當前提交
8d01f48d50
共有 3 個文件被更改,包括 136 次插入458 次删除
  1. 4 4
      package.json
  2. 99 433
      pnpm-lock.yaml
  3. 33 21
      src/components/Menu/src/Menu.vue

+ 4 - 4
package.json

@@ -27,7 +27,7 @@
   },
   "dependencies": {
     "@iconify/iconify": "^2.2.1",
-    "@vueuse/core": "^8.4.1",
+    "@vueuse/core": "^8.4.2",
     "@wangeditor/editor": "^5.0.1",
     "@wangeditor/editor-for-vue": "^5.1.10",
     "@zxcvbn-ts/core": "^2.0.1",
@@ -41,7 +41,7 @@
     "mitt": "^3.0.0",
     "mockjs": "^1.1.0",
     "nprogress": "^0.2.0",
-    "pinia": "^2.0.13",
+    "pinia": "^2.0.14",
     "pinia-plugin-persist": "^1.0.0",
     "qrcode": "^1.5.0",
     "qs": "^6.10.3",
@@ -55,7 +55,7 @@
   "devDependencies": {
     "@commitlint/cli": "^16.2.4",
     "@commitlint/config-conventional": "^16.2.4",
-    "@iconify/json": "^2.1.36",
+    "@iconify/json": "^2.1.38",
     "@intlify/vite-plugin-vue-i18n": "^3.4.0",
     "@purge-icons/generated": "^0.8.1",
     "@types/intro.js": "^3.0.2",
@@ -69,7 +69,7 @@
     "@vitejs/plugin-vue": "^2.3.2",
     "@vitejs/plugin-vue-jsx": "^1.3.10",
     "autoprefixer": "^10.4.7",
-    "eslint": "^8.14.0",
+    "eslint": "^8.15.0",
     "eslint-config-prettier": "^8.5.0",
     "eslint-define-config": "^1.4.0",
     "eslint-plugin-prettier": "^4.0.0",

File diff suppressed because it is too large
+ 99 - 433
pnpm-lock.yaml


+ 33 - 21
src/components/Menu/src/Menu.vue

@@ -70,6 +70,38 @@ export default defineComponent({
       }
     }
 
+    const renderMenuWrap = () => {
+      if (unref(layout) === 'top') {
+        return renderMenu()
+      } else {
+        return <ElScrollbar>{renderMenu()}</ElScrollbar>
+      }
+    }
+
+    const renderMenu = () => {
+      return (
+        <ElMenu
+          defaultActive={unref(activeMenu)}
+          mode={unref(menuMode)}
+          collapse={
+            unref(layout) === 'top' || unref(layout) === 'cutMenu' ? false : unref(collapse)
+          }
+          uniqueOpened={unref(layout) === 'top' ? false : unref(uniqueOpened)}
+          backgroundColor="var(--left-menu-bg-color)"
+          textColor="var(--left-menu-text-color)"
+          activeTextColor="var(--left-menu-text-active-color)"
+          onSelect={menuSelect}
+        >
+          {{
+            default: () => {
+              const { renderMenuItem } = useRenderMenuItem(unref(routers), unref(menuMode))
+              return renderMenuItem()
+            }
+          }}
+        </ElMenu>
+      )
+    }
+
     return () => (
       <div
         id={prefixCls}
@@ -82,27 +114,7 @@ export default defineComponent({
           }
         ]}
       >
-        <ElScrollbar>
-          <ElMenu
-            defaultActive={unref(activeMenu)}
-            mode={unref(menuMode)}
-            collapse={
-              unref(layout) === 'top' || unref(layout) === 'cutMenu' ? false : unref(collapse)
-            }
-            uniqueOpened={unref(layout) === 'top' ? false : unref(uniqueOpened)}
-            backgroundColor="var(--left-menu-bg-color)"
-            textColor="var(--left-menu-text-color)"
-            activeTextColor="var(--left-menu-text-active-color)"
-            onSelect={menuSelect}
-          >
-            {{
-              default: () => {
-                const { renderMenuItem } = useRenderMenuItem(unref(routers), unref(menuMode))
-                return renderMenuItem()
-              }
-            }}
-          </ElMenu>
-        </ElScrollbar>
+        {renderMenuWrap()}
       </div>
     )
   }

Some files were not shown because too many files changed in this diff