UNIVPLMDataIntegration/Web/src/utils/sysInfo.ts

66 lines
2.2 KiB
TypeScript
Raw Normal View History

import { Local } from '/@/utils/storage';
import { storeToRefs } from 'pinia';
import { useThemeConfig } from '/@/stores/themeConfig';
import logoImg from '/@/assets/logo.png';
import { SysConfigApi } from '/@/api-services';
import { feature, getAPI } from '/@/utils/axios-utils';
const storesThemeConfig = useThemeConfig();
const { themeConfig } = storeToRefs(storesThemeConfig);
// 加载系统信息
export async function loadSysInfo() {
const [err, res] = await feature(getAPI(SysConfigApi).apiSysConfigSysInfoGet());
if (err) {
// 默认 logo 地址
themeConfig.value.logoUrl = logoImg;
// 保存配置
Local.remove('themeConfig');
Local.set('themeConfig', storesThemeConfig.themeConfig);
return;
} else {
if (res.data.type != 'success') return;
const data = res.data.result;
// 系统logo
themeConfig.value.logoUrl = data.sysLogo;
// 主标题
themeConfig.value.globalTitle = data.sysTitle;
// 副标题
themeConfig.value.globalViceTitle = data.sysViceTitle;
// 系统说明
themeConfig.value.globalViceTitleMsg = data.sysViceDesc;
// Icp备案信息
themeConfig.value.icp = data.sysIcp;
themeConfig.value.icpUrl = data.sysIcpUrl;
// 水印
themeConfig.value.isWatermark = data.sysWatermark != null;
themeConfig.value.watermarkText = data.sysWatermark;
// 版权说明
themeConfig.value.copyright = data.sysCopyright;
// 登录验证
themeConfig.value.secondVer = data.sysSecondVer;
themeConfig.value.captcha = data.sysCaptcha;
// 开启强制修改密码
themeConfig.value.forceChangePassword = data.sysForceChangePassword;
// 是否验证密码有效期
themeConfig.value.passwordExpirationTime = data.sysPasswordExpirationTime;
// 密码加解密公匙
window.__env__.VITE_SM_PUBLIC_KEY = data.publicKey;
// 更新 favicon
updateFavicon(data.sysLogo);
// 保存配置
Local.remove('themeConfig');
Local.set('themeConfig', storesThemeConfig.themeConfig);
}
}
// 更新 favicon
const updateFavicon = (url: string): void => {
const favicon = document.getElementById('favicon') as HTMLAnchorElement;
favicon!.href = url ? url : 'data:;base64,=';
};