hejianhao
2026-05-27 7cc7fd6d4ffa7c102359810400a995cd936380cf
fix(robotaxi): 修复修改目的地权限被socket撤销的处理逻辑
2个文件已修改
38 ■■■■■ 已修改文件
src/robotaxi/pages/begin-route/index.tsx 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/Robotaxi-public-method.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/index.tsx
@@ -557,11 +557,11 @@
    if (!isTripStatusAllowModifyEntry) {
      return false;
    }
    if (tripStatus !== TripStatus.InService) {
      return true;
    }
    if (modifyDestinationSocketStatus === 0) {
      return false;
    }
    if (tripStatus !== TripStatus.InService) {
      return true;
    }
    if (modifyDestinationSocketStatus === 1) {
      return true;
@@ -969,16 +969,46 @@
      routeRequestOrderRoute(orderId, tripStatus);
    }
  };
  // 修改目的地资格被 socket 撤销后,统一退出预览态并提示用户
  const handleModifyDestinationSocketDisabled = () => {
    const modifyDestinationSession = Taro.getStorageSync(MODIFY_DESTINATION_SESSION_KEY);
    const fallbackPreviousEndSite = modifyDestinationSession?.previousEndSite || previousEndSite;
    restoreModifyDestinationDisplay(fallbackPreviousEndSite, previousFareEstimate, previousRoutePoints);
    openModifyDestinationFailPopup('即将到达终点,已无法修改目的地');
  };
  // 失败弹窗确认后退出修改目的地确认态,并恢复修改前路线
  const handleAcknowledgeModifyDestinationFail = () => {
    setShowModifyDestinationFailPopup(false);
    setModifyDestinationFailMessage('');
    const modifyDestinationSession = Taro.getStorageSync(MODIFY_DESTINATION_SESSION_KEY);
    const hasActiveModifyDestinationSession = Boolean(modifyDestinationSession?.active);
    if (!isModifyDestinationReviewVisible && !hasActiveModifyDestinationSession) {
      return;
    }
    const fallbackPreviousEndSite = modifyDestinationSession?.previousEndSite;
    restoreModifyDestinationDisplay(fallbackPreviousEndSite, previousFareEstimate, previousRoutePoints);
  };
  // 预览态下如果后端推送“不可修改”,立即退出预览态并恢复原路线
  useEffect(() => {
    if (!isModifyDestinationReviewVisible || modifyDestinationSocketStatus !== 0) {
      return;
    }
    handleModifyDestinationSocketDisabled();
  }, [
    isModifyDestinationReviewVisible,
    modifyDestinationSocketStatus,
    previousEndSite,
    previousFareEstimate,
    previousRoutePoints,
    orderId,
    tripStatus
  ]);
  // 确认修改前进行阈值校验,命中限制或接口失败都展示失败弹窗
  const handleConfirmModifyDestinationWithGuard = async (selectedRoute?: any) => {
    if (modifyDestinationSocketStatus === 0) {
      handleModifyDestinationSocketDisabled();
      return;
    }
    const currentDistance = Number(orderRouteMetrics?.distanceMeters);
    const currentDurationSeconds = Number(orderRouteMetrics?.durationSeconds);
    const distanceLimit = Number(distanceConfig?.xczSyDistance);
src/utils/Robotaxi-public-method.ts
@@ -1083,7 +1083,7 @@
  }
}
// 埋点
// mvp埋点
export const reportEvent = async (eventId: string, para: any) => {
  let appVersion = '';
  const $app: any = Taro.getApp().$app;