hsy
4 天以前 b3abd460d8f68b9f501b48aeecaa344ff18c033a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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(基础标题,dynamicTitle 开启时路由标题在此基础上拼接)
 */
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;
  }
}