Files
fad-trade-next/components/home/index.tsx
砂糖 7f5ae85d34 feat: 重构首页并添加国际化支持
- 完全重构首页布局,添加轮播图、公司介绍、产品中心等模块
- 新增多个关于页面路由结构
- 调整国际化配置,移除日语支持并更新翻译文本
- 优化导航菜单和页脚内容
2025-11-21 15:35:36 +08:00

469 lines
23 KiB
TypeScript
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.

'use client'
import { useTranslations } from "next-intl";
export default function HomeComponent() {
const t = useTranslations("Home");
return (
<>
<section className="mx-auto text-center">
{/* 轮播图区域, 先用一张图片占位, 宽度100% 盖度100vh */}
<img src="/placeholder.svg" alt={t("carousel")} className="w-screen h-[80vh] object-cover rounded-lg" />
{/* 公司介绍 - 左右布局 */}
<div className="flex flex-col lg:flex-row w-full my-16 px-8">
{/* 左边视频(图片占位) */}
<div className="w-full lg:w-1/2 h-[50vh] lg:h-[60vh] relative overflow-hidden">
<img
src="/placeholder.svg"
alt={t("company_video")}
className="w-full h-full object-cover"
/>
</div>
{/* 右边内容 - 分三部分 */}
<div className="w-full lg:w-1/2 flex flex-col justify-center p-8 lg:p-16">
{/* 第一部分:标题 */}
<div className="mb-6">
<h2 className="text-3xl font-bold text-gray-900"></h2>
</div>
{/* 第二部分:介绍 */}
<div className="mb-8">
<p className="text-lg text-gray-700 leading-relaxed">
'友发''正金'西10
</p>
</div>
{/* 第三部分:按钮 */}
<div>
<button className="bg-red-600 hover:bg-red-700 text-white font-medium py-2 px-6 rounded transition-colors">
</button>
</div>
</div>
</div>
{/* 隐式轮播图,没有控件,每张四个卡片 */}
<div className="relative overflow-hidden py-16">
<div className="flex w-full flex-nowrap animate-carousel">
{/* 第一组卡片 */}
<div className="min-w-full flex justify-center px-4 gap-6">
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">5</div>
<div className="text-gray-700">绿</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">3+</div>
<div className="text-gray-700">绿</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">7</div>
<div className="text-gray-700">CNAS</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">10</div>
<div className="text-gray-700"></div>
</div>
</div>
{/* 第二组卡片 - 用于无缝轮播 */}
<div className="min-w-full flex justify-center px-4 gap-6">
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">5</div>
<div className="text-gray-700">绿</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">3+</div>
<div className="text-gray-700">绿</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">7</div>
<div className="text-gray-700">CNAS</div>
</div>
<div className="bg-white rounded-lg shadow-md p-6 flex-1 max-w-[22%] text-center">
<div className="text-red-600 text-4xl font-bold mb-2">10</div>
<div className="text-gray-700"></div>
</div>
</div>
</div>
</div>
<style jsx>{`
@keyframes carousel {
0% { transform: translateX(0); }
90% { transform: translateX(0); }
100% { transform: translateX(-100%); }
100% { transform: translateX(-100%); }
}
.animate-carousel {
animation: carousel 5s infinite linear;
animation-timing-function: linear;
transition: transform 1.5s;
}
`}</style>
{/* 最新资讯 */}
<div className="py-16 px-4 bg-white relative overflow-hidden">
{/* 标题 */}
<div className="text-center mb-12">
<h2 className="text-3xl font-bold text-gray-900 inline-block relative">
<span className="absolute bottom-0 left-1/4 w-1/2 h-1 bg-red-600"></span>
</h2>
</div>
{/* 资讯卡片列表 */}
<div className="flex flex-wrap justify-center gap-6 max-w-7xl mx-auto">
{/* 第一张卡片 */}
<div className="w-full md:w-[28vw] lg:w-[28vw] bg-white rounded-lg overflow-hidden transition-all duration-300 hover:shadow-lg">
<div className="p-4">
<div className="text-red-600 mb-2 font-medium text-left">2025/11/17</div>
<div className="text-gray-800 mb-3 line-clamp-1 text-base whitespace-nowrap overflow-hidden text-ellipsis">202...</div>
</div>
<div className="p-4 h-48 overflow-hidden">
<img src="/placeholder.svg" alt="资讯图片1" className="w-full h-full object-cover rounded" />
</div>
</div>
{/* 第二张卡片 - 中间突出显示 */}
<div className="w-full md:w-[28vw] lg:w-[28vw] bg-white rounded-lg overflow-hidden transition-all duration-300 hover:shadow-lg relative -mt-2 z-10">
<div className="p-4">
<div className="text-red-600 mb-2 font-medium text-left">2025/11/17</div>
<div className="text-gray-800 mb-3 line-clamp-1 text-base whitespace-nowrap overflow-hidden text-ellipsis">...</div>
</div>
<div className="p-4 h-48 overflow-hidden">
<img src="/placeholder.svg" alt="资讯图片2" className="w-full h-full object-cover rounded" />
</div>
</div>
{/* 第三张卡片 */}
<div className="w-full md:w-[26vw] lg:w-[26vw] bg-white rounded-lg overflow-hidden transition-all duration-300 hover:shadow-lg">
<div className="p-4">
<div className="text-red-600 mb-2 font-medium text-left">2025/09/20</div>
<div className="text-gray-800 mb-3 line-clamp-1 text-base whitespace-nowrap overflow-hidden text-ellipsis">...</div>
</div>
<div className="p-4 h-48 overflow-hidden">
<img src="/placeholder.svg" alt="资讯图片3" className="w-full h-full object-cover rounded" />
</div>
</div>
</div>
{/* 了解更多按钮 */}
<div className="text-center mt-12">
<button className="px-6 py-2 bg-white border border-red-600 text-red-600 hover:bg-red-600 hover:text-white transition-all duration-300 rounded-sm">
&gt;
</button>
</div>
</div>
{/* 产品中心 */}
<div className="py-16 px-4 bg-white">
<div className="text-center mb-12">
<h2 className="text-3xl font-bold text-gray-900 inline-block relative">
<span className="absolute bottom-0 left-1/4 w-1/2 h-1 bg-red-600"></span>
</h2>
</div>
{/* 左右布局左3右2 */}
<div className="flex flex-col lg:flex-row w-full max-w-7xl mx-auto">
{/* 左侧产品图 - 占3份 */}
<div className="w-full lg:w-3/5 h-[50vh] lg:h-[70vh] relative overflow-hidden bg-gray-100 rounded-lg mb-8 lg:mb-0">
{/* 默认显示第一张产品图 */}
<img
id="productImage"
src="/placeholder.svg"
alt="直缝高频焊接圆管"
className="w-full h-full object-contain p-8 transition-opacity duration-300"
/>
{/* 产品标题覆盖层 */}
<div className="absolute bottom-0 left-0 right-0 p-6 bg-gradient-to-t from-black/70 to-transparent">
<h3 id="productTitle" className="text-white text-2xl font-bold">()</h3>
</div>
</div>
{/* 右侧产品列表 - 占2份两列布局 */}
<div className="w-full lg:w-2/5 grid grid-cols-2 gap-4 lg:gap-6 p-4 lg:pl-8">
{/* 产品1 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '直缝高频焊接圆管');
document.getElementById('productTitle')!.textContent = '直缝高频焊接圆管(含热浸镀锌)';
}}
>
<span>()</span>
</div>
{/* 产品2 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '方形焊接钢管');
document.getElementById('productTitle')!.textContent = '方形焊接钢管(含热浸镀锌)';
}}
>
<span>()</span>
</div>
{/* 产品3 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '钢塑复合管');
document.getElementById('productTitle')!.textContent = '钢塑复合管';
}}
>
<span></span>
</div>
{/* 产品4 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '管路连接件');
document.getElementById('productTitle')!.textContent = '管路连接件';
}}
>
<span></span>
</div>
{/* 产品5 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '盘扣脚手架');
document.getElementById('productTitle')!.textContent = '盘扣脚手架';
}}
>
<span></span>
</div>
{/* 产品6 */}
<div
className="product-item p-6 flex items-center justify-center text-center bg-gray-200 cursor-pointer transition-colors duration-300 hover:bg-red-600 hover:text-white"
onMouseEnter={() => {
document.getElementById('productImage')?.setAttribute('src', '/placeholder.svg');
document.getElementById('productImage')?.setAttribute('alt', '不锈钢管及管件');
document.getElementById('productTitle')!.textContent = '不锈钢管及管件';
}}
>
<span></span>
</div>
</div>
</div>
</div>
{/* 应用领域 */}
<div className="py-16 px-4 bg-gray-50 relative overflow-hidden">
{/* 标题 */}
<div className="text-center mb-12">
<h2 className="text-3xl font-bold text-gray-900 inline-block relative">
<span className="absolute bottom-0 left-1/4 w-1/2 h-1 bg-red-600"></span>
</h2>
</div>
{/* 轮播容器 */}
<div className="relative max-w-7xl mx-auto">
{/* 左切换按钮 */}
<button
id="prevSlide"
className="absolute left-4 top-1/2 transform -translate-y-1/2 w-10 h-10 rounded-full bg-white shadow-md flex items-center justify-center text-gray-700 hover:bg-red-600 hover:text-white transition-colors z-20"
>
&lt;
</button>
{/* 右切换按钮 */}
<button
id="nextSlide"
className="absolute right-4 top-1/2 transform -translate-y-1/2 w-10 h-10 rounded-full bg-white shadow-md flex items-center justify-center text-gray-700 hover:bg-red-600 hover:text-white transition-colors z-20"
>
&gt;
</button>
{/* 轮播内容 */}
<div className="overflow-hidden">
<div
id="carouselTrack"
className="flex transition-transform duration-500 ease-in-out"
style={{ transform: 'translateX(0)' }}
>
{/* 第一组卡片拼图 */}
<div className="min-w-full flex flex-wrap gap-4 p-4">
{/* 第一行 */}
<div className="w-full flex gap-4 mb-4">
{/* 电梯井道 */}
<div className="w-1/4 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="电梯井道"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 塔机制造 - 宽度为其他卡片的两倍 */}
<div className="w-1/2 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="塔机制造"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 工程机械 */}
<div className="w-1/4 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="工程机械"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
</div>
{/* 第二行 */}
<div className="w-full flex gap-4">
{/* 高速护栏 - 宽度为其他卡片的两倍 */}
<div className="w-1/2 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="高速护栏"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 桥梁 */}
<div className="w-1/4 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="桥梁"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 钢结构 */}
<div className="w-1/4 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="钢结构"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
</div>
</div>
{/* 第二组卡片拼图(可扩展更多组) */}
<div className="min-w-full flex flex-wrap gap-4 p-4">
{/* 第一行 */}
<div className="w-full flex gap-4 mb-4">
{/* 建筑工程 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="建筑工程"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 水利水电 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="水利水电"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 轨道交通 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="轨道交通"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
</div>
{/* 第二行 */}
<div className="w-full flex gap-4">
{/* 市政工程 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="市政工程"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 农业设施 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="农业设施"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
{/* 能源化工 */}
<div className="w-1/3 relative overflow-hidden rounded-lg">
<img
src="/placeholder.svg"
alt="能源化工"
className="w-full h-[280px] object-cover hover:scale-105 transition-transform duration-300"
/>
<div className="absolute bottom-0 left-0 right-0 bg-black/60 text-white py-2 px-4">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{/* 生产案例 */}
</section>
</>
);
}