fix(dashboard): correct overview data and states
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<script lang="tsx">
|
||||
import { compile, computed, defineComponent, h, ref } from 'vue';
|
||||
import { compile, computed, defineComponent, h, ref, watch } from 'vue';
|
||||
import type { RouteMeta } from 'vue-router';
|
||||
import { type RouteRecordRaw, useRoute, useRouter } from 'vue-router';
|
||||
import { useAppStore } from '@/store';
|
||||
@@ -67,21 +67,24 @@ export default defineComponent({
|
||||
});
|
||||
return result;
|
||||
};
|
||||
listenerRouteChange((newRoute) => {
|
||||
const syncMenuSelection = (newRoute: typeof route) => {
|
||||
const { requiresAuth, activeMenu, hideInMenu } = newRoute.meta;
|
||||
if (requiresAuth && (!hideInMenu || activeMenu)) {
|
||||
const target = (activeMenu || newRoute.name) as string;
|
||||
const menuOpenKeys = findMenuOpenKeys(
|
||||
(activeMenu || newRoute.name) as string,
|
||||
target,
|
||||
);
|
||||
|
||||
if (!menuOpenKeys.length) return;
|
||||
|
||||
const keySet = new Set([...menuOpenKeys, ...openKeys.value]);
|
||||
openKeys.value = [...keySet];
|
||||
|
||||
selectedKey.value = [
|
||||
activeMenu || menuOpenKeys[menuOpenKeys.length - 1],
|
||||
];
|
||||
selectedKey.value = [target];
|
||||
}
|
||||
}, true);
|
||||
};
|
||||
listenerRouteChange(syncMenuSelection, true);
|
||||
watch(menuTree, () => syncMenuSelection(route), { deep: true, flush: 'post' });
|
||||
const setCollapse = (val: boolean) => {
|
||||
if (appStore.device === 'desktop')
|
||||
appStore.updateSettings({ menuCollapse: val });
|
||||
|
||||
Reference in New Issue
Block a user