'use client'; import { useState, useMemo, useRef, ChangeEvent } from 'react'; import { useInView } from 'framer-motion'; import { CASES } from '@/lib/constants'; import { Badge } from '@/components/ui/badge'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { PageHeader } from '@/components/ui/page-header'; import { Search, ArrowLeft, Building2, Calendar, TrendingUp, ChevronLeft, ChevronRight, Filter } from 'lucide-react'; import { StaticLink } from '@/components/ui/static-link'; import { motion } from 'framer-motion'; const industries = ['全部', ...Array.from(new Set(CASES.map((c) => c.industry)))]; const ITEMS_PER_PAGE = 6; export default function CasesPage() { const [selectedIndustry, setSelectedIndustry] = useState('全部'); const [searchQuery, setSearchQuery] = useState(''); const [currentPage, setCurrentPage] = useState(1); const contentRef = useRef(null); const isContentInView = useInView(contentRef, { once: true, margin: '-100px' }); const filteredCases = useMemo(() => { return CASES.filter((caseItem) => { const matchesIndustry = selectedIndustry === '全部' || caseItem.industry === selectedIndustry; const matchesSearch = caseItem.title.toLowerCase().includes(searchQuery.toLowerCase()) || caseItem.description.toLowerCase().includes(searchQuery.toLowerCase()); return matchesIndustry && matchesSearch; }); }, [selectedIndustry, searchQuery]); const totalPages = Math.ceil(filteredCases.length / ITEMS_PER_PAGE); const paginatedCases = useMemo(() => { const startIndex = (currentPage - 1) * ITEMS_PER_PAGE; const endIndex = startIndex + ITEMS_PER_PAGE; return filteredCases.slice(startIndex, endIndex); }, [filteredCases, currentPage]); const handlePageChange = (page: number) => { setCurrentPage(page); window.scrollTo({ top: 0, behavior: 'smooth' }); }; const handleIndustryChange = (industry: string) => { setSelectedIndustry(industry); setCurrentPage(1); }; const handleSearchChange = (e: ChangeEvent) => { setSearchQuery(e.target.value); setCurrentPage(1); }; return (
行业筛选:
{industries.map((industry) => ( ))}
{paginatedCases.length === 0 ? (

没有找到相关案例

) : ( <>
{paginatedCases.map((caseItem, index) => (
{caseItem.industry}
{caseItem.client}

{caseItem.title}

{caseItem.duration}合作 {caseItem.tags.slice(0, 1).map((tag) => ( {tag} ))}

{caseItem.description}

查看详情
))}
{totalPages > 1 && (
{Array.from({ length: totalPages }, (_, i) => i + 1).map((page) => ( ))}
)}
显示 {paginatedCases.length} 条,共 {filteredCases.length} 条案例
)}

准备开始您的数字化转型之旅?

让我们与您同行,共创美好未来

); }