diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index dfd8e4f8..00a1c440 100755
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -41,12 +41,12 @@ function handlerMouserScroll(event: WheelEvent) {
diff --git a/src/layouts/components/MainSidebar/index.vue b/src/layouts/components/MainSidebar/index.vue
index cd98ec30..b07bd0b5 100755
--- a/src/layouts/components/MainSidebar/index.vue
+++ b/src/layouts/components/MainSidebar/index.vue
@@ -28,12 +28,12 @@ const { switchTo } = useMenu()
- {{ item.meta?.title }}
+ {{ typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title }}
diff --git a/src/layouts/components/Menu/item.vue b/src/layouts/components/Menu/item.vue
index ce158e21..a780a783 100644
--- a/src/layouts/components/Menu/item.vue
+++ b/src/layouts/components/Menu/item.vue
@@ -47,7 +47,7 @@ defineExpose({
class="menu-item-container w-full h-full flex justify-between items-center gap-1 px-5 py-4 transition-all cursor-pointer group text-[var(--g-sub-sidebar-menu-color)] hover:(text-[var(--g-sub-sidebar-menu-hover-color)] bg-[var(--g-sub-sidebar-menu-hover-bg)])" :class="{
'text-[var(--g-sub-sidebar-menu-active-color)]! bg-[var(--g-sub-sidebar-menu-active-bg)]!': isItemActive,
'px-3!': rootMenu.isMenuPopup && level === 0,
- }" :title="item.meta?.title"
+ }" :title="typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title"
>
- {{ item.meta?.title }}
+ {{ typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title }}
string)
link?: string
- breadcrumb: any[]
+ breadcrumb: {
+ title?: string | (() => string)
+ }[]
}
const isShow = ref(false)
@@ -82,7 +84,19 @@ const resultList = computed(() => {
if (item.path.includes(searchInput.value)) {
flag = true
}
- if (item.breadcrumb.some((b: { title: any }) => b.title.includes(searchInput.value))) {
+ if (item.breadcrumb.some((b) => {
+ if (typeof b.title === 'function') {
+ if (b.title().includes(searchInput.value)) {
+ return true
+ }
+ }
+ else {
+ if (b.title?.includes(searchInput.value)) {
+ return true
+ }
+ }
+ return false
+ })) {
flag = true
}
return flag
@@ -280,10 +294,10 @@ function pageJump(path: listTypes['path'], link: listTypes['link']) {
-
{{ item.title ?? '[ 无标题 ]' }}
+
{{ (typeof item.title === 'function' ? item.title() : item.title) ?? '[ 无标题 ]' }}
- {{ bc.title ?? '[ 无标题 ]' }}
+ {{ (typeof bc.title === 'function' ? bc.title() : bc.title) ?? '[ 无标题 ]' }}
diff --git a/src/types/global.d.ts b/src/types/global.d.ts
index bbba3dcd..4365f0f6 100755
--- a/src/types/global.d.ts
+++ b/src/types/global.d.ts
@@ -243,7 +243,7 @@ declare namespace Menu {
interface recordRaw {
path?: string
meta?: {
- title?: string
+ title?: string | (() => string)
icon?: string
defaultOpened?: boolean
auth?: string | string[]
@@ -255,7 +255,7 @@ declare namespace Menu {
/** 主导航 */
interface recordMainRaw {
meta?: {
- title?: string
+ title?: string | (() => string)
icon?: string
auth?: string | string[]
}