2025-04-08 11:21:58 +08:00
|
|
|
'use client'
|
2026-03-13 14:13:06 +08:00
|
|
|
import {useForm} from 'react-hook-form'
|
2025-05-22 14:59:22 +08:00
|
|
|
import Center from '@/components/composites/purchase/short/center'
|
|
|
|
|
import Right from '@/components/composites/purchase/short/right'
|
2025-04-08 11:21:58 +08:00
|
|
|
import {Form} from '@/components/ui/form'
|
|
|
|
|
import * as z from 'zod'
|
|
|
|
|
import {zodResolver} from '@hookform/resolvers/zod'
|
|
|
|
|
|
|
|
|
|
// 定义表单验证架构
|
|
|
|
|
const schema = z.object({
|
|
|
|
|
type: z.enum(['1', '2']).default('2'),
|
2026-03-30 13:11:40 +08:00
|
|
|
live: z.enum(['3', '5', '10', '15', '30']),
|
2025-04-08 11:21:58 +08:00
|
|
|
quota: z.number().min(10000, '购买数量不能少于10000个'),
|
|
|
|
|
expire: z.enum(['7', '15', '30', '90', '180', '365']),
|
|
|
|
|
daily_limit: z.number().min(2000, '每日限额不能少于2000个'),
|
|
|
|
|
pay_type: z.enum(['wechat', 'alipay', 'balance']),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 从架构中推断类型
|
|
|
|
|
export type Schema = z.infer<typeof schema>
|
|
|
|
|
|
2026-03-13 14:13:06 +08:00
|
|
|
export default function ShortForm() {
|
2025-04-08 11:21:58 +08:00
|
|
|
const form = useForm<Schema>({
|
|
|
|
|
resolver: zodResolver(schema),
|
|
|
|
|
defaultValues: {
|
|
|
|
|
type: '2', // 默认为包量套餐
|
2026-03-30 13:11:40 +08:00
|
|
|
live: '3', // 分钟
|
2025-04-08 11:21:58 +08:00
|
|
|
quota: 10_000, // >= 10000
|
|
|
|
|
expire: '30', // 天
|
|
|
|
|
daily_limit: 2_000, // >= 2000
|
2026-03-31 16:11:36 +08:00
|
|
|
pay_type: 'balance', // 余额支付
|
2025-04-08 11:21:58 +08:00
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return (
|
2025-06-09 19:04:25 +08:00
|
|
|
<Form form={form} className="flex flex-col lg:flex-row gap-4">
|
2025-05-22 14:59:22 +08:00
|
|
|
<Center/>
|
|
|
|
|
<Right/>
|
|
|
|
|
</Form>
|
2025-04-08 11:21:58 +08:00
|
|
|
)
|
|
|
|
|
}
|