QQ空间历史说说导出指南:3 条命令,把翻不到的旧动态全部找回
2026/9/21 22:58:37
在 SaaS 平台与独立开发产品的商业转化链路中,定价方案页(Pricing Table / Pricing Cards)是决定访客能否最终掏出钱包付款的“临门一脚”。
然而,在通过 AI 自动生成定价卡片组件时,许多生成的代码存在以下典型的转化率硬伤:
为了让 AI 能够稳定生成具备顶级转化率设计心理学、平滑折扣切换动效与强类型受控的现代定价卡片组件,我们提炼了一套标准代码实现。
┌─────────────────────────────────────────────────────────────┐ │ 高转化率定价卡片核心结构 │ ├──────────────────────────────┬──────────────────────────────┤ │ 顶部: 年付/月付切换开关 │ [ 月付 ] ──(立省 35%!)──► [ 年付 ] │ ├──────────────────────────────┼──────────────────────────────┤ │ 卡片 A: 基础尝鲜版 │ 适合轻度尝鲜,突出低门槛 │ │ 卡片 B: 专业尊享版 (高亮发光) │ ⭐ 最受欢迎! 渐变边框 + 核心推荐 │ │ 卡片 C: 团队企业版 │ 适合团队协同,突出 SSO 与开票 │ └──────────────────────────────┴──────────────────────────────┘import React, { useState } from 'react'; import { Check, Sparkles, HelpCircle } from 'lucide-react'; export interface PricingPlan { id: string; name: string; badge?: string; description: string; monthlyPrice: number; yearlyPricePerMonth: number; // 年付时折合每月的价格 yearlyTotal: number; isPopular?: boolean; features: string[]; ctaText: string; } export const PLANS_DATA: PricingPlan[] = [ { id: 'plan_starter', name: '基础入门版', description: '适合个人偶尔草拟周报与轻度总结', monthlyPrice: 9.9, yearlyPricePerMonth: 6.9, yearlyTotal: 82.8, features: ['每月 30 次周报生成', '标准 Markdown 格式导出', 'Git Commit 基础解析', '社区工单支持'], ctaText: '开启基础版' }, { id: 'plan_pro', name: '极客专业版', badge: '🔥 最受欢迎', isPopular: true, description: '专为高产工程师打造,无限生成与深度分析', monthlyPrice: 19.9, yearlyPricePerMonth: 12.9, yearlyTotal: 154.8, features: [ '无限次 AI 周报生成', '4K 高清长图与 PDF 出版级排版导出', '跨周长时记忆与交付偏差预警', '微信服务号 / 钉钉扫码免密登录', '1 对 1 专属技术支持' ], ctaText: '立即开通 Pro' }, { id: 'plan_team', name: '团队企业版', badge: '企业采购首选', description: '适合研发团队管理、周五自动催办与效能看板', monthlyPrice: 49.9, yearlyPricePerMonth: 32.9, yearlyTotal: 394.8, features: [ '包含 10 人团队全量席位', '企业微信 / 飞书 Webhook 周五自动催办', '部门研发 OKR 推进全景度量大盘', '团队历史周报语义知识库聚类', '支持对公转账与增值税专用发票' ], ctaText: '联系团队开通' } ]; export const ModernPricingSection: React.FC<{ onSelectPlan: (planId: string, isYearly: boolean) => void; }> = ({ onSelectPlan }) => { const [isYearly, setIsYearly] = useState(true); return ( <section className="py-12 px-4 max-w-6xl mx-auto space-y-8"> {/* 顶部标题与月/年付切换开关 */} <div className="text-center space-y-4"> <h2 className="text-3xl font-extrabold text-slate-900 tracking-tight"> 极简透明的定价,为研发效率投资 </h2> <p className="text-sm text-slate-500 max-w-xl mx-auto"> 无论个人极客还是敏捷团队,均可按需选择最匹配的生产力算力方案 </p> {/* 动态年付/月付切换 Toggle */} <div className="inline-flex items-center p-1.5 bg-slate-100 rounded-2xl border border-slate-200"> <button onClick={() => setIsYearly(false)} className={`px-4 py-1.5 rounded-xl text-xs font-bold transition-all ${ !isYearly ? 'bg-white text-slate-900 shadow-sm' : 'text-slate-500 hover:text-slate-900' }`} > 按月付费 </button> <button onClick={() => setIsYearly(true)} className={`flex items-center space-x-1.5 px-4 py-1.5 rounded-xl text-xs font-bold transition-all ${ isYearly ? 'bg-blue-600 text-white shadow-md' : 'text-slate-500 hover:text-slate-900' }`} > <span>按年付费</span> <span className="px-1.5 py-0.5 bg-amber-400 text-slate-950 text-[10px] font-black rounded-md animate-pulse"> 立省 35% </span> </button> </div> </div> {/* 三列定价卡片网格 */} <div className="grid grid-cols-1 md:grid-cols-3 gap-6 items-stretch"> {PLANS_DATA.map((plan) => { const currentPrice = isYearly ? plan.yearlyPricePerMonth : plan.monthlyPrice; return ( <div key={plan.id} className={`relative flex flex-col justify-between p-7 rounded-3xl transition-all duration-300 ${ plan.isPopular ? 'bg-white border-2 border-blue-600 shadow-2xl scale-105 z-10' : 'bg-white border border-slate-200 shadow-sm hover:border-slate-300' }`} > {/* 最受欢迎发光徽标 */} {plan.badge && ( <div className="absolute -top-3.5 left-1/2 -translate-x-1/2 px-3 py-1 bg-gradient-to-r from-blue-600 to-indigo-600 text-white text-[11px] font-bold rounded-full shadow-md flex items-center space-x-1"> <Sparkles className="w-3 h-3" /> <span>{plan.badge}</span> </div> )} {/* 头部方案名称与价格 */} <div className="space-y-4"> <div> <h3 className="text-lg font-bold text-slate-900">{plan.name}</h3> <p className="text-xs text-slate-500 mt-1 min-h-[32px]">{plan.description}</p> </div> {/* 动态价格展示 */} <div className="flex items-baseline space-x-1 border-b pb-4"> <span className="text-sm font-semibold text-slate-500">¥</span> <span className="text-4xl font-extrabold text-slate-900 font-mono tracking-tight transition-all"> {currentPrice.toFixed(1)} </span> <span className="text-xs text-slate-400">/ 月</span> {isYearly && ( <span className="text-[11px] text-slate-400 ml-2 font-mono"> (年付 ¥{plan.yearlyTotal}) </span> )} </div> {/* 权益列表 */} <ul className="space-y-3 py-2 text-xs text-slate-600"> {plan.features.map((feature, idx) => ( <li key={idx} className="flex items-start space-x-2"> <div className="p-0.5 bg-emerald-50 text-emerald-600 rounded mt-0.5"> <Check className="w-3.5 h-3.5" /> </div> <span className="leading-tight">{feature}</span> </li> ))} </ul> </div> {/* 底部购买 CTA 按钮 */} <button onClick={() => onSelectPlan(plan.id, isYearly)} className={`w-full mt-6 py-3 rounded-2xl text-xs font-bold transition-all shadow-md active:scale-95 ${ plan.isPopular ? 'bg-blue-600 hover:bg-blue-700 text-white shadow-blue-500/25' : 'bg-slate-100 hover:bg-slate-200 text-slate-800' }`} > {plan.ctaText} </button> </div> ); })} </div> </section> ); };scale-105放大 5%、蓝色发光边框与动态 Badge,让 80% 的访客视线第一秒锁定在最核心的推荐套餐上;