zjk
2026-06-13 7fbf2dd8720885ea61a54936bd050d10e725396f
fix(share-trip): 修复车辆标记就绪通知及平移任务处理逻辑

简化 use-vehicle-tracking.ts 中的平移任务处理流程
移除 use-map-markers.ts 中的重复触发限制,确保标记就绪时正确通知回调
2个文件已修改
19 ■■■■■ 已修改文件
src/robotaxi/pages/share-trip/hooks/use-map-markers.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/share-trip/hooks/use-vehicle-tracking.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/share-trip/hooks/use-map-markers.ts
@@ -74,7 +74,6 @@
    const markersSignatureRef = useRef<string>("");
    const carMarkerInitialized = useRef(false);
    const tripStatus6MarkerRefreshedRef = useRef(false);
    const readyNotifiedMarkerIdRef = useRef<number | null>(null);
    const shouldUsePureTranslateCarMarker =
        [TripStatus.VehicleApproaching, TripStatus.InService].includes(deps.tripStatus)
        && deps.statusRule.showCar;
@@ -260,13 +259,8 @@
    useEffect(() => {
        const hasVehicleMarker = deps.statusRule.showCar && markers.some((item: any) => item.id === deps.vehicleMarkerId);
        if (!hasVehicleMarker) {
            readyNotifiedMarkerIdRef.current = null;
            return;
        }
        if (readyNotifiedMarkerIdRef.current === deps.vehicleMarkerId) {
            return;
        }
        readyNotifiedMarkerIdRef.current = deps.vehicleMarkerId;
        Taro.nextTick(() => {
            deps.onVehicleMarkerReady();
        });
src/robotaxi/pages/share-trip/hooks/use-vehicle-tracking.ts
@@ -146,13 +146,12 @@
                    if (translateSessionId !== translateSessionIdRef.current) {
                        return;
                    }
                    // marker 尚未正确挂载时不要把本次旋转记成已完成,等待 marker ready 后重试。
                    pendingTranslateRef.current = task;
                    vehicleMarkerReadyRef.current = false;
                    isTranslatingRef.current = false;
                    if (fallbackTimer) {
                        clearTimeout(fallbackTimer);
                    }
                    lastAppliedTranslateTaskRef.current = {
                        latitude: task.latitude,
                        longitude: task.longitude,
                        rotate: task.rotate
                    };
                    finishTranslate();
                }
            });
        });