From dab1e0a3e0b1279ee7be77d359ffc93a831455d4 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 24 八月 2026 17:57:27 +0800
Subject: [PATCH] feat(preferences): 公司品牌信息化编辑与全局联动(登录页/菜单栏/网页标题),偏好设置 tab

---
 src/utils/company-config.ts |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/utils/company-config.ts b/src/utils/company-config.ts
new file mode 100644
index 0000000..4f57dcc
--- /dev/null
+++ b/src/utils/company-config.ts
@@ -0,0 +1,32 @@
+import { preferencesManager } from '@vben/preferences';
+
+/** 鍏徃鍝佺墝淇℃伅锛堜笌鍚庣 system_company_config 琛ㄥ瓧娈靛搴旓級 */
+export interface CompanyConfigData {
+  companyName?: string;
+  logoUrl?: string;
+  loginTitle?: string;
+  loginDescription?: string;
+}
+
+/**
+ * 灏嗗叕鍙稿搧鐗屼俊鎭簲鐢ㄥ埌鍏ㄥ眬锛�
+ * - 鍏徃鍚� 鈫� preferences.app.name / copyright.companyName锛堣仈鍔ㄨ彍鍗曟爮銆佺櫥褰曢〉銆佺綉椤垫爣棰樸�佺増鏉冿級
+ * - logo 鈫� preferences.logo.source锛堣仈鍔ㄧ櫥褰曢〉銆佷晶杈规爮 logo锛�
+ * - 鏈夊叕鍙稿悕鏃讹紝璁剧疆 document.title锛堝熀纭�鏍囬锛宒ynamicTitle 寮�鍚椂璺敱鏍囬鍦ㄦ鍩虹涓婃嫾鎺ワ級
+ */
+export function applyCompanyConfig(config: CompanyConfigData) {
+  const updates: Record<string, any> = {};
+  if (config.logoUrl) {
+    updates.logo = { source: config.logoUrl };
+  }
+  if (config.companyName) {
+    updates.app = { name: config.companyName };
+    updates.copyright = { companyName: config.companyName };
+  }
+  if (Object.keys(updates).length > 0) {
+    preferencesManager.updatePreferences(updates);
+  }
+  if (config.companyName) {
+    document.title = config.companyName;
+  }
+}

--
Gitblit v1.9.3