From 2a1bbcf60b7baa705cb192f58e7938be0822ed97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 3 Feb 2026 20:09:37 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=B0=A8=EB=9F=89=EC=A0=95=EB=B9=84?= =?UTF-8?q?=EC=9D=B4=EB=A0=A5=20=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=94=94=EB=B2=84=EA=B9=85=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 유효성 검사 메시지 상세화 - 저장 중 버튼 비활성화 및 로딩 표시 - 콘솔 로그 추가하여 디버깅 용이하게 Co-Authored-By: Claude Opus 4.5 --- resources/views/finance/vehicle-maintenance.blade.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/resources/views/finance/vehicle-maintenance.blade.php b/resources/views/finance/vehicle-maintenance.blade.php index a53bb6fd..d5aa84b6 100644 --- a/resources/views/finance/vehicle-maintenance.blade.php +++ b/resources/views/finance/vehicle-maintenance.blade.php @@ -163,7 +163,9 @@ function VehicleMaintenanceManagement() { const handleAdd = () => { setModalMode('add'); setFormData({...initialFormState, vehicleId: vehicles[0]?.id || ''}); setShowModal(true); }; const handleEdit = (item) => { setModalMode('edit'); setEditingItem(item); setFormData({ ...item }); setShowModal(true); }; const handleSave = async () => { - if (!formData.description || !formData.amount) { alert('필수 항목을 입력해주세요.'); return; } + if (!formData.description) { alert('내용을 입력해주세요.'); return; } + if (!formData.amount || formData.amount === '0') { alert('금액을 입력해주세요.'); return; } + if (!formData.vehicleId) { alert('차량을 선택해주세요.'); return; } setSaving(true); try { const payload = { @@ -176,6 +178,7 @@ function VehicleMaintenanceManagement() { vendor: formData.vendor, memo: formData.memo }; + console.log('저장 요청:', payload); const url = modalMode === 'add' ? '/finance/vehicle-maintenance' : `/finance/vehicle-maintenance/${editingItem.id}`; const method = modalMode === 'add' ? 'POST' : 'PUT'; const response = await fetch(url, { @@ -183,7 +186,9 @@ function VehicleMaintenanceManagement() { headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content }, body: JSON.stringify(payload) }); + console.log('응답 상태:', response.status); const result = await response.json(); + console.log('응답 데이터:', result); if (result.success) { await loadMaintenances(); setShowModal(false); @@ -193,7 +198,7 @@ function VehicleMaintenanceManagement() { } } catch (error) { console.error('저장 오류:', error); - alert('저장 중 오류가 발생했습니다.'); + alert('저장 중 오류가 발생했습니다: ' + error.message); } finally { setSaving(false); } @@ -359,7 +364,7 @@ function VehicleMaintenanceManagement() {
{modalMode === 'edit' && } - +