|
@@ -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,
|
|
|
};
|