From 4a45d6c79b2157a149afcb3b49ba504ff7c5075f Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 28 十月 2026 11:51:55 +0800
Subject: [PATCH] feat(portal): 门户字号改为保存到数据库全局生效

---
 src/layouts/basic.vue |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/src/layouts/basic.vue b/src/layouts/basic.vue
index ff20779..4b7667b 100644
--- a/src/layouts/basic.vue
+++ b/src/layouts/basic.vue
@@ -4,6 +4,9 @@
 
 import { computed, onMounted, ref, watch } from 'vue';
 
+import { useDebounceFn } from '@vueuse/core';
+import { message } from 'ant-design-vue';
+
 import { AuthenticationLoginExpiredModal, useVbenModal } from '@vben/common-ui';
 import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants';
 import { useWatermark } from '@vben/hooks';
@@ -35,6 +38,10 @@
 import { $t } from '#/locales';
 import { router } from '#/router';
 import { useAuthStore } from '#/store';
+import {
+  loadPortalUiConfig,
+  savePortalUiConfigToServer,
+} from '#/utils/portal-ui-config';
 import LoginForm from '#/views/_core/authentication/login.vue';
 import PortalBrandText from '#/components/portal/portal-brand-text.vue';
 
@@ -156,8 +163,43 @@
   handleNotificationGetUnreadCount();
 }
 
+// ========== 闂ㄦ埛瀛楀彿鍏ㄥ眬閰嶇疆锛堝瓨鏁版嵁搴擄紝鎵�鏈夌敤鎴峰叡鐢級 ==========
+/** 宸插悓姝ュ埌鏁版嵁搴撶殑瀛楀彿锛岀敤浜庨伩鍏嶈鍙栧悗鍥炲啓 */
+let portalFontBaseline: null | { home: number; menu: number } = null;
+/** 淇濆瓨澶辫触鍙彁绀轰竴娆★紝閬垮厤杩炵画璋冭妭鏃跺弽澶嶅脊绐� */
+let portalFontSaveWarned = false;
+
+const persistPortalFontConfig = useDebounceFn(async () => {
+  const home = preferences.app.homeFontSize;
+  const menu = preferences.navigation.fontSize;
+  if (portalFontBaseline && portalFontBaseline.home === home && portalFontBaseline.menu === menu) {
+    return;
+  }
+  try {
+    await savePortalUiConfigToServer({ homeFontSize: home, menuFontSize: menu });
+    portalFontBaseline = { home, menu };
+    portalFontSaveWarned = false;
+  } catch {
+    if (!portalFontSaveWarned) {
+      portalFontSaveWarned = true;
+      message.warning('瀛楀彿宸插湪鏈満鐢熸晥锛屼絾淇濆瓨鍒板叏灞�澶辫触锛岃纭鏄惁鏈夊弬鏁伴厤缃慨鏀规潈闄�');
+    }
+  }
+}, 800);
+
+watch(
+  () => [preferences.app.homeFontSize, preferences.navigation.fontSize],
+  () => persistPortalFontConfig(),
+);
+
 // ========== 鍒濆鍖� ==========
-onMounted(() => {
+onMounted(async () => {
+  // 璇诲彇鏁版嵁搴撲腑鐨勫叏灞�瀛楀彿閰嶇疆骞跺簲鐢�
+  await loadPortalUiConfig();
+  portalFontBaseline = {
+    home: preferences.app.homeFontSize,
+    menu: preferences.navigation.fontSize,
+  };
   // 棣栨鍔犺浇鏈鏁伴噺
   handleNotificationGetUnreadCount();
   // 杞鍒锋柊鏈鏁伴噺

--
Gitblit v1.9.3