2025-09-15 14:52:27 +08:00

175 lines
6.7 KiB
TypeScript
Raw Permalink 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 { Check, Star, Zap } from 'lucide-react';
export default function Pricing() {
const plans = [
{
name: '基础版',
price: '¥100',
period: '/月',
originalPrice: '¥120',
description: '适合个人用户和小型项目',
features: [
'全球 20+ 节点接入',
'基础智能路由',
'社区支持',
'基础监控面板',
'5GB 月流量',
'标准 SLA'
],
recommended: false,
popular: false
},
{
name: '专业版',
price: '¥300',
period: '/月',
originalPrice: '¥400',
description: '适合中小企业和成长型项目',
features: [
'全球 50+ 节点接入',
'高级智能路由',
'实时监控面板',
'邮件 + 电话支持',
'50GB 月流量',
'高级安全防护',
'API 接口访问',
'99.9% SLA 保障'
],
recommended: true,
popular: true
},
{
name: '企业版',
price: '¥800',
period: '/月',
originalPrice: '¥1000',
description: '适合大型企业和关键业务',
features: [
'全球 100+ 节点接入',
'专属线路优化',
'7×24 专业技术支持',
'定制 SLA 协议',
'无限流量',
'企业级安全防护',
'专属客户经理',
'定制化解决方案',
'99.99% SLA 保障'
],
recommended: false,
popular: false
},
];
return (
<section className="px-6 py-16 bg-gradient-to-br from-gray-50 to-blue-50">
<div className="max-w-screen-xl mx-auto">
<div className="text-center mb-16">
<h2 className="text-3xl md:text-4xl font-bold text-primary mb-4">
</h2>
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
{plans.map((plan, index) => (
<div
key={plan.name}
className={`relative bg-white rounded-2xl shadow-lg hover:shadow-2xl transition-all duration-300 ${
plan.recommended
? 'ring-2 ring-accent scale-105'
: 'hover:scale-105'
}`}
>
{plan.popular && (
<div className="absolute -top-4 left-1/2 transform -translate-x-1/2">
<div className="bg-gradient-to-r from-accent to-blue-600 text-white px-6 py-2 rounded-full text-sm font-semibold flex items-center">
<Star className="w-4 h-4 mr-1" />
</div>
</div>
)}
<div className="p-8">
<div className="text-center mb-8">
<h3 className="text-2xl font-bold text-primary mb-2">{plan.name}</h3>
<p className="text-gray-600 mb-4">{plan.description}</p>
<div className="flex items-baseline justify-center mb-4">
<span className="text-4xl font-bold text-accent">{plan.price}</span>
<span className="text-gray-500 ml-1">{plan.period}</span>
{plan.originalPrice && (
<span className="text-lg text-gray-400 line-through ml-2">
{plan.originalPrice}
</span>
)}
</div>
{plan.originalPrice && (
<div className="inline-flex items-center bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-medium">
<Zap className="w-4 h-4 mr-1" />
</div>
)}
</div>
<ul className="space-y-4 mb-8">
{plan.features.map((feature, idx) => (
<li key={idx} className="flex items-start">
<Check className="w-5 h-5 text-green-500 mr-3 mt-0.5 flex-shrink-0" />
<span className="text-gray-700">{feature}</span>
</li>
))}
</ul>
<a
href="/contact"
className={`w-full block text-center py-3 px-6 rounded-xl font-semibold transition-all duration-300 ${
plan.recommended
? 'bg-gradient-to-r from-accent to-blue-600 text-white hover:from-blue-600 hover:to-accent shadow-lg hover:shadow-xl'
: 'bg-gray-100 text-primary hover:bg-accent hover:text-white border border-gray-200 hover:border-accent'
}`}
>
{plan.recommended ? '立即开始' : '选择方案'}
</a>
</div>
</div>
))}
</div>
{/* 额外信息 */}
<div className="mt-16 text-center">
<div className="bg-white rounded-2xl p-8 shadow-lg max-w-4xl mx-auto">
<h3 className="text-2xl font-bold text-primary mb-4"></h3>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
<div className="text-center">
<div className="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
<span className="text-2xl">🆓</span>
</div>
<h4 className="text-lg font-semibold mb-2"></h4>
<p className="text-gray-600 text-sm"> 15 </p>
</div>
<div className="text-center">
<div className="w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
<span className="text-2xl">💰</span>
</div>
<h4 className="text-lg font-semibold mb-2"></h4>
<p className="text-gray-600 text-sm"> 88 </p>
</div>
<div className="text-center">
<div className="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
<span className="text-2xl">🔄</span>
</div>
<h4 className="text-lg font-semibold mb-2"></h4>
<p className="text-gray-600 text-sm"></p>
</div>
</div>
</div>
</div>
</div>
</section>
);
}