2024-12-19 18:07:20 +08:00
|
|
|
import { Local } from '/@/utils/storage';
|
|
|
|
|
import { storeToRefs } from 'pinia';
|
|
|
|
|
import { useThemeConfig } from '/@/stores/themeConfig';
|
2025-01-10 16:26:40 +08:00
|
|
|
import logoImg from '/@/assets/logo.png';
|
2024-12-20 02:41:09 +08:00
|
|
|
|
2024-12-19 18:07:20 +08:00
|
|
|
import { SysConfigApi } from '/@/api-services';
|
|
|
|
|
import { feature, getAPI } from '/@/utils/axios-utils';
|
2024-12-20 02:41:09 +08:00
|
|
|
|
|
|
|
|
const storesThemeConfig = useThemeConfig();
|
|
|
|
|
const { themeConfig } = storeToRefs(storesThemeConfig);
|
|
|
|
|
|
2024-12-19 18:07:20 +08:00
|
|
|
// 加载系统信息
|
2024-12-20 02:41:09 +08:00
|
|
|
export async function loadSysInfo() {
|
2024-12-19 18:07:20 +08:00
|
|
|
const [err, res] = await feature(getAPI(SysConfigApi).apiSysConfigSysInfoGet());
|
|
|
|
|
if (err) {
|
2025-01-10 16:26:40 +08:00
|
|
|
// 默认 logo 地址
|
|
|
|
|
themeConfig.value.logoUrl = logoImg;
|
2024-12-19 18:07:20 +08:00
|
|
|
// 保存配置
|
|
|
|
|
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;
|
|
|
|
|
// 开启强制修改密码
|
2024-12-20 02:41:09 +08:00
|
|
|
themeConfig.value.forceChangePassword = data.sysForceChangePassword;
|
|
|
|
|
// 是否验证密码有效期
|
|
|
|
|
themeConfig.value.passwordExpirationTime = data.sysPasswordExpirationTime;
|
2024-12-19 18:07:20 +08:00
|
|
|
// 密码加解密公匙
|
|
|
|
|
window.__env__.VITE_SM_PUBLIC_KEY = data.publicKey;
|
2024-12-20 02:41:09 +08:00
|
|
|
|
2024-12-19 18:07:20 +08:00
|
|
|
// 更新 favicon
|
|
|
|
|
updateFavicon(data.sysLogo);
|
|
|
|
|
|
|
|
|
|
// 保存配置
|
|
|
|
|
Local.remove('themeConfig');
|
|
|
|
|
Local.set('themeConfig', storesThemeConfig.themeConfig);
|
|
|
|
|
}
|
2024-12-20 02:41:09 +08:00
|
|
|
}
|
2024-12-19 18:07:20 +08:00
|
|
|
|
|
|
|
|
// 更新 favicon
|
|
|
|
|
const updateFavicon = (url: string): void => {
|
|
|
|
|
const favicon = document.getElementById('favicon') as HTMLAnchorElement;
|
|
|
|
|
favicon!.href = url ? url : 'data:;base64,=';
|
2024-12-20 02:41:09 +08:00
|
|
|
};
|