Skip to content

Commit

Permalink
Merge branch 'main' into example
Browse files Browse the repository at this point in the history
  • Loading branch information
honghuangdc committed Mar 10, 2024
2 parents cb35a94 + 2b7e3c2 commit c05e7ff
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 3 deletions.
7 changes: 7 additions & 0 deletions src/layouts/modules/global-menu/base-menu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ function updateExpandedKeys() {
}
function handleClickMenu(key: RouteKey) {
const meta = routeStore.getSelectedMenuMetaByKey(key);
if (meta?.fixedQuery) {
routerPushByKey(key, {
query: meta.fixedQuery
});
return;
}
routerPushByKey(key);
}
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/modules/global-search/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function handleSearch() {

<template>
<ButtonIcon :tooltip-content="$t('common.search')" @click="handleSearch">
<icon-uil-search class="text-20px" />
<icon-uil-search />
</ButtonIcon>
<SearchModal v-model:show="show" />
</template>
Expand Down
15 changes: 13 additions & 2 deletions src/store/modules/route/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { computed, ref } from 'vue';
import type { RouteRecordRaw } from 'vue-router';
import type { RouteMeta, RouteRecordRaw } from 'vue-router';
import { defineStore } from 'pinia';
import { useBoolean } from '@sa/hooks';
import type { CustomRoute, ElegantConstRoute, LastLevelRouteKey, RouteKey, RouteMap } from '@elegant-router/types';
Expand Down Expand Up @@ -273,6 +273,16 @@ export const useRouteStore = defineStore(SetupStoreId.Route, () => {
return getSelectedMenuKeyPathByKey(selectedKey, menus.value);
}

/**
* Get selected menu meta by key
*
* @param selectedKey Selected menu key
*/
function getSelectedMenuMetaByKey(selectedKey: string): RouteMeta | null {
// The routes in router.options.routes are static, you need to use router.getRoutes() to get all the routes.
return router.getRoutes().find(route => route.name === selectedKey)?.meta || null;
}

return {
resetStore,
routeHome,
Expand All @@ -287,6 +297,7 @@ export const useRouteStore = defineStore(SetupStoreId.Route, () => {
isInitAuthRoute,
setIsInitAuthRoute,
getIsAuthRouteExist,
getSelectedMenuKeyPath
getSelectedMenuKeyPath,
getSelectedMenuMetaByKey
};
});
2 changes: 2 additions & 0 deletions src/typings/router.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,7 @@ declare module 'vue-router' {
multiTab?: boolean;
/** If set, the route will be fixed in tabs, and the value is the order of fixed tabs */
fixedIndexInTab?: number;
/** Fixed query parameters that are automatically carried when entering the route */
fixedQuery?: Record<string, string>;
}
}

0 comments on commit c05e7ff

Please sign in to comment.