mirror of
https://gitcode.com/leisileken/cloud-smart.git
synced 2026-09-11 10:27:20 +08:00
Initial commit: 西安云阶智元信息科技有限公司官网
This commit is contained in:
118
src/components/Footer.vue
Normal file
118
src/components/Footer.vue
Normal file
@@ -0,0 +1,118 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
|
||||
const currentYear = new Date().getFullYear()
|
||||
|
||||
const footerLinks = {
|
||||
products: [
|
||||
{ name: '企业级软件', path: '/products#enterprise' },
|
||||
{ name: '智能体平台', path: '/products#agent' },
|
||||
{ name: '数据分析系统', path: '/products#analytics' },
|
||||
{ name: '移动端应用', path: '/products#mobile' }
|
||||
],
|
||||
solutions: [
|
||||
{ name: '智能制造', path: '/solutions#manufacturing' },
|
||||
{ name: '金融科技', path: '/solutions#finance' },
|
||||
{ name: '医疗健康', path: '/solutions#healthcare' },
|
||||
{ name: '教育培训', path: '/solutions#education' }
|
||||
],
|
||||
company: [
|
||||
{ name: '关于我们', path: '/about' },
|
||||
{ name: '团队介绍', path: '/about#team' },
|
||||
{ name: '新闻动态', path: '/about#news' },
|
||||
{ name: '加入我们', path: '/about#careers' }
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<footer class="bg-gray-900 text-white">
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-16">
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-12">
|
||||
<div class="lg:col-span-2">
|
||||
<div class="flex items-center space-x-3 mb-6">
|
||||
<div class="w-12 h-12 bg-gradient-primary rounded-lg flex items-center justify-center">
|
||||
<span class="text-white font-bold text-xl">云</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-bold text-xl">西安云阶智元信息科技有限公司</span>
|
||||
<p class="text-gray-400 text-sm">Cloud Smart Technology</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-gray-400 mb-6 leading-relaxed">
|
||||
专注于软件开发与智能体方案落地,为企业提供全方位的数字化转型服务。我们致力于用技术创新推动产业升级,助力企业实现智能化发展。
|
||||
</p>
|
||||
<div class="space-y-3">
|
||||
<div class="flex items-center space-x-3 text-gray-400">
|
||||
<svg class="w-5 h-5 text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/>
|
||||
</svg>
|
||||
<span>陕西省西安市高新区科技二路65号清华科技园E座</span>
|
||||
</div>
|
||||
<div class="flex items-center space-x-3 text-gray-400">
|
||||
<svg class="w-5 h-5 text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
|
||||
</svg>
|
||||
<span>492265466@qq.com</span>
|
||||
</div>
|
||||
<div class="flex items-center space-x-3 text-gray-400">
|
||||
<svg class="w-5 h-5 text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
||||
</svg>
|
||||
<span>周一至周五 9:00-18:00</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 class="font-semibold text-lg mb-4">产品中心</h3>
|
||||
<ul class="space-y-3">
|
||||
<li v-for="link in footerLinks.products" :key="link.name">
|
||||
<a :href="link.path" class="text-gray-400 hover:text-primary-400 transition-colors">
|
||||
{{ link.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 class="font-semibold text-lg mb-4">解决方案</h3>
|
||||
<ul class="space-y-3">
|
||||
<li v-for="link in footerLinks.solutions" :key="link.name">
|
||||
<a :href="link.path" class="text-gray-400 hover:text-primary-400 transition-colors">
|
||||
{{ link.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 class="font-semibold text-lg mb-4">关于公司</h3>
|
||||
<ul class="space-y-3">
|
||||
<li v-for="link in footerLinks.company" :key="link.name">
|
||||
<a :href="link.path" class="text-gray-400 hover:text-primary-400 transition-colors">
|
||||
{{ link.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-gray-800">
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
||||
<div class="flex flex-col md:flex-row justify-between items-center space-y-4 md:space-y-0">
|
||||
<p class="text-gray-500 text-sm">
|
||||
{{ currentYear }} 西安云阶智元信息科技有限公司 版权所有
|
||||
</p>
|
||||
<div class="flex space-x-6 text-gray-500 text-sm">
|
||||
<a href="#" class="hover:text-primary-400 transition-colors">隐私政策</a>
|
||||
<a href="#" class="hover:text-primary-400 transition-colors">服务条款</a>
|
||||
<a href="#" class="hover:text-primary-400 transition-colors">网站地图</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
136
src/components/Navbar.vue
Normal file
136
src/components/Navbar.vue
Normal file
@@ -0,0 +1,136 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, onUnmounted } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const router = useRouter()
|
||||
const isMenuOpen = ref(false)
|
||||
const isScrolled = ref(false)
|
||||
|
||||
const navItems = [
|
||||
{ name: '首页', path: '/' },
|
||||
{ name: '产品中心', path: '/products' },
|
||||
{ name: '解决方案', path: '/solutions' },
|
||||
{ name: '关于我们', path: '/about' },
|
||||
{ name: '联系我们', path: '/contact' }
|
||||
]
|
||||
|
||||
const handleScroll = () => {
|
||||
isScrolled.value = window.scrollY > 50
|
||||
}
|
||||
|
||||
const toggleMenu = () => {
|
||||
isMenuOpen.value = !isMenuOpen.value
|
||||
}
|
||||
|
||||
const closeMenu = () => {
|
||||
isMenuOpen.value = false
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
window.addEventListener('scroll', handleScroll)
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
window.removeEventListener('scroll', handleScroll)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<nav
|
||||
class="navbar fixed top-0 left-0 right-0 z-50 transition-all duration-300"
|
||||
:class="isScrolled ? 'bg-white/95 backdrop-blur-md shadow-md' : 'bg-transparent'"
|
||||
>
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="flex items-center justify-between h-16 lg:h-20">
|
||||
<div class="flex items-center space-x-3 cursor-pointer" @click="router.push('/')">
|
||||
<div class="w-10 h-10 bg-gradient-primary rounded-lg flex items-center justify-center">
|
||||
<span class="text-white font-bold text-xl">云</span>
|
||||
</div>
|
||||
<div>
|
||||
<span
|
||||
class="font-bold text-lg"
|
||||
:class="isScrolled ? 'text-gray-900' : 'text-white'"
|
||||
>
|
||||
云阶智元
|
||||
</span>
|
||||
<p
|
||||
class="text-xs"
|
||||
:class="isScrolled ? 'text-gray-500' : 'text-white/80'"
|
||||
>
|
||||
Cloud Smart
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hidden lg:flex items-center space-x-8">
|
||||
<a
|
||||
v-for="item in navItems"
|
||||
:key="item.path"
|
||||
:href="item.path"
|
||||
class="font-medium transition-colors duration-200 relative group"
|
||||
:class="isScrolled ? 'text-gray-700 hover:text-primary-600' : 'text-white/90 hover:text-white'"
|
||||
>
|
||||
{{ item.name }}
|
||||
<span class="absolute -bottom-1 left-0 w-0 h-0.5 bg-primary-500 transition-all duration-200 group-hover:w-full"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="hidden lg:flex items-center space-x-4">
|
||||
<button
|
||||
class="btn-primary"
|
||||
@click="router.push('/contact')"
|
||||
>
|
||||
免费咨询
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="lg:hidden p-2"
|
||||
:class="isScrolled ? 'text-gray-700' : 'text-white'"
|
||||
@click="toggleMenu"
|
||||
>
|
||||
<svg v-if="!isMenuOpen" class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
||||
</svg>
|
||||
<svg v-else class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<transition
|
||||
enter-active-class="transition-all duration-300 ease-out"
|
||||
enter-from-class="opacity-0 -translate-y-4"
|
||||
enter-to-class="opacity-100 translate-y-0"
|
||||
leave-active-class="transition-all duration-200 ease-in"
|
||||
leave-from-class="opacity-100 translate-y-0"
|
||||
leave-to-class="opacity-0 -translate-y-4"
|
||||
>
|
||||
<div
|
||||
v-if="isMenuOpen"
|
||||
class="lg:hidden bg-white shadow-lg border-t"
|
||||
>
|
||||
<div class="container mx-auto px-4 py-4 space-y-2">
|
||||
<a
|
||||
v-for="item in navItems"
|
||||
:key="item.path"
|
||||
:href="item.path"
|
||||
class="block px-4 py-3 text-gray-700 hover:bg-primary-50 hover:text-primary-600 rounded-lg transition-colors"
|
||||
@click="closeMenu"
|
||||
>
|
||||
{{ item.name }}
|
||||
</a>
|
||||
<div class="pt-4 border-t">
|
||||
<button
|
||||
class="w-full btn-primary"
|
||||
@click="router.push('/contact'); closeMenu()"
|
||||
>
|
||||
免费咨询
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</nav>
|
||||
</template>
|
||||
Reference in New Issue
Block a user