diff --git a/src/app/(home)/product/page.tsx b/src/app/(home)/product/page.tsx
index e9bcefd..32d1087 100644
--- a/src/app/(home)/product/page.tsx
+++ b/src/app/(home)/product/page.tsx
@@ -15,6 +15,11 @@ export default function ProductPage(props: ProductPageProps) {
+
+
+ 为您的业务提供多样化代理产品
+
+
diff --git a/src/components/composites/purchase/_assets/Group.webp b/src/components/composites/purchase/_assets/Group.webp
new file mode 100644
index 0000000..65ae74d
Binary files /dev/null and b/src/components/composites/purchase/_assets/Group.webp differ
diff --git a/src/components/composites/purchase/_assets/Mask-group.webp b/src/components/composites/purchase/_assets/Mask-group.webp
new file mode 100644
index 0000000..fa3b7f0
Binary files /dev/null and b/src/components/composites/purchase/_assets/Mask-group.webp differ
diff --git a/src/components/composites/purchase/custom/page.tsx b/src/components/composites/purchase/custom/page.tsx
new file mode 100644
index 0000000..cd98674
--- /dev/null
+++ b/src/components/composites/purchase/custom/page.tsx
@@ -0,0 +1,244 @@
+'use client'
+import {Form, FormField} from '@/components/ui/form'
+import {Input} from '@/components/ui/input'
+import {Button} from '@/components/ui/button'
+import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from '@/components/ui/select'
+import {useForm} from 'react-hook-form'
+import {z} from 'zod'
+import {zodResolver} from '@hookform/resolvers/zod'
+import Image from 'next/image'
+import check from '@/assets/check-accent.svg'
+import banner from '../_assets/Mask-group.webp'
+import group from '../_assets/Group.webp'
+import {merge} from '@/lib/utils'
+import FreeTrial from '@/components/free-trial'
+
+const formSchema = z.object({
+ companyName: z.string().min(2, '企业名称至少2个字符'),
+ contactName: z.string().min(2, '联系人姓名至少2个字符'),
+ phone: z.string().min(11, '请输入11位手机号码').max(11, '手机号码长度不正确'),
+ monthlyUsage: z.string().min(1, '请选择您需要的用量'),
+ purpose: z.string().min(1, '输入用途'),
+})
+
+type FormValues = z.infer
+
+export default function CollectPage() {
+ const form = useForm({
+ resolver: zodResolver(formSchema),
+ defaultValues: {
+ companyName: '',
+ contactName: '',
+ phone: '',
+ monthlyUsage: '',
+ purpose: '',
+ },
+ })
+
+ return (
+ <>
+
+
+
优质代理IP服务商
+
+ 以技术升级为核心,提供优质的IP代理使用体验
+
+
+
+
+
+
+
+
+ 华连科技公司专注代理IP领域,多年来凭借专业技术与不懈努力,在行业内树立起良好口碑,为众多客户解决网络访问难题。公司拥有海量优质IP资源,涵盖全球多地,能精准匹配不同客户需求,无论是数据采集、网络营销还是突破地域限制,都能提供合适方案。凭借智能分配系统与严密安全防护,确保代理IP稳定、高效、安全运行,让用户使用过程顺畅无忧,数据安全有保障。秉持以客户为中心理念,配备专业客服与技术团队,提供7×24小时服务,助力企业与个人在网络世界畅行无阻,不断开拓业务新边界。
+
+
+
+
+
+
+
+
+
+ IP时效3-30分钟(可定制)
+
+
+
+ IP时效3-30分钟(可定制)
+
+
+
+ IP时效3-30分钟(可定制)
+
+
+
+ 支持高并发提取
+
+
+
+ 支持高并发提取
+
+
+
+ 支持高并发提取
+
+
+
+
+
+
+
+
企业基本信息
+
+
+
+
+
+
+
+
+
+
+ 现在注册,免费领取5000IP
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/src/components/composites/purchase/index.tsx b/src/components/composites/purchase/index.tsx
index 9508b95..3426191 100644
--- a/src/components/composites/purchase/index.tsx
+++ b/src/components/composites/purchase/index.tsx
@@ -4,6 +4,7 @@ import {merge} from '@/lib/utils'
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 Custom from '@/components/composites/purchase/custom/page'
import {usePathname, useRouter, useSearchParams} from 'next/navigation'
import SelfDesc from '@/components/features/self-desc'
export type TabType = 'short' | 'long' | 'fixed' | 'custom'
diff --git a/src/components/composites/purchase/long/right.tsx b/src/components/composites/purchase/long/right.tsx
index 1baa271..66e25e6 100644
--- a/src/components/composites/purchase/long/right.tsx
+++ b/src/components/composites/purchase/long/right.tsx
@@ -26,8 +26,6 @@ export default function Right() {
const live = useWatch({control, name: 'live'})
const quota = useWatch({control, name: 'quota'})
const expire = useWatch({control, name: 'expire'})
- const dailyLimit = useWatch({control, name: 'daily_limit'})
-
const [price, setPrice] = useState('0.00')
useEffect(() => {
@@ -58,7 +56,7 @@ export default function Right() {
}
}
price()
- }, [dailyLimit, expire, live, quota, mode])
+ }, [expire, live, quota, mode])
return (
每日限额
- {dailyLimit}
+ {quota}
个
@@ -115,7 +113,7 @@ export default function Right() {
-
+
)
@@ -128,7 +126,6 @@ function BalanceOrLogin(props: {
live: string
quota: number
expire: string
- dailyLimit: number
}) {
const profile = use(useProfileStore(store => store.profile))
return profile ? (
@@ -189,7 +186,7 @@ function BalanceOrLogin(props: {
mode: Number(props.mode),
live: Number(props.live),
expire: Number(props.expire),
- quota: props.mode === '1' ? props.dailyLimit : props.quota,
+ quota: props.quota,
},
}}/>
>
diff --git a/src/components/composites/purchase/short/right.tsx b/src/components/composites/purchase/short/right.tsx
index 3ff4973..5c26af8 100644
--- a/src/components/composites/purchase/short/right.tsx
+++ b/src/components/composites/purchase/short/right.tsx
@@ -22,10 +22,8 @@ export default function Right() {
const method = useWatch({control, name: 'pay_type'})
const live = useWatch({control, name: 'live'})
const mode = useWatch({control, name: 'type'})
- const dailyLimit = useWatch({control, name: 'daily_limit'})
const expire = useWatch({control, name: 'expire'})
const quota = useWatch({control, name: 'quota'})
-
const [price, setPrice] = useState('0.00')
useEffect(() => {
const price = async () => {
@@ -55,7 +53,7 @@ export default function Right() {
}
}
price()
- }, [dailyLimit, expire, live, quota, mode])
+ }, [expire, live, quota, mode])
return (
每日限额
- {dailyLimit}
+ {quota}
个
@@ -113,7 +111,7 @@ export default function Right() {
-
+
)
@@ -126,7 +124,6 @@ function BalanceOrLogin(props: {
live: string
quota: number
expire: string
- dailyLimit: number
}) {
const profile = use(useProfileStore(store => store.profile))
return profile ? (
@@ -187,7 +184,7 @@ function BalanceOrLogin(props: {
mode: Number(props.mode),
live: Number(props.live),
expire: Number(props.expire),
- quota: props.mode === '1' ? props.dailyLimit : props.quota,
+ quota: props.quota,
},
}}/>
>
diff --git a/src/components/wrap.tsx b/src/components/wrap.tsx
index f2e9a29..c121cc7 100644
--- a/src/components/wrap.tsx
+++ b/src/components/wrap.tsx
@@ -7,7 +7,7 @@ export type WrapProps = {
export default function Wrap(props: WrapProps) {
return (
-