13c522ab32
汇吉采已独立,官网页脚不应再出现指向 SaaS 平台的「Powered by 云·企业官网」 外链(site.websoft.top)——这是全站唯一会请求外部的地方。 - 10 个模板的 Footer.vue 移除该外链(三种结构变体:带 Powered by 包裹 div 的 01/02/05/07、单行 <a> 的 06、icp/police 行内的 03/04/08/09/10) - template-07 分支机构页补充办公场地图片 - BranchOffice.vue 与 template-09/Footer.vue 换行符归一为 LF, 消除整文件级的 CRLF 噪声(真实改动分别是 1 行新增、6 行删除)
95 lines
3.5 KiB
Vue
95 lines
3.5 KiB
Vue
<template>
|
||
<footer class="bg-[var(--t9-footer-bg)] text-[var(--t9-footer-text)]">
|
||
<div class="t9-container py-10">
|
||
<!-- 上排:四列信息 -->
|
||
<div class="grid grid-cols-2 md:grid-cols-4 gap-6 md:gap-8">
|
||
<div>
|
||
<div class="text-sm text-white/85 mb-2">版权合作</div>
|
||
<p class="text-sm leading-relaxed break-all">{{ copyrightContact }}</p>
|
||
</div>
|
||
<div>
|
||
<div class="text-sm text-white/85 mb-2">联系电话</div>
|
||
<p class="text-sm leading-relaxed">{{ phone || '—' }}</p>
|
||
</div>
|
||
<div>
|
||
<div class="text-sm text-white/85 mb-2">电子邮箱</div>
|
||
<p class="text-sm leading-relaxed break-all">{{ email || '—' }}</p>
|
||
</div>
|
||
<div>
|
||
<div class="text-sm text-white/85 mb-2">客服微信</div>
|
||
<div v-if="wxQrcode" class="mt-1">
|
||
<img :src="wxQrcode" alt="微信二维码" class="w-24 h-24 object-contain bg-white p-1">
|
||
<p class="text-xs mt-1">{{ siteConfig?.wxQrcodeText || '扫码关注' }}</p>
|
||
</div>
|
||
<p v-else class="text-sm leading-relaxed">{{ address || '—' }}</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 页脚导航链接(后台 top!==1 的底部菜单) -->
|
||
<nav v-if="quickLinks.length" class="mt-8 pt-6 border-t border-white/10 flex flex-wrap gap-x-6 gap-y-2">
|
||
<NuxtLink
|
||
v-for="link in quickLinks"
|
||
:key="link.navigationId || link.path"
|
||
:to="getNavLink(link)"
|
||
:target="link.target === '_blank' ? '_blank' : undefined"
|
||
class="text-sm hover:text-white transition-colors"
|
||
>
|
||
{{ link.title }}
|
||
</NuxtLink>
|
||
</nav>
|
||
|
||
<!-- 下排:版权 + 备案 -->
|
||
<div
|
||
class="mt-8 pt-6 border-t border-white/10 flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-xs text-center"
|
||
>
|
||
<span>{{ copyright || `Copyright © ${new Date().getFullYear()} ${siteName || ''} 版权所有` }}</span>
|
||
<a
|
||
v-if="icpNo"
|
||
href="https://beian.miit.gov.cn"
|
||
target="_blank"
|
||
rel="nofollow"
|
||
class="hover:text-white transition-colors"
|
||
>{{ icpNo }}</a>
|
||
<a
|
||
v-if="siteInfo?.policeNo"
|
||
:href="policeUrl"
|
||
target="_blank"
|
||
rel="nofollow"
|
||
class="hover:text-white transition-colors"
|
||
>{{ siteInfo.policeNo }}</a>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</template>
|
||
|
||
<script setup lang="ts">
|
||
/**
|
||
* 模板 9 - Footer 组件(墨绿文化出版风,对齐漓江出版社官网)
|
||
* 深色底 + 四列信息(版权合作 / 联系电话 / 电子邮箱 / 客服微信)+ 备案信息居中
|
||
*/
|
||
import type { CmsNavigation } from '~/types'
|
||
|
||
const {
|
||
siteInfo, siteName, siteConfig, bottomNavigations,
|
||
phone, email, address, copyright, wxQrcode, icpNo
|
||
} = useSite()
|
||
|
||
/** 版权合作联系方式:优先邮箱,其次电话 */
|
||
const copyrightContact = computed(() => email.value || phone.value || '—')
|
||
|
||
/** 公安备案查询地址(从备案号中提取数字部分) */
|
||
const policeUrl = computed(() => {
|
||
const no = String(siteInfo.value?.policeNo || '')
|
||
const code = no.replace(/\D/g, '')
|
||
return code
|
||
? `https://beian.mps.gov.cn/#/query/webSearch?code=${code}`
|
||
: 'https://beian.mps.gov.cn/'
|
||
})
|
||
|
||
/** 页脚链接:取底部导航(top!==1) */
|
||
const quickLinks = computed<CmsNavigation[]>(() => {
|
||
const navs = bottomNavigations.value || []
|
||
return navs.filter((nav) => nav.model !== 'index').slice(0, 8)
|
||
})
|
||
</script>
|