diff --git a/src/app/companies/page.tsx b/src/app/companies/page.tsx index 8d5fe32..c50b921 100644 --- a/src/app/companies/page.tsx +++ b/src/app/companies/page.tsx @@ -36,36 +36,13 @@ export default function CompaniesPage() { router.push('/employees/add'); }; - const handleExportData = () => { - // 데이터를 CSV 형식으로 변환 - if (!company) return; - - const companyData = [ - ['회사명', '주소', '연락처', '이메일', '웹사이트', '설명'], - [company.name, company.address, company.phone, company.email, company.website, company.description] - ]; - - // CSV 문자열 생성 - const csvContent = companyData.map(row => row.map(cell => `"${String(cell).replace(/"/g, '""')}"`).join(',')).join('\n'); - - // Blob 생성 및 다운로드 - const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.setAttribute('href', url); - link.setAttribute('download', `${company.name}_정보.csv`); - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - }; - return (
@@ -78,20 +55,10 @@ export default function CompaniesPage() { 새 직원 추가 - -
-
+
{isLoading ? (
회사 정보를 불러오는 중... @@ -116,7 +83,7 @@ export default function CompaniesPage() { )}
-
+

인력 관리

@@ -129,16 +96,6 @@ export default function CompaniesPage() { 추가 - -
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index cfbe28b..b7dded9 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -459,6 +459,7 @@ export default function DashboardPage() { }, ticks: { color: currentTheme.mode === 'dark' ? 'rgba(255, 255, 255, 0.7)' : 'rgba(0, 0, 0, 0.7)', + callback: (value) => `${Number(value).toLocaleString()} km` }, }, x: { @@ -474,6 +475,11 @@ export default function DashboardPage() { legend: { display: false, }, + tooltip: { + callbacks: { + label: (context) => `${Number(context.raw).toLocaleString()} km` + } + } }, }} /> diff --git a/src/app/logs/page.tsx b/src/app/logs/page.tsx index 4466ea8..66205f5 100644 --- a/src/app/logs/page.tsx +++ b/src/app/logs/page.tsx @@ -6,8 +6,6 @@ import { VehicleLogList } from "@/components/logs/VehicleLogList"; import { VehicleLogFilter } from "@/components/logs/VehicleLogFilter"; import { VehicleLogFilter as FilterType, VehicleLog, DriveType } from "@/types/logs"; import { useTheme } from "@/contexts/ThemeContext"; -import { ArrowDownTrayIcon } from "@heroicons/react/24/outline"; -import { downloadExcel } from "@/lib/utils"; import VehicleLogDetailSlidePanel from "@/components/logs/VehicleLogDetailSlidePanel"; import { useCarLogsStore } from "@/lib/carLogsStore"; @@ -59,10 +57,6 @@ export default function LogsPage() { }, 300); }; - const handleExportExcel = (logs: VehicleLog[]) => { - downloadExcel(logs, 'vehicle-logs'); - }; - const handleDeleteLog = (id: string) => { console.log(`삭제할 운행 기록 ID: ${id}`); @@ -88,41 +82,6 @@ export default function LogsPage() { title="운행일지" description="차량 운행 기록을 관리하고 조회할 수 있습니다." /> -
@@ -136,7 +95,6 @@ export default function LogsPage() {
void; - onLogSelect?: (log: VehicleLog) => void; + onLogSelect: (log: VehicleLog) => void; isSlideOpen?: boolean; onCloseSlide?: () => void; - selectedLog?: VehicleLog | null; + selectedLog: VehicleLog | null; isLoading?: boolean; } export function VehicleLogList({ filter, searchTerm = '', - onExport, onLogSelect, isSlideOpen = false, onCloseSlide, diff --git a/src/lib/carLogsStore.ts b/src/lib/carLogsStore.ts index 2a81260..cbcec9b 100644 --- a/src/lib/carLogsStore.ts +++ b/src/lib/carLogsStore.ts @@ -97,37 +97,29 @@ export const useCarLogsStore = create((set, get) => ({ const endDate = params?.endDate !== undefined ? params.endDate : currentFilter.endDate; const driveType = params?.driveType !== undefined ? params.driveType : currentFilter.driveType; - const requestBody: Record = {}; + // 쿼리 파라미터 구성 + const queryParams = new URLSearchParams(); + queryParams.append('page', page.toString()); + queryParams.append('size', size.toString()); if (vehicleNumber) { - requestBody.mdn = vehicleNumber; + queryParams.append('mdn', vehicleNumber); } if (startDate) { - const formattedStartDate = new Date(startDate); - formattedStartDate.setHours(0, 0, 0, 0); - - // 한국 시간대로 변환 (UTC+9) - const koreaTimeString = formatToKoreaTime(formattedStartDate, true); - requestBody.startTime = koreaTimeString; + queryParams.append('from', startDate); } if (endDate) { - const formattedEndDate = new Date(endDate); - formattedEndDate.setHours(23, 59, 59, 999); - - // 한국 시간대로 변환 (UTC+9) - const koreaTimeString = formatToKoreaTime(formattedEndDate, false); - requestBody.endTime = koreaTimeString; + queryParams.append('to', endDate); } if (driveType) { - requestBody.driveType = driveType; + queryParams.append('driveType', driveType); } - const data = await fetchApi<{data: any, message: string, statusCode: number}>(`/api/carLogs?page=${page}&size=${size}`, undefined, { - method: 'POST', - body: JSON.stringify(requestBody) + const data = await fetchApi<{data: any, message: string, statusCode: number}>(`/api/carLogs?${queryParams.toString()}`, undefined, { + method: 'GET' }); // 새로운 API 응답 형식 처리 (data 필드에 실제 데이터가 있음) @@ -180,14 +172,14 @@ export const useCarLogsStore = create((set, get) => ({ method: 'GET' }); - // 새로운 API 응답 형식 처리 (data 필드에 실제 데이터가 있음) + // 새로운 API 응답 형식 처리 const data = response.data || response; set({ stats: { totalMileage: data.totalMileage || 0, carLogsCount: data.carLogsCount || "0", - monthlyMileages: data.monthlyMileages || [] + monthlyMileages: Array.isArray(data) ? data : [] }, isLoading: false });