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:
@@ -6,7 +6,7 @@
|
||||
<div class="sm:col-span-2 lg:col-span-1">
|
||||
<SiteBrand
|
||||
link-class="mb-4"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[200px] object-contain"
|
||||
@@ -118,7 +118,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="sm:col-span-2 lg:col-span-1">
|
||||
<SiteBrand
|
||||
link-class="mb-4"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[200px] object-contain"
|
||||
@@ -118,7 +118,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="max-w-xs">
|
||||
<SiteBrand
|
||||
link-class="mb-2"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[180px] object-contain"
|
||||
@@ -80,7 +80,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="max-w-xs">
|
||||
<SiteBrand
|
||||
link-class="mb-2"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[180px] object-contain"
|
||||
@@ -80,7 +80,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="sm:col-span-2 lg:col-span-1">
|
||||
<SiteBrand
|
||||
link-class="mb-4"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
default-name="品牌官网"
|
||||
@@ -119,7 +119,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="sm:col-span-2 lg:col-span-1">
|
||||
<SiteBrand
|
||||
link-class="mb-4"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-9 w-auto max-w-[200px] object-contain"
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import type { CmsNavigation } from '~/types'
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, icpNo, copyright, wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
const navs = bottomNavigations.value || []
|
||||
return navs.filter((nav) => nav.model !== 'index').slice(0, 6)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="lg:col-span-3">
|
||||
<SiteBrand
|
||||
link-class="mb-4"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[200px] object-contain"
|
||||
@@ -135,7 +135,7 @@
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const {
|
||||
siteInfo, siteName, siteLogo, siteIcon, siteConfig,
|
||||
siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig,
|
||||
bottomNavigations, phone, email, address, icpNo, copyright,
|
||||
wxQrcode, slogan, officialWebsite, officialWebsiteUrl, socialLinks
|
||||
} = useSite()
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="max-w-xs">
|
||||
<SiteBrand
|
||||
link-class="mb-2"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-8 w-auto max-w-[180px] object-contain"
|
||||
@@ -80,7 +80,7 @@
|
||||
*/
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const { siteInfo, siteName, siteLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
const { siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon, siteConfig, bottomNavigations, phone, email, address, copyright, wxQrcode, icpNo, slogan, officialWebsite, officialWebsiteUrl, socialLinks } = useSite()
|
||||
|
||||
/** 快速链接:取顶级导航中非首页且无子菜单的项 */
|
||||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="lg:col-span-2">
|
||||
<SiteBrand
|
||||
link-class="inline-flex items-center gap-2 mb-5"
|
||||
:logo="siteLogo"
|
||||
:logo="siteFooterLogo"
|
||||
:icon="siteIcon"
|
||||
:name="siteName"
|
||||
logo-class="h-[44px] w-auto max-w-[220px] object-contain brightness-0 invert"
|
||||
@@ -104,7 +104,7 @@
|
||||
import type { CmsNavigation } from '~/types'
|
||||
|
||||
const {
|
||||
siteInfo, siteName, siteLogo, siteIcon,
|
||||
siteInfo, siteName, siteLogo, siteFooterLogo, siteIcon,
|
||||
phone, email, address, copyright, icpNo,
|
||||
navigations, allNavigations, fetchSiteInfo
|
||||
} = useSite()
|
||||
|
||||
Reference in New Issue
Block a user