feat: preference button supports automatic positioning (#4243)
This commit is contained in:
@@ -20,7 +20,7 @@ const defaultPreferences: Preferences = {
|
||||
locale: 'zh-CN',
|
||||
loginExpiredMode: 'page',
|
||||
name: 'Vben Admin',
|
||||
preferencesButtonPosition: 'fixed',
|
||||
preferencesButtonPosition: 'auto',
|
||||
watermark: false,
|
||||
},
|
||||
breadcrumb: {
|
||||
|
@@ -149,6 +149,45 @@ function usePreferences() {
|
||||
return enable && globalLockScreen;
|
||||
});
|
||||
|
||||
/**
|
||||
* @zh_CN 偏好设置按钮位置
|
||||
*/
|
||||
const preferencesButtonPosition = computed(() => {
|
||||
const { enablePreferences, preferencesButtonPosition } = preferences.app;
|
||||
|
||||
// 如果没有启用偏好设置按钮
|
||||
if (!enablePreferences) {
|
||||
return {
|
||||
fixed: false,
|
||||
header: false,
|
||||
};
|
||||
}
|
||||
|
||||
const { header, sidebar } = preferences;
|
||||
const headerHidden = header.hidden;
|
||||
const sidebarHidden = sidebar.hidden;
|
||||
|
||||
const contentIsMaximize = headerHidden && sidebarHidden;
|
||||
|
||||
const isHeaderPosition = preferencesButtonPosition === 'header';
|
||||
|
||||
// 如果设置了固定位置
|
||||
if (preferencesButtonPosition !== 'auto') {
|
||||
return {
|
||||
fixed: preferencesButtonPosition === 'fixed',
|
||||
header: isHeaderPosition,
|
||||
};
|
||||
}
|
||||
|
||||
// 如果是全屏模式或者没有固定在顶部,
|
||||
const fixed = contentIsMaximize || isFullContent.value || isMobile.value;
|
||||
|
||||
return {
|
||||
fixed,
|
||||
header: !fixed,
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
authPanelCenter,
|
||||
authPanelLeft,
|
||||
@@ -168,6 +207,7 @@ function usePreferences() {
|
||||
isSideNav,
|
||||
keepAlive,
|
||||
layout,
|
||||
preferencesButtonPosition,
|
||||
sidebarCollapsed,
|
||||
theme,
|
||||
};
|
||||
|
Reference in New Issue
Block a user