云
13 小时以前 91bfcf61f44f353dfebc54a57b5b774721de3e9a
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
33
34
35
36
37
38
39
40
41
42
import { preferencesManager } from '@vben/preferences';
 
/** 公司品牌信息(与后端 system_company_config 表字段对应) */
export interface CompanyConfigData {
  companyName?: string;
  logoUrl?: string;
  loginTitle?: string;
  loginDescription?: string;
}
 
export const societyPortalName = '江苏省供销合作经济学会融合门户';
 
export function displayCompanyName(name?: string) {
  return import.meta.env.VITE_COMPANY === 'JSSM' ? societyPortalName : name;
}
 
/**
 * 将公司品牌信息应用到全局:
 * - 公司名 → preferences.app.name / copyright.companyName(联动菜单栏、登录页、网页标题、版权)
 * - logo → preferences.logo.source(联动登录页、侧边栏 logo)
 * - 有公司名时,设置 document.title(基础标题,dynamicTitle 开启时路由标题在此基础上拼接)
 */
export function applyCompanyConfig(config: CompanyConfigData) {
  const updates: Record<string, any> = {};
  const companyName = displayCompanyName(config.companyName);
  if (config.logoUrl) {
    updates.logo = { source: config.logoUrl };
    // 同步网页标题图标(favicon)为上传的 logo
    const faviconLink = document.querySelector('link[rel="icon"]');
    faviconLink?.setAttribute('href', config.logoUrl);
  }
  if (companyName) {
    updates.app = { name: companyName };
    updates.copyright = { companyName };
  }
  if (Object.keys(updates).length > 0) {
    preferencesManager.updatePreferences(updates);
  }
  if (companyName) {
    document.title = companyName;
  }
}