'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { ArrowLeft, Save } from 'lucide-react'; export default function AddBookPage() { const router = useRouter(); const [saving, setSaving] = useState(false); const [formData, setFormData] = useState({ isbn: '', title: '', authors: '', publisher: '', publishDate: '', price: '', classificationNo: '', location: '', totalCopies: '1', availableCopies: '1', status: 'normal', description: '', coverUrl: '', }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setSaving(true); try { const createData = { isbn: formData.isbn, title: formData.title, authors: formData.authors.split(',').map(author => author.trim()).filter(Boolean), publisher: formData.publisher || null, publishDate: formData.publishDate || null, price: formData.price ? parseFloat(formData.price) : null, classificationNo: formData.classificationNo || null, location: formData.location || null, totalCopies: parseInt(formData.totalCopies), availableCopies: parseInt(formData.availableCopies), status: formData.status, description: formData.description || null, coverUrl: formData.coverUrl || null, }; const response = await fetch('/api/books', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(createData), }); if (response.ok) { const book = await response.json(); router.push(`/admin/books/${book.bookId}`); } else { const errorData = await response.json(); alert(`添加失败: ${errorData.error || 'Unknown error'}`); } } catch (error) { console.error('Create error:', error); alert('添加失败'); } finally { setSaving(false); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; return (
{/* Header */}

添加图书

{/* Form */}