diff --git a/src/app/companies/page.tsx b/src/app/companies/page.tsx
index 8d5fe32..93d095f 100644
--- a/src/app/companies/page.tsx
+++ b/src/app/companies/page.tsx
@@ -65,7 +65,7 @@ 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/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
index bf68925..638060d 100644
--- a/src/components/layout/Sidebar.tsx
+++ b/src/components/layout/Sidebar.tsx
@@ -16,6 +16,7 @@ import {
MapIcon,
ChevronLeftIcon,
ChevronRightIcon,
+ ChartBarIcon,
} from "@heroicons/react/24/outline";
import { useTheme, themes } from "@/contexts/ThemeContext";
import { useAuthStore } from "@/lib/authStore";
@@ -25,6 +26,7 @@ const navigation = [
{ name: "차량", href: "/vehicles", icon: TruckIcon },
{ name: "운행일지", href: "/logs", icon: ClipboardDocumentListIcon },
{ name: "실시간 관제", href: "/monitoring", icon: MapIcon },
+ { name: "분석", href: "/statistics", icon: ChartBarIcon },
{ name: "회사", href: "/companies", icon: BuildingOfficeIcon },
];
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
});