Commit 6d5c49f0a208de5b745c36d2320dd4c2cffe7d75

Authored by vben
1 parent 0aeec5e9

fix(menu): currentActiveMenu fails after refresh #188

src/components/Menu/src/BasicMenu.vue
@@ -58,6 +58,7 @@ @@ -58,6 +58,7 @@
58 emits: ['menuClick'], 58 emits: ['menuClick'],
59 setup(props, { emit }) { 59 setup(props, { emit }) {
60 const isClickGo = ref(false); 60 const isClickGo = ref(false);
  61 + const currentActiveMenu = ref('');
61 62
62 const menuState = reactive<MenuState>({ 63 const menuState = reactive<MenuState>({
63 defaultSelectedKeys: [], 64 defaultSelectedKeys: [],
@@ -118,10 +119,11 @@ @@ -118,10 +119,11 @@
118 listenerLastChangeTab((route) => { 119 listenerLastChangeTab((route) => {
119 if (route.name === REDIRECT_NAME) return; 120 if (route.name === REDIRECT_NAME) return;
120 handleMenuChange(route); 121 handleMenuChange(route);
121 - const currentActiveMenu = route.meta?.currentActiveMenu;  
122 - if (currentActiveMenu) {  
123 - menuState.selectedKeys = [currentActiveMenu];  
124 - setOpenKeys(currentActiveMenu); 122 + currentActiveMenu.value = route.meta?.currentActiveMenu;
  123 +
  124 + if (unref(currentActiveMenu)) {
  125 + menuState.selectedKeys = [unref(currentActiveMenu)];
  126 + setOpenKeys(unref(currentActiveMenu));
125 } 127 }
126 }); 128 });
127 129
@@ -153,6 +155,7 @@ @@ -153,6 +155,7 @@
153 } 155 }
154 const path = (route || unref(currentRoute)).path; 156 const path = (route || unref(currentRoute)).path;
155 setOpenKeys(path); 157 setOpenKeys(path);
  158 + if (unref(currentActiveMenu)) return;
156 if (props.isHorizontal && unref(getSplit)) { 159 if (props.isHorizontal && unref(getSplit)) {
157 const parentPath = await getCurrentParentPath(path); 160 const parentPath = await getCurrentParentPath(path);
158 menuState.selectedKeys = [parentPath]; 161 menuState.selectedKeys = [parentPath];