diff --git a/meteor-frontend/src/app/camera-settings/page.tsx b/meteor-frontend/src/app/camera-settings/page.tsx index 713cc29..9f102de 100644 --- a/meteor-frontend/src/app/camera-settings/page.tsx +++ b/meteor-frontend/src/app/camera-settings/page.tsx @@ -45,26 +45,29 @@ export default function CameraSettingsPage() { const handleSelectCamera = async (cameraId: string) => { try { setLoading(true); - - // 获取相机详细信息 - const camera = cameras.find(c => c.deviceId === cameraId); + + // 使用 id 查找相机 + const camera = cameras.find(c => c.id === cameraId); if (camera) { setCameraDetails(camera); setSelectedCamera(cameraId); - - // 获取历史数据 - const historyData = await cameraService.getCameraHistory(cameraId); - const formattedHistory: CameraHistoryRecord[] = historyData.map(item => ({ - date: new Date(item.time).toLocaleString(), - status: 'active' as const, // API doesn't provide status in history, defaulting to active - temperature: item.temperature, - coolerPower: item.coolerPower, - gain: item.gain, - exposureCount: undefined, - uptime: undefined - })); - - setCameraHistory(formattedHistory); + + // 只有当 deviceId 存在时才获取历史数据 + if (camera.deviceId) { + const historyData = await cameraService.getCameraHistory(camera.deviceId); + const formattedHistory: CameraHistoryRecord[] = historyData.map(item => ({ + date: new Date(item.time).toLocaleString(), + status: 'active' as const, // API doesn't provide status in history, defaulting to active + temperature: item.temperature, + coolerPower: item.coolerPower, + gain: item.gain, + exposureCount: undefined, + uptime: undefined + })); + setCameraHistory(formattedHistory); + } else { + setCameraHistory([]); + } } } catch (error) { console.error('获取相机详细信息失败:', error); @@ -160,7 +163,7 @@ export default function CameraSettingsPage() {
{cameraDetails.location}
+{cameraDetails.location?.site_name || cameraDetails.legacyLocation || '未知'}