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