From 75f7cacc178870fcf80d47e7f8a05ff2599c9e35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cls=5F=E5=AE=81=E6=B3=A2=E6=9C=AC=E6=9C=BA?= <908705107@qq.com> Date: Tue, 9 Jun 2026 18:01:50 +0800 Subject: [PATCH] Trim layout widgets runtime --- web/apps/web-ele/src/layouts/basic.vue | 8 +-- web/apps/web-ele/src/preferences.ts | 21 +++++++ .../@core/preferences/src/preferences.ts | 17 +++++ .../layouts/src/authentication/toolbar.vue | 10 ++- .../layouts/src/basic/header/header.vue | 63 ++++++------------- .../effects/layouts/src/basic/layout.vue | 31 +-------- web/packages/effects/layouts/src/index.ts | 1 - .../widgets/user-dropdown/user-dropdown.vue | 50 +-------------- 8 files changed, 68 insertions(+), 133 deletions(-) diff --git a/web/apps/web-ele/src/layouts/basic.vue b/web/apps/web-ele/src/layouts/basic.vue index cf0dfdf..43d6007 100644 --- a/web/apps/web-ele/src/layouts/basic.vue +++ b/web/apps/web-ele/src/layouts/basic.vue @@ -33,9 +33,6 @@ const AuthenticationLoginExpiredModal = defineAsyncComponent(() => const UserDropdown = defineAsyncComponent(() => import('@vben/layouts/es/user-dropdown').then((module) => module.UserDropdown), ); -const LockScreen = defineAsyncComponent(() => - import('@vben/layouts/es/lock-screen').then((module) => module.LockScreen), -); const NotificationPopup = defineAsyncComponent( () => import('#/components/notification/NotificationPopup.vue'), ); @@ -275,7 +272,7 @@ watch( diff --git a/web/apps/web-ele/src/preferences.ts b/web/apps/web-ele/src/preferences.ts index c152d94..a8854d6 100644 --- a/web/apps/web-ele/src/preferences.ts +++ b/web/apps/web-ele/src/preferences.ts @@ -12,11 +12,20 @@ export const overridesPreferences = defineOverridesPreferences({ app: { name: import.meta.env.VITE_APP_TITLE, enableRefreshToken: true, + enableCheckUpdates: false, + enablePreferences: false, accessMode: 'mixed', authPageLayout: 'panel-center', defaultHomePath: '/control-center', layout: 'header-sidebar-nav', }, + shortcutKeys: { + enable: false, + globalLockScreen: false, + globalLogout: true, + globalPreferences: false, + globalSearch: false, + }, theme: { mode: 'light', }, @@ -37,4 +46,16 @@ export const overridesPreferences = defineOverridesPreferences({ fit: 'contain', source: Logo, }, + widget: { + fullscreen: false, + globalSearch: false, + languageToggle: false, + lockScreen: false, + notification: true, + refresh: false, + sidebarBranding: true, + sidebarToggle: true, + themeToggle: true, + timezone: false, + }, }); diff --git a/web/packages/@core/preferences/src/preferences.ts b/web/packages/@core/preferences/src/preferences.ts index c2c2225..6db9e2f 100644 --- a/web/packages/@core/preferences/src/preferences.ts +++ b/web/packages/@core/preferences/src/preferences.ts @@ -94,6 +94,23 @@ class PreferenceManager { if (overrides?.app?.enablePreferences !== undefined) { mergedPreference.app.enablePreferences = overrides.app.enablePreferences; } + if (overrides?.app?.enableCheckUpdates !== undefined) { + mergedPreference.app.enableCheckUpdates = overrides.app.enableCheckUpdates; + } + if (overrides?.shortcutKeys) { + mergedPreference.shortcutKeys = merge( + {}, + overrides.shortcutKeys, + mergedPreference.shortcutKeys, + ); + } + if (overrides?.widget) { + mergedPreference.widget = merge( + {}, + overrides.widget, + mergedPreference.widget, + ); + } if (overrides?.logo?.source) { mergedPreference.logo.source = overrides.logo.source; } diff --git a/web/packages/effects/layouts/src/authentication/toolbar.vue b/web/packages/effects/layouts/src/authentication/toolbar.vue index 94d321a..3b8d8ec 100644 --- a/web/packages/effects/layouts/src/authentication/toolbar.vue +++ b/web/packages/effects/layouts/src/authentication/toolbar.vue @@ -5,12 +5,10 @@ import { computed } from 'vue'; import { preferences } from '@vben/preferences'; -import { - AuthenticationColorToggle, - AuthenticationLayoutToggle, - LanguageToggle, - ThemeToggle, -} from '../widgets'; +import AuthenticationColorToggle from '../widgets/color-toggle.vue'; +import LanguageToggle from '../widgets/language-toggle.vue'; +import AuthenticationLayoutToggle from '../widgets/layout-toggle.vue'; +import ThemeToggle from '../widgets/theme-toggle/theme-toggle.vue'; interface Props { toolbarList?: ToolbarType[]; diff --git a/web/packages/effects/layouts/src/basic/header/header.vue b/web/packages/effects/layouts/src/basic/header/header.vue index 26c92a6..e864903 100644 --- a/web/packages/effects/layouts/src/basic/header/header.vue +++ b/web/packages/effects/layouts/src/basic/header/header.vue @@ -1,20 +1,27 @@