Files
tuhui.cloud/frontend/src/components/Hero.jsx
2026-03-08 20:18:27 +08:00

150 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Input, Button, Tag } from 'antd';
import {
SearchOutlined,
CameraOutlined,
ArrowRightOutlined,
ThunderboltOutlined,
SafetyCertificateOutlined,
ClockCircleOutlined,
} from '@ant-design/icons';
import { useNavigate } from 'react-router-dom';
import './Hero.css';
const recommendTags = ['活动', '医美', '科技', '包装', '直播', '邀请函'];
const heroStats = [
{ value: '24h', label: '持续更新' },
{ value: '原图', label: '即时交付' },
{ value: '在线', label: '支付下载' },
];
const stageHighlights = [
{
icon: <ThunderboltOutlined />,
title: '热门原图',
description: '按场景、风格和行业快速找图,减少反复沟通。',
},
{
icon: <SafetyCertificateOutlined />,
title: '支付后交付',
description: '下单、支付、下载一条链路走通,用户体验更顺。',
},
{
icon: <ClockCircleOutlined />,
title: '最新上传',
description: '设计师持续上新,支持详情页预览和作品编号追踪。',
},
];
const Hero = () => {
const navigate = useNavigate();
const scrollToHotWorks = () => {
document.getElementById('home-hot-works')?.scrollIntoView({
behavior: 'smooth',
block: 'start',
});
};
return (
<section className="hero">
<div className="hero-shell">
<div className="hero-copy">
<span className="hero-eyebrow">图汇精选素材库</span>
<h1 className="hero-title">
把灵感整理成
<span>可直接下载的设计资产</span>
</h1>
<p className="hero-description">
原图背景电商图活动物料统一归档预览支付下载三步走通
让客户从找图到拿到成品更省心
</p>
<div className="hero-search-panel">
<div className="hero-search-box">
<Input
size="large"
placeholder="搜索作品标题、作品编号或场景关键词"
className="hero-search-input"
prefix={<SearchOutlined className="hero-search-prefix" />}
suffix={<CameraOutlined className="hero-search-camera" />}
/>
</div>
<div className="hero-action-row">
<Button
type="primary"
size="large"
className="hero-primary-btn"
icon={<ArrowRightOutlined />}
onClick={scrollToHotWorks}
>
浏览热门作品
</Button>
<Button
size="large"
className="hero-secondary-btn"
onClick={() => navigate('/upload-guide')}
>
上传指南
</Button>
</div>
</div>
<div className="hero-tags">
<span className="hero-tags-label">推荐分类</span>
{recommendTags.map((tag) => (
<Tag
key={tag}
className="hero-tag"
onClick={() => navigate(`/category/${tag}`)}
>
{tag}
</Tag>
))}
</div>
<div className="hero-stats">
{heroStats.map((item) => (
<div key={item.label} className="hero-stat">
<strong>{item.value}</strong>
<span>{item.label}</span>
</div>
))}
</div>
</div>
<div className="hero-stage">
<div className="hero-stage-card hero-stage-main">
<div className="hero-stage-topline">
<span className="hero-stage-label">本周趋势</span>
<span className="hero-stage-badge">精选专题</span>
</div>
<h2>更像一个能直接成交的素材站而不是简单图库</h2>
<p>
首页负责承接搜索意图详情页负责转化下载动作让用户一眼知道
这里能找能买能下
</p>
<div className="hero-stage-pills">
<span>高清原图</span>
<span>在线支付</span>
<span>作品详情页</span>
</div>
</div>
<div className="hero-stage-stack">
{stageHighlights.map((item) => (
<div key={item.title} className="hero-stage-card hero-stage-mini">
<div className="hero-stage-icon">{item.icon}</div>
<div>
<h3>{item.title}</h3>
<p>{item.description}</p>
</div>
</div>
))}
</div>
</div>
</div>
</section>
);
};
export default Hero;