From f80abe659f1d345be86e6a5ae9c7523be85048b4 Mon Sep 17 00:00:00 2001 From: HenryDu8133 <813367384@qq.com> Date: Sun, 13 Sep 2026 18:43:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E5=AF=BC=E8=88=AA=E4=B8=8E=20Hero=20?= =?UTF-8?q?=E6=8F=92=E7=94=BB=E5=8F=8A=E9=A1=B5=E8=84=9A=E6=B5=85=E8=89=B2?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MobileBottomNav.vue(新增): 三 Tab 底部导航栏(点歌/排期/我的) lg 1024px 以上隐藏;iOS safe-area 兼容;点击平滑滚动或跳转 /account - HeroIllustration.vue(新增): 纯 SVG 广播园艺六花瓣+麦克风插画 紫粉蓝三色渐变花瓣+花蕊麦克风+三层虚线装饰环;viewBox 400×400 - SiteFooter.vue: 改浅色适配(白底+薄边+紫强调色 hover) - index.vue: Hero 插图槽替换为 HeroIllustration;集成 MobileBottomNav; 新增 handleMobileNav 响应底部导航点击事件 --- app/components/SiteFooter.vue | 13 ++++---- app/components/UI/HeroIllustration.vue | 42 ++++++++++++++++++++++++++ app/components/UI/MobileBottomNav.vue | 40 ++++++++++++++++++++++++ app/pages/index.vue | 17 ++++++++++- 4 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 app/components/UI/HeroIllustration.vue create mode 100644 app/components/UI/MobileBottomNav.vue diff --git a/app/components/SiteFooter.vue b/app/components/SiteFooter.vue index c5d528d..6021b2a 100644 --- a/app/components/SiteFooter.vue +++ b/app/components/SiteFooter.vue @@ -96,8 +96,9 @@ onMounted(() => { text-align: center; padding: 20px 0; margin-top: 30px; - border-top: 1px solid var(--border-primary); + border-top: 1px solid #E5E7EB; width: 100%; + background-color: #ffffff; } .footer-info { @@ -109,7 +110,7 @@ onMounted(() => { } .footer-item { - color: var(--text-tertiary); + color: #374151; font-size: 12px; white-space: nowrap; } @@ -117,7 +118,7 @@ onMounted(() => { .footer-item:not(:last-child)::after { content: ' | '; margin: 0 10px; - color: var(--text-quaternary); + color: #6B7280; } .footer-item a { @@ -127,7 +128,7 @@ onMounted(() => { } .footer-item a:hover { - color: var(--text-secondary); + color: #7C3AED; } .icp-link, @@ -139,7 +140,7 @@ onMounted(() => { .icp-link:hover, .voicehub-link:hover { - color: var(--text-secondary); + color: #7C3AED; } .netlify-badge { @@ -150,7 +151,7 @@ onMounted(() => { .netlify-badge img { height: 16px; - opacity: 0.8; + opacity: 0.9; transition: opacity 0.2s ease; } diff --git a/app/components/UI/HeroIllustration.vue b/app/components/UI/HeroIllustration.vue new file mode 100644 index 0000000..ebc7205 --- /dev/null +++ b/app/components/UI/HeroIllustration.vue @@ -0,0 +1,42 @@ + + + diff --git a/app/components/UI/MobileBottomNav.vue b/app/components/UI/MobileBottomNav.vue new file mode 100644 index 0000000..f4586b8 --- /dev/null +++ b/app/components/UI/MobileBottomNav.vue @@ -0,0 +1,40 @@ + + + diff --git a/app/pages/index.vue b/app/pages/index.vue index ca013c7..39e73a7 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -85,7 +85,9 @@ -
+
+ +
@@ -489,6 +491,10 @@ + + + + @@ -616,6 +622,8 @@ import { useRouter } from 'vue-router' import logo from '~~/public/images/logo.png' import Icon from '~/components/UI/Icon.vue' import ConfirmDialog from '~/components/UI/ConfirmDialog.vue' +import HeroIllustration from '~/components/UI/HeroIllustration.vue' +import MobileBottomNav from '~/components/UI/MobileBottomNav.vue' import { useNotifications } from '~/composables/useNotifications' import { useSiteConfig } from '~/composables/useSiteConfig' @@ -1477,6 +1485,13 @@ const scrollToSection = (id) => { if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' }) } +// 移动端底部导航处理 +const handleMobileNav = (target) => { + if (target === 'account') { router.push('/account'); return } + const el = document.getElementById(target) + if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' }) +} + // 添加导航到登录页面的方法 const navigateToLogin = () => { router.push('/login')