From 6d5c49f0a208de5b745c36d2320dd4c2cffe7d75 Mon Sep 17 00:00:00 2001
From: vben <anncwb@126.com>
Date: 星期五, 15 一月 2021 00:17:33 +0800
Subject: [PATCH] fix(menu): currentActiveMenu fails after refresh #188

---
 src/components/Menu/src/BasicMenu.vue |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/components/Menu/src/BasicMenu.vue b/src/components/Menu/src/BasicMenu.vue
index 5729c15..2def934 100644
--- a/src/components/Menu/src/BasicMenu.vue
+++ b/src/components/Menu/src/BasicMenu.vue
@@ -58,6 +58,7 @@
     emits: ['menuClick'],
     setup(props, { emit }) {
       const isClickGo = ref(false);
+      const currentActiveMenu = ref('');
 
       const menuState = reactive<MenuState>({
         defaultSelectedKeys: [],
@@ -118,10 +119,11 @@
       listenerLastChangeTab((route) => {
         if (route.name === REDIRECT_NAME) return;
         handleMenuChange(route);
-        const currentActiveMenu = route.meta?.currentActiveMenu;
-        if (currentActiveMenu) {
-          menuState.selectedKeys = [currentActiveMenu];
-          setOpenKeys(currentActiveMenu);
+        currentActiveMenu.value = route.meta?.currentActiveMenu;
+
+        if (unref(currentActiveMenu)) {
+          menuState.selectedKeys = [unref(currentActiveMenu)];
+          setOpenKeys(unref(currentActiveMenu));
         }
       });
 
@@ -153,6 +155,7 @@
         }
         const path = (route || unref(currentRoute)).path;
         setOpenKeys(path);
+        if (unref(currentActiveMenu)) return;
         if (props.isHorizontal && unref(getSplit)) {
           const parentPath = await getCurrentParentPath(path);
           menuState.selectedKeys = [parentPath];

--
Gitblit v1.8.0