feat(app): 添加多模板关于我们页面及相关路由和404页面
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
<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>
|
||||
<a
|
||||
rel="nofollow"
|
||||
href="https://site.websoft.top"
|
||||
target="_blank"
|
||||
class="hover:text-white transition-colors"
|
||||
>Powered by 云·企业官网</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>
|
||||
Reference in New Issue
Block a user