/** * 廠商新增/編輯表單對話框 */ import { useEffect, useState } from "react"; import { Button } from "@/Components/ui/button"; import { Input } from "@/Components/ui/input"; import { Label } from "@/Components/ui/label"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from "@/Components/ui/dialog"; import type { Supplier, SupplierFormData } from "@/types/vendor"; interface VendorFormDialogProps { open: boolean; supplier: Supplier | null; onClose: () => void; onSave: (data: SupplierFormData) => void; } const initialFormData: SupplierFormData = { name: "", contact: "", phone: "", email: "", }; export default function VendorFormDialog({ open, supplier, onClose, onSave, }: VendorFormDialogProps) { const [formData, setFormData] = useState(initialFormData); const isEditing = !!supplier; useEffect(() => { if (supplier) { setFormData({ name: supplier.name, contact: supplier.contact || "", phone: supplier.phone || "", email: supplier.email || "", }); } else { setFormData(initialFormData); } }, [supplier, open]); const handleSave = () => { onSave(formData); setFormData(initialFormData); }; const handleCancel = () => { onClose(); setFormData(initialFormData); }; return ( {isEditing ? "編輯廠商" : "新增廠商"} {isEditing ? "編輯供應商的詳細資料。" : "新增供應商的詳細資料。"}

基本資料

setFormData({ ...formData, name: e.target.value })} className="mt-1" />
setFormData({ ...formData, contact: e.target.value })} className="mt-1" />
setFormData({ ...formData, phone: e.target.value })} className="mt-1" />
setFormData({ ...formData, email: e.target.value })} className="mt-1" />
); }