mirror of
https://gitcode.com/gh_mirrors/vue/vue-vben-admin
synced 2026-05-22 06:37:46 +00:00
fix(simple-menu): collapse openmenus error #204
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
v-bind="getBindValues"
|
||||
@select="handleSelect"
|
||||
:activeName="activeName"
|
||||
:openNames="openNames"
|
||||
:openNames="getOpenKeys"
|
||||
:class="prefixCls"
|
||||
:activeSubMenuNames="activeSubMenuNames"
|
||||
>
|
||||
@@ -67,8 +67,14 @@
|
||||
|
||||
const { currentRoute } = useRouter();
|
||||
const { prefixCls } = useDesign('simple-menu');
|
||||
const { items, accordion, mixSider } = toRefs(props);
|
||||
const { setOpenKeys } = useOpenKeys(menuState, items, accordion, mixSider);
|
||||
const { items, accordion, mixSider, collapse } = toRefs(props);
|
||||
const { setOpenKeys, getOpenKeys } = useOpenKeys(
|
||||
menuState,
|
||||
items,
|
||||
accordion,
|
||||
mixSider,
|
||||
collapse
|
||||
);
|
||||
|
||||
const getBindValues = computed(() => ({ ...attrs, ...props }));
|
||||
|
||||
@@ -125,6 +131,7 @@
|
||||
prefixCls,
|
||||
getBindValues,
|
||||
handleSelect,
|
||||
getOpenKeys,
|
||||
...toRefs(menuState),
|
||||
};
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { Menu as MenuType } from '/@/router/types';
|
||||
import type { MenuState } from './types';
|
||||
|
||||
import { Ref, toRaw } from 'vue';
|
||||
import { computed, Ref, toRaw } from 'vue';
|
||||
|
||||
import { unref } from 'vue';
|
||||
import { es6Unique } from '/@/utils';
|
||||
@@ -12,7 +12,8 @@ export function useOpenKeys(
|
||||
menuState: MenuState,
|
||||
menus: Ref<MenuType[]>,
|
||||
accordion: Ref<boolean>,
|
||||
mixSider: Ref<boolean>
|
||||
mixSider: Ref<boolean>,
|
||||
collapse: Ref<boolean>
|
||||
// mode: Ref<MenuModeEnum>,
|
||||
) {
|
||||
async function setOpenKeys(path: string) {
|
||||
@@ -41,5 +42,9 @@ export function useOpenKeys(
|
||||
);
|
||||
}
|
||||
|
||||
return { setOpenKeys };
|
||||
const getOpenKeys = computed(() => {
|
||||
return unref(collapse) ? [] : menuState.openNames;
|
||||
});
|
||||
|
||||
return { setOpenKeys, getOpenKeys };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user