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')