Files
hjc-web/app/templates/template-09/components/Footer.vue
T
weicw-dshsa 13c522ab32 fix: 移除页脚平台外链,分支机构页补充办公场地图
汇吉采已独立,官网页脚不应再出现指向 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 行删除)
2026-09-29 02:28:43 +08:00

95 lines
3.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>