diff --git a/packages/@core/preferences/src/types.ts b/packages/@core/preferences/src/types.ts index e640edb5..f2094073 100644 --- a/packages/@core/preferences/src/types.ts +++ b/packages/@core/preferences/src/types.ts @@ -267,6 +267,8 @@ interface WidgetPreferences { sidebarToggle: boolean; /** 是否显示主题切换部件 */ themeToggle: boolean; + /** 是否显示返回导航部件 */ + backNavigation: boolean; } interface Preferences { diff --git a/packages/effects/layouts/src/basic/header/header.vue b/packages/effects/layouts/src/basic/header/header.vue index 97387460..59276af9 100644 --- a/packages/effects/layouts/src/basic/header/header.vue +++ b/packages/effects/layouts/src/basic/header/header.vue @@ -11,6 +11,7 @@ import { LanguageToggle, PreferencesButton, ThemeToggle, + BackNavigation, } from '../../widgets'; interface Props { @@ -43,7 +44,8 @@ const rightSlots = computed(() => { list.push({ index: REFERENCE_VALUE, name: 'global-search', - }); + } + ); } if (preferencesButtonPosition.value.header) { @@ -76,6 +78,12 @@ const rightSlots = computed(() => { name: 'notification', }); } + if (preferences.widget.backNavigation) { + list.push({ + index: REFERENCE_VALUE + 60, + name: 'back-navigation', + }); + } Object.keys(slots).forEach((key) => { const name = key.split('-'); @@ -164,6 +172,9 @@ function clearPreferencesAndLogout() { + diff --git a/packages/effects/layouts/src/widgets/back-navigation.vue b/packages/effects/layouts/src/widgets/back-navigation.vue new file mode 100644 index 00000000..d2b51266 --- /dev/null +++ b/packages/effects/layouts/src/widgets/back-navigation.vue @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/packages/effects/layouts/src/widgets/index.ts b/packages/effects/layouts/src/widgets/index.ts index f6a4a7ba..9b0b9be7 100644 --- a/packages/effects/layouts/src/widgets/index.ts +++ b/packages/effects/layouts/src/widgets/index.ts @@ -9,3 +9,4 @@ export * from './notification'; export * from './preferences'; export * from './theme-toggle'; export * from './user-dropdown'; +export { default as BackNavigation } from './back-navigation.vue';