🗺️ 总览大屏地图跳转功能测试

🔍 问题分析

原问题:选择对应员工名后地图没有跳转到该员工所在的位置

✅ 解决方案

1. 问题根因

2. 修复内容

3. 代码修改

用户选择事件处理(5880行附近)

// 用户选择变化时刷新地图
$('#userSelect').change(function() {
    currentUser=$(this).val()
    console.log('currentUser',currentUser);
    updateMapData(lastTotalInfo);
    
    // 🎯 新增:如果选择了特定用户,地图跳转到该用户位置
    if (currentUser && lastTotalInfo) {
        jumpToUserLocation(currentUser, lastTotalInfo);
    }
});

新增函数:jumpToUserLocation(7203行附近)

// 地图跳转到指定用户位置的函数
window.jumpToUserLocation = function(userId, data) {
    console.log('jumpToUserLocation - userId:', userId, 'data:', data);
    
    if (!userId || !data || !map) {
        console.warn('❌ 跳转用户位置失败 - 缺少必要参数');
        return;
    }
    
    try {
        // 从健康数据中查找用户
        const healths = data.health_data?.healthData || [];
        const userHealth = healths.find(h => 
            String(h.user_id || h.userId) === String(userId) ||
            String(h.id) === String(userId)
        );
        
        if (userHealth && userHealth.longitude && userHealth.latitude) {
            const lng = parseFloat(userHealth.longitude);
            const lat = parseFloat(userHealth.latitude);
            
            // 验证坐标有效性并跳转
            if (isValidCoordinate(lng, lat)) {
                console.log(`🎯 地图跳转到用户位置: ${userHealth.userName} (${lng}, ${lat})`);
                map.setCenter([lng, lat]);
                // 保持当前缩放级别不变,只改变中心点
            }
        } else {
            // 如果健康数据中没有,从告警数据中查找
            // ... 告警数据查找逻辑
        }
        
    } catch (error) {
        console.error('❌ 跳转用户位置出错:', error);
    }
};

🧪 测试方法

  1. 访问大屏页面:http://localhost:5001/main?customerId=1
  2. 打开浏览器开发者工具:查看控制台输出
  3. 使用搜索功能:
  4. 观察地图行为:

📋 功能特性

🎮 使用场景

🔧 技术细节

✨ 现在的体验

选择员工后,地图会自动: