feat: 页脚优先展示后台配置的页脚 Logo

- CmsSiteInfo 加 websiteFooterLogo 类型
- useSite 新增 siteFooterLogo(websiteFooterLogo 优先,回退
  siteLogo);siteLogo/siteFooterLogo 统一过 ensureFullUrl,
  兼容本地存储相对路径(/api/file 代理)与完整 OSS URL
- template-01~08/10 共 9 个模板 Footer 的 SiteBrand 改用
  siteFooterLogo;template-09 页脚无品牌区保持不变
- 未配置页脚 Logo 时行为与旧版完全一致(回退站点 Logo)
This commit is contained in:
2026-09-25 03:59:45 +08:00
parent 2514bd9ea0
commit 3d3a377221
11 changed files with 38 additions and 20 deletions
+18 -2
View File
@@ -121,9 +121,24 @@ export function useSite() {
return override || siteInfo.value?.websiteName || appName.value || ''
})
/** 站点 Logo(优先应用信息,回退 CMS 站点信息) */
/**
* 站点 Logo(优先应用信息,回退 CMS 站点信息)
* 统一 ensureFullUrl 补全:本地存储上传的相对路径(如 /20260925/xxx.png)
* 转为 /api/file/ 代理地址;完整 http(s) URL 原样返回。
*/
const siteLogo = computed(() => {
return appLogo.value || siteInfo.value?.websiteLogo || ''
const raw = appLogo.value || siteInfo.value?.websiteLogo || ''
return raw ? ensureFullUrl(raw) : ''
})
/**
* 页脚 Logo(仅用于 Footer 品牌展示,与顶部导航 Logo 分离)
* 优先级:后台「网站设置 → 站点信息」上传的 websiteFooterLogo > 站点 Logo(siteLogo)。
* 后台未单独上传页脚 Logo 时回退站点 Logo,保持旧行为不变。
*/
const siteFooterLogo = computed(() => {
const raw = siteInfo.value?.websiteFooterLogo || ''
return raw ? ensureFullUrl(raw) : siteLogo.value
})
/**
@@ -255,6 +270,7 @@ export function useSite() {
showHeaderSearch,
siteName,
siteLogo,
siteFooterLogo,
siteIcon,
siteKeywords,
phone,