'use client' import {update} from '@/actions/user' import {useProfileStore} from '@/components/stores/profile' import {Button} from '@/components/ui/button' import {Form, FormField} from '@/components/ui/form' import {Input} from '@/components/ui/input' import {User} from '@/lib/models' import {merge} from '@/lib/utils' import {zodResolver} from '@hookform/resolvers/zod' import {useEffect, useRef} from 'react' import {useForm} from 'react-hook-form' import {toast} from 'sonner' import z from 'zod' import * as qrcode from 'qrcode' import {Card, CardHeader, CardTitle, CardContent} from '@/components/ui/card' import {QrCodeIcon} from 'lucide-react' import Image from 'next/image' export function Aftersale(props: { profile: User }) { const admin = props.profile.admin_id const canvasRef = useRef(null) useEffect(() => { if (admin && canvasRef.current) { qrcode.toCanvas(canvasRef.current, String(admin), { width: 180, margin: 0, }).catch((err) => { console.error(err) }) } }, [admin]) return ( 关于售后

1.全国100万+动态IP代理资源免费测试,先测后买让您安心使用。

2.注册即享新人福利,专业的客户经理,多维度为您提供在线代理相关答疑

3.1V1专属售后答疑,技术团队7*24小时在线支持提供专属解决方案

您的专属客服经理

logo

扫描上方二维码添加客服经理微信
获取更多帮助与支持

) } export function BasicForm(props: { profile: User }) { const schema = z.object({ username: z.string(), email: z.string(), contact_qq: z.string(), contact_wechat: z.string(), }) type Schema = z.infer const form = useForm({ resolver: zodResolver(schema), defaultValues: { username: props.profile.username || '', email: props.profile.email || '', contact_qq: props.profile.contact_qq || '', contact_wechat: props.profile.contact_wechat || '', }, }) const handler = form.handleSubmit(async (value) => { try { const resp = await update(value) if (!resp.success) { throw new Error(resp.message) } await refreshProfile() toast.success(`保存成功`) } catch (e) { console.error(e) toast.error(`保存失败`, { description: e instanceof Error ? e.message : String(e), }) } }) const refreshProfile = useProfileStore(store => store.refreshProfile) return (

基本信息

name="username" label={用户名} className="grid grid-cols-[48px_1fr] grid-rows-[auto_auto] gap-x-4" classNames={{ message: `col-start-2`, }} > {({field}) => ( )} name="email" label={邮箱} className="grid grid-cols-[48px_1fr] grid-rows-[auto_auto] gap-x-4" classNames={{ message: `col-start-2`, }} > {({field}) => ( )} name="contact_qq" label={QQ} className="grid grid-cols-[48px_1fr] grid-rows-[auto_auto] gap-x-4" classNames={{ message: `col-start-2`, }} > {({field}) => ( )} name="contact_wechat" label={微信} className="grid grid-cols-[48px_1fr] grid-rows-[auto_auto] gap-x-4" classNames={{ message: `col-start-2`, }} > {({field}) => ( )}
) }