feat(pages): 添加联系、首页和作品页面,更新样式和配置文件

This commit is contained in:
2026-06-26 10:36:54 +08:00
commit 44f0b43fcc
31 changed files with 5557 additions and 0 deletions

View File

@@ -0,0 +1,166 @@
import { useState } from 'react'
import ScrollReveal from './ScrollReveal'
const comparisons = [
{
id: 1,
title: '品牌宣传片',
traditional: {
time: '2-4周',
cost: '¥50,000-200,000',
team: '导演+摄影+后期+演员',
process: '脚本撰写→选角→拍摄→后期制作→修改→交付'
},
ai: {
time: '1-3天',
cost: '¥5,000-20,000',
team: 'AI工程师+创意策划',
process: '需求确认→AI生成→人工优化→交付'
}
},
{
id: 2,
title: '产品展示视频',
traditional: {
time: '1-2周',
cost: '¥20,000-80,000',
team: '摄影师+灯光师+后期',
process: '产品准备→场景搭建→拍摄→精修→交付'
},
ai: {
time: '4-8小时',
cost: '¥2,000-8,000',
team: 'AI工程师',
process: '产品图片→AI建模→动画生成→交付'
}
},
{
id: 3,
title: '社交媒体短视频',
traditional: {
time: '3-7天',
cost: '¥10,000-30,000',
team: '编导+拍摄+剪辑',
process: '策划→拍摄→剪辑→字幕→交付'
},
ai: {
time: '2-4小时',
cost: '¥1,000-3,000',
team: 'AI工程师',
process: '文案输入→AI生成→一键发布'
}
}
]
export default function CaseComparison() {
const [activeCase, setActiveCase] = useState(comparisons[0])
return (
<section className="py-24 px-4 bg-[#0d0d2b]/50">
<div className="max-w-7xl mx-auto">
<ScrollReveal>
<div className="text-center mb-16">
<div className="inline-flex items-center px-4 py-2 rounded-full glass-card mb-6">
<span className="text-purple-400 text-sm font-medium"></span>
</div>
<h2 className="text-4xl md:text-5xl font-bold mb-4">
AI vs <span className="gradient-text"></span>
</h2>
<p className="text-gray-400 text-lg max-w-2xl mx-auto">
AI制作效率提升10倍80%
</p>
</div>
</ScrollReveal>
{/* Case Tabs */}
<ScrollReveal delay={100}>
<div className="flex flex-wrap justify-center gap-3 mb-12">
{comparisons.map((comp) => (
<button
key={comp.id}
onClick={() => setActiveCase(comp)}
className={`px-5 py-2.5 rounded-xl font-medium transition-all duration-300 ${
activeCase.id === comp.id
? 'gradient-bg-animated text-white'
: 'glass-card text-gray-400 hover:text-white'
}`}
>
{comp.title}
</button>
))}
</div>
</ScrollReveal>
{/* Comparison Cards */}
<ScrollReveal delay={200}>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
{/* Traditional */}
<div className="glass-card rounded-3xl p-8 border-red-500/20">
<div className="flex items-center gap-3 mb-8">
<div className="w-12 h-12 rounded-xl bg-red-500/20 flex items-center justify-center">
<svg className="w-6 h-6 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
<h3 className="text-xl font-bold text-white"></h3>
</div>
<div className="space-y-6">
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-red-400 font-semibold">{activeCase.traditional.time}</span>
</div>
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-red-400 font-semibold">{activeCase.traditional.cost}</span>
</div>
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-gray-300 text-sm text-right">{activeCase.traditional.team}</span>
</div>
<div>
<span className="text-gray-400 block mb-3"></span>
<p className="text-gray-300 text-sm leading-relaxed">{activeCase.traditional.process}</p>
</div>
</div>
</div>
{/* AI */}
<div className="glass-card rounded-3xl p-8 border-green-500/20 relative overflow-hidden">
<div className="absolute top-4 right-4 px-3 py-1 rounded-full text-xs font-semibold gradient-bg-animated">
</div>
<div className="flex items-center gap-3 mb-8">
<div className="w-12 h-12 rounded-xl bg-green-500/20 flex items-center justify-center">
<svg className="w-6 h-6 text-green-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
</svg>
</div>
<h3 className="text-xl font-bold text-white">AI制作</h3>
</div>
<div className="space-y-6">
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-green-400 font-semibold">{activeCase.ai.time}</span>
</div>
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-green-400 font-semibold">{activeCase.ai.cost}</span>
</div>
<div className="flex items-center justify-between py-4 border-b border-white/5">
<span className="text-gray-400"></span>
<span className="text-gray-300 text-sm">{activeCase.ai.team}</span>
</div>
<div>
<span className="text-gray-400 block mb-3"></span>
<p className="text-gray-300 text-sm leading-relaxed">{activeCase.ai.process}</p>
</div>
</div>
</div>
</div>
</ScrollReveal>
</div>
</section>
)
}