'use client'; import React, { useState, useEffect } from 'react'; import { SystemSetting } from '@/types'; import { Settings, Save, Check, RefreshCw, Building, Phone, Mail, CreditCard, FileText } from 'lucide-react'; export const SettingsManager: React.FC = () => { const [settings, setSettings] = useState({ companyName: '', companyAddress: '', companyPhone: '', companyEmail: '', bankAccount: '', bankName: '', quoteFooterNote: '', defaultProfitMargin: 25, defaultVatPercent: 8, }); const [loading, setLoading] = useState(true); const [saved, setSaved] = useState(false); const fetchSettings = async () => { try { setLoading(true); const res = await fetch('/api/settings'); const data = await res.json(); setSettings(data); } catch (err) { console.error(err); } finally { setLoading(false); } }; useEffect(() => { fetchSettings(); }, []); const handleSave = async (e: React.FormEvent) => { e.preventDefault(); try { const res = await fetch('/api/settings', { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(settings), }); if (res.ok) { setSaved(true); setTimeout(() => setSaved(false), 2500); } } catch (err) { console.error(err); } }; return (

Cấu Hình Thông Tin Xưởng In & Mặc Định

Thông tin xuất hiện trên Phiếu Báo Giá gửi khách và Lệnh Sản Xuất

{saved && (
Đã lưu thông tin cấu hình hệ thống thành công!
)}
setSettings({ ...settings, companyName: e.target.value })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, companyAddress: e.target.value })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, companyPhone: e.target.value })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, companyEmail: e.target.value })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, bankAccount: e.target.value })} placeholder="VD: 19038889999999 - CTK: PRINTCAL" className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, bankName: e.target.value })} placeholder="VD: Techcombank CN TP.HCM" className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, defaultProfitMargin: Number(e.target.value) })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />
setSettings({ ...settings, defaultVatPercent: Number(e.target.value) })} className="w-full border border-slate-300 rounded-lg p-2.5 focus:ring-1 focus:ring-blue-500" />