'use client' import { useState } from "react" import { useRouter } from "next/navigation" export default function AgentForm({ categories, agent, }: { categories: { id: number; name: string }[] agent?: { id?: number name: string slug: string description: string icon?: string categoryId?: number features?: string hotQuestions?: string quickQuestions?: string status?: string } }) { const router = useRouter() const [formData, setFormData] = useState({ name: agent?.name || "", slug: agent?.slug || "", description: agent?.description || "", icon: agent?.icon || "", categoryId: agent?.categoryId || "", features: agent?.features || "", hotQuestions: agent?.hotQuestions ? JSON.parse(agent.hotQuestions).join('\n') : '', quickQuestions: agent?.quickQuestions ? JSON.parse(agent.quickQuestions).join('\n') : '', status: agent?.status || "active", }) const [loading, setLoading] = useState(false) const [error, setError] = useState("") const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setError("") try { const url = agent?.id ? `/api/admin/agents/${agent.id}` : "/api/admin/agents" const method = agent?.id ? "PUT" : "POST" const body = { ...formData, hotQuestions: JSON.stringify(formData.hotQuestions.split('\n').filter(q => q.trim())), quickQuestions: JSON.stringify(formData.quickQuestions.split('\n').filter(q => q.trim())), } const res = await fetch(url, { method, headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), }) if (res.ok) { router.push("/admin/agents") } else { setError("保存失败") } } catch (err) { setError("保存失败,请稍后重试") } finally { setLoading(false) } } return (
{error && (
{error}
)}
setFormData({ ...formData, name: e.target.value })} className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" placeholder="智能客服助手" />
setFormData({ ...formData, slug: e.target.value })} className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" placeholder="smart-customer-service" />