diff --git a/frontend/src/app/admin/cars/page.tsx b/frontend/src/app/admin/cars/page.tsx index 557ce79..b7eefa0 100644 --- a/frontend/src/app/admin/cars/page.tsx +++ b/frontend/src/app/admin/cars/page.tsx @@ -4,7 +4,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useSearchParams, useRouter } from 'next/navigation'; import Image from 'next/image'; import { Reorder, useDragControls } from 'framer-motion'; -import api, { heroBannersApi, carmodooApi, vehicleRequestsApi, carsApi } from '@/lib/api'; +import api, { heroBannersApi, carmodooApi, vehicleRequestsApi, carsApi, ccApi } from '@/lib/api'; import { translateCarName } from '@/lib/i18n'; import { jsPDF } from 'jspdf'; @@ -1317,7 +1317,8 @@ export default function CarsAdminPage() { } const carName = selectedCar.car_name.replace(/[^a-zA-Z0-9가-힣\s]/g, '').trim(); - pdf.save(`${carName}_images.pdf`); + const carNumber = selectedCar.car_number?.replace(/\s/g, '') || 'unknown'; + pdf.save(`${carName}_${carNumber}.pdf`); } catch (error) { console.error('PDF generation failed:', error); alert('PDF generation failed. Please try again.'); @@ -1326,6 +1327,37 @@ export default function CarsAdminPage() { } }; + const [perfPdfDownloading, setPerfPdfDownloading] = useState(false); + + const handleDownloadPerformanceCheckPdf = async () => { + if (!selectedCar) return; + + setPerfPdfDownloading(true); + try { + const blob = await ccApi.downloadPerformanceCheckPdf(selectedCar.id); + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + const carName = selectedCar.car_name.replace(/[^a-zA-Z0-9가-힣\s]/g, '').trim(); + const carNumber = selectedCar.car_number?.replace(/\s/g, '') || 'unknown'; + a.download = `${carName}_${carNumber}_성능점검표.pdf`; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + window.URL.revokeObjectURL(url); + } catch (error: any) { + console.error('Performance check PDF download failed:', error); + const status = error.response?.status; + if (status === 404) { + alert('Performance check PDF not available for this car.'); + } else { + alert('Failed to download performance check PDF.'); + } + } finally { + setPerfPdfDownloading(false); + } + }; + const handleEditComment = () => { if (dealerComment) { setEditCommentData({ @@ -2737,12 +2769,12 @@ export default function CarsAdminPage() { {/* Modal Header */}