88 lines
2.3 KiB
TypeScript
88 lines
2.3 KiB
TypeScript
import { defineOverridesPreferences } from '@easyflow/preferences';
|
|
|
|
const assetBase = import.meta.env.BASE_URL || '/';
|
|
|
|
/**
|
|
* @description 项目配置文件
|
|
* 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
|
|
* !!! 更改配置后请清空缓存,否则可能不生效
|
|
*/
|
|
export const overridesPreferences = defineOverridesPreferences({
|
|
// overrides
|
|
app: {
|
|
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: true,
|
|
},
|
|
});
|
|
|
|
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,
|
|
};
|
|
}
|