diff --git a/web/public/images/create.png b/web/public/images/create.png new file mode 100644 index 0000000..c8f08df Binary files /dev/null and b/web/public/images/create.png differ diff --git a/web/public/images/openclaw-2.png b/web/public/images/openclaw-2.png new file mode 100644 index 0000000..cbfdf61 Binary files /dev/null and b/web/public/images/openclaw-2.png differ diff --git a/web/public/images/openclaw-3.jpg b/web/public/images/openclaw-3.jpg new file mode 100644 index 0000000..8ed1006 Binary files /dev/null and b/web/public/images/openclaw-3.jpg differ diff --git a/web/public/images/openclaw.png b/web/public/images/openclaw.png new file mode 100644 index 0000000..026cac6 Binary files /dev/null and b/web/public/images/openclaw.png differ diff --git a/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx b/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx index e643517..97b07a5 100644 --- a/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx +++ b/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx @@ -18,8 +18,8 @@ For commercial licensing, please contact support@quantumnous.com */ import React, { useState, useEffect, useMemo } from 'react'; -import { Card, Avatar, Typography, Table, Tag, Spin, Tooltip } from '@douyinfe/semi-ui'; -import { IconServer, IconEditStroked } from '@douyinfe/semi-icons'; +import { Card, Avatar, Typography, Table, Tag, Spin } from '@douyinfe/semi-ui'; +import { IconServer } from '@douyinfe/semi-icons'; import { API } from '../../../../../helpers'; const { Text } = Typography; @@ -139,11 +139,6 @@ const ChannelPricingCard = ({ {tag.name} ))} - {record.hasCustomPricing && ( - - - - )} ), }, diff --git a/web/src/pages/Home/components/CTASection.jsx b/web/src/pages/Home/components/CTASection.jsx index 10a0720..2e54a44 100644 --- a/web/src/pages/Home/components/CTASection.jsx +++ b/web/src/pages/Home/components/CTASection.jsx @@ -58,18 +58,18 @@ const CTASection = () => { {t('立即开始')} - {docsLink && ( - - )} + {/*{docsLink && (*/} + {/* }*/} + {/* onClick={() => window.open(docsLink, '_blank')}*/} + {/* >*/} + {/* {t('查看文档')}*/} + {/* */} + {/*)}*/} diff --git a/web/src/pages/Home/components/HeroSection.jsx b/web/src/pages/Home/components/HeroSection.jsx index 194c156..eb3243c 100644 --- a/web/src/pages/Home/components/HeroSection.jsx +++ b/web/src/pages/Home/components/HeroSection.jsx @@ -64,13 +64,13 @@ const HeroSection = () => { }, { icon: , - title: t('智能限流'), + title: t('安全可控'), description: t('多维策略保障核心业务优先级,避免突发拥堵。'), }, ]; const stats = [ - { value: '30+', label: t('可覆盖模型') }, + { value: '100+', label: t('可覆盖模型') }, { value: '99.9%', label: t('SLA 可用性') }, { value: '7', label: t('多区域节点') }, ]; @@ -92,13 +92,12 @@ const HeroSection = () => { {/* 大标题 */}
- {t('统一的大模型接口网关')} -
- {t('链接全球 AI 能力')} + {t('统一的大模型接口网关')} + {t('链接全球 AI 能力')}
{/* 描述 */} diff --git a/web/src/pages/Home/components/HomePageFooter.jsx b/web/src/pages/Home/components/HomePageFooter.jsx index ba5a5d7..1245f02 100644 --- a/web/src/pages/Home/components/HomePageFooter.jsx +++ b/web/src/pages/Home/components/HomePageFooter.jsx @@ -60,11 +60,11 @@ const HomePageFooter = () => {
{/* 版权信息 */} -
- - © {currentYear} {systemName}. {t('版权所有')} - -
+ {/*
*/} + {/* */} + {/* © {currentYear} {systemName}. {t('版权所有')}*/} + {/* */} + {/*
*/} {/* 附加信息 */} {footerInfo && ( diff --git a/web/src/pages/Home/components/PartnersSection.jsx b/web/src/pages/Home/components/PartnersSection.jsx index c4fdd28..a17898e 100644 --- a/web/src/pages/Home/components/PartnersSection.jsx +++ b/web/src/pages/Home/components/PartnersSection.jsx @@ -76,7 +76,7 @@ const PartnersSection = () => {
{/* 标题区域 */}
- + {t('生态伙伴')} diff --git a/web/src/pages/Home/components/ToolsSection.jsx b/web/src/pages/Home/components/ToolsSection.jsx index 25059c6..871555d 100644 --- a/web/src/pages/Home/components/ToolsSection.jsx +++ b/web/src/pages/Home/components/ToolsSection.jsx @@ -29,33 +29,24 @@ const ToolCard = ({ icon, brand, brandColor, title, description, link, glowClass }; return ( - <div className="group cursor-pointer"> + <div className="group cursor-pointer h-full"> <div - className={`rounded-2xl sm:rounded-[2rem] border bg-white border-black/5 p-8 sm:p-10 lg:p-12 shadow-sm transition-all duration-500 hover:shadow-2xl ${brandColorClasses[glowClass]}`} + className={`h-full rounded-2xl sm:rounded-[2rem] border bg-white border-black/5 p-8 sm:p-10 lg:p-12 shadow-sm transition-all duration-500 hover:shadow-2xl ${brandColorClasses[glowClass]}`} > - {/* Logo */} - <div className="mb-6 sm:mb-8"> + {/* Logo + Title */} + <div className="mb-3 sm:mb-4 flex items-center gap-3 sm:gap-4"> <img src={icon} alt={title} - className="h-10 w-10 sm:h-12 sm:w-12 object-contain" + className="h-8 w-8 object-contain" /> + <h3 className="text-xl sm:text-2xl font-bold tracking-tight line-clamp-1"> + {title} + </h3> </div> - {/* Brand Tag */} - <span - className={`mb-4 sm:mb-6 block text-[10px] sm:text-xs font-black uppercase tracking-[0.15em] ${brandColorClasses[brandColor].split(' ')[0]}`} - > - {brand} - </span> - - {/* Title */} - <h3 className="mb-3 sm:mb-4 text-xl sm:text-2xl font-bold tracking-tight"> - {title} - </h3> - {/* Description */} - <p className="mb-6 sm:mb-8 text-sm sm:text-base font-light leading-relaxed opacity-40"> + <p className="mb-6 sm:mb-8 text-sm sm:text-base font-light leading-relaxed opacity-40 line-clamp-3"> {description} </p> @@ -81,26 +72,26 @@ const ToolsSection = () => { icon: '/images/Anthropic.png', brand: 'Anthropic', brandColor: 'amber', - title: 'Claude Code', - description: '代码执行能力强劲,高效理解需求,快速生成精准代码。', + title: 'AI编程', + description: '无缝支持AI编程工具,涵盖顶级模型。', link: '/pricing', glowClass: 'amber', }, { - icon: '/images/openai.png', - brand: 'OpenAI', + icon: '/images/create.png', + brand: ' ', brandColor: 'blue', - title: 'CodeX', - description: '深度思考模式,慢工出细活,复杂逻辑处理更严谨。', + title: '创作', + description: '顶级多模态模型,统一API使用。', link: '/pricing', glowClass: 'blue', }, { - icon: '/images/gemini-ai.png', - brand: 'Google AI', + icon: '/images/openclaw-3.jpg', + brand: 'OpenClaw', brandColor: 'purple', - title: 'Gemini CLI', - description: '前端能力顶尖,UI/UX 设计与实现一步到位,视觉效果出众。', + title: '龙虾', + description: '无缝接入龙虾,顶级模型构建聪明大脑。', link: '/pricing', glowClass: 'purple', }, @@ -108,7 +99,7 @@ const ToolsSection = () => { return ( <section className="home-snap-section bg-[var(--semi-color-bg-0)]"> - <div className="mx-auto max-w-[1400px] px-4 sm:px-6 lg:px-8"> + <div className="mx-auto w-full max-w-6xl px-5 py-16 md:px-6 lg:px-8"> {/* Header */} <div className="mb-16 flex flex-col items-start justify-between gap-4 sm:mb-20 sm:flex-row sm:items-end sm:gap-6 lg:mb-24"> <h2 className="whitespace-pre-line text-[clamp(1.75rem,5vw,3.5rem)] font-black tracking-[-0.03em]"> @@ -120,7 +111,7 @@ const ToolsSection = () => { </div> {/* Cards Grid */} - <div className="grid grid-cols-1 gap-4 sm:gap-6 md:grid-cols-3"> + <div className="grid grid-cols-1 gap-4 sm:gap-6 md:grid-cols-3 items-stretch"> {tools.map((tool, index) => ( <ToolCard key={index} {...tool} /> ))} diff --git a/web/src/pages/Home/components/ValueSection.jsx b/web/src/pages/Home/components/ValueSection.jsx index b8d568c..196d020 100644 --- a/web/src/pages/Home/components/ValueSection.jsx +++ b/web/src/pages/Home/components/ValueSection.jsx @@ -64,9 +64,9 @@ const ValueSection = () => { <div className="mx-auto w-full max-w-6xl px-5 py-16 md:px-6 lg:px-8"> {/* 标题区域 */} <div> - <Text className="text-sm uppercase tracking-widest text-semi-color-text-2"> - {t('核心价值')} - </Text> + {/*<Text className="text-sm uppercase tracking-widest text-semi-color-text-2">*/} + {/* {t('核心价值')}*/} + {/*</Text>*/} <Title heading={2} className="mt-3 text-3xl font-semibold md:text-4xl"> {t('让团队稳定使用大模型,更快落地 AI 创新')} diff --git a/web/src/pages/Home/components/WorkflowSection.jsx b/web/src/pages/Home/components/WorkflowSection.jsx index 811a808..620f5f3 100644 --- a/web/src/pages/Home/components/WorkflowSection.jsx +++ b/web/src/pages/Home/components/WorkflowSection.jsx @@ -57,7 +57,7 @@ const WorkflowSection = () => {
{/* 标题区域 */}
- + {t('工作流')}