fix: 修复管理端静态资源基础路径

- 统一内置品牌资源与空状态图片的 BASE_URL 解析

- 应用启动时自动归一化历史偏好里的内置资源路径

- 多个空状态组件改为复用公共资源地址工具
This commit is contained in:
2026-03-24 18:39:16 +08:00
parent da536ea742
commit c78db961c5
10 changed files with 107 additions and 16 deletions

View File

@@ -1,5 +1,7 @@
import { defineOverridesPreferences } from '@easyflow/preferences';
const assetBase = import.meta.env.BASE_URL || '/';
/**
* @description 项目配置文件
* 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
@@ -11,9 +13,75 @@ export const overridesPreferences = defineOverridesPreferences({
name: import.meta.env.VITE_APP_TITLE,
accessMode: 'mixed',
},
auth: {
sloganImage: `${assetBase}slogan.svg`,
},
logo: {
source: `${assetBase}logo.svg`,
sourceDark: `${assetBase}logoDark.svg`,
sourceMini: `${assetBase}logoMini.svg`,
sourceMiniDark: `${assetBase}logoMiniDark.svg`,
},
transition: {
enable: false,
loading: false,
progress: false,
},
});
const BUILTIN_BRAND_ASSETS = new Map([
['/logo.svg', 'logo.svg'],
['/logoDark.svg', 'logoDark.svg'],
['/logoMini.svg', 'logoMini.svg'],
['/logoMiniDark.svg', 'logoMiniDark.svg'],
['/slogan.svg', 'slogan.svg'],
]);
function normalizeBuiltinBrandAsset(path?: string) {
if (!path) {
return path;
}
const fileName = BUILTIN_BRAND_ASSETS.get(path);
if (!fileName) {
return path;
}
return `${assetBase}${fileName}`;
}
export function normalizeBrandAssetPreferences(preferences: {
auth?: { sloganImage?: string };
logo?: {
source?: string;
sourceDark?: string;
sourceMini?: string;
sourceMiniDark?: string;
};
}) {
const normalized = {
auth: {
sloganImage: normalizeBuiltinBrandAsset(preferences.auth?.sloganImage),
},
logo: {
source: normalizeBuiltinBrandAsset(preferences.logo?.source),
sourceDark: normalizeBuiltinBrandAsset(preferences.logo?.sourceDark),
sourceMini: normalizeBuiltinBrandAsset(preferences.logo?.sourceMini),
sourceMiniDark: normalizeBuiltinBrandAsset(
preferences.logo?.sourceMiniDark,
),
},
};
const changed =
normalized.auth.sloganImage !== preferences.auth?.sloganImage ||
normalized.logo.source !== preferences.logo?.source ||
normalized.logo.sourceDark !== preferences.logo?.sourceDark ||
normalized.logo.sourceMini !== preferences.logo?.sourceMini ||
normalized.logo.sourceMiniDark !== preferences.logo?.sourceMiniDark;
return {
changed,
normalized,
};
}