业务定制页面与跳转完善

This commit is contained in:
2025-12-18 11:52:33 +08:00
parent 69fdcabcac
commit dc331b63a5
12 changed files with 380 additions and 267 deletions

View File

@@ -5,6 +5,7 @@ import {Tabs, TabsContent, TabsList, TabsTrigger} from '@/components/ui/tabs'
import LongForm from '@/components/composites/purchase/long/form'
import ShortForm from '@/components/composites/purchase/short/form'
import {usePathname, useRouter, useSearchParams} from 'next/navigation'
import SelfDesc from '@/components/features/self-desc'
export type TabType = 'short' | 'long' | 'fixed' | 'custom'
export default function Purchase() {
@@ -35,6 +36,13 @@ export default function Purchase() {
<TabsContent value="long">
<LongForm/>
</TabsContent>
<TabsContent value="fixed">
</TabsContent>
<TabsContent value="custom">
<SelfDesc onInquiry={() => {
router.push('/custom')
}}/>
</TabsContent>
</Tabs>
</div>
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -0,0 +1,81 @@
import Image from 'next/image'
import {Button} from '@/components/ui/button'
import banner from './Mask-group.webp'
import check from '@/assets/check-accent.svg'
const FEATURES = [
'IP时效3-30分钟(可定制)',
'IP覆盖全国各地',
'稳定长输不掉线',
'支持高并发提取',
'平均响应时长0.03s',
'专属技术支持',
]
export default function SelfDesc(props: {
onInquiry: () => void
}) {
return (
<section className="bg-white rounded-lg overflow-hidden p-6 lg:p-12">
<div className="text-center mb-6 lg:mb-8">
<h1 className="text-2xl lg:text-3xl font-bold">IP服务商</h1>
<p className="text-gray-600 font-medium mt-2 lg:mt-3">
IP代理使用体验
</p>
</div>
<div className="flex flex-col lg:flex-row lg:gap-8">
<div className="w-full lg:w-1/3 mb-6 lg:mb-0">
<div className="relative h-full w-full min-h-60 lg:min-h-[360px] rounded-xl overflow-hidden">
<Image
src={banner}
alt="蓝狐代理业务定制服务展示"
fill
className="object-cover"
priority
sizes="(max-width: 1024px) 100vw, 33vw"
/>
</div>
</div>
<div className="w-full lg:w-2/3 flex flex-col gap-4 lg:gap-6">
<div className="space-y-3 lg:space-y-4">
<p className="text-sm lg:text-base text-gray-600 leading-relaxed">
IP领域访
</p>
<p className="text-sm lg:text-base text-gray-600 leading-relaxed">
IP资源IP稳定
</p>
<p className="text-sm lg:text-base text-gray-600 leading-relaxed">
7×24
</p>
</div>
<div className="mt-2 lg:mt-4">
<Button
className="w-full lg:w-auto bg-blue-600 hover:bg-blue-700 text-white px-6 lg:px-8 py-2 lg:py-3 rounded-md"
onClick={props.onInquiry}
>
</Button>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 lg:gap-4 mt-2 lg:mt-6">
{FEATURES.map((feature, index) => (
<div key={index} className="flex gap-2 items-center text-xs lg:text-sm">
<Image
src={check}
alt="特性"
width={20}
height={20}
className="w-4 h-4 lg:w-5 lg:h-5 shrink-0"
/>
<span>{feature}</span>
</div>
))}
</div>
</div>
</div>
</section>
)
}

View File

@@ -273,7 +273,7 @@ export default function ScenePage(props: ScenePageConfig) {
</div>
<Button
className="bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-md w-fit"
onClick={() => router.push('/customized')}
onClick={() => router.push('/custom')}
>
</Button>