| | |
| | | } from '../../constants/confirm-ride-report'; |
| | | import { hasActiveTripOrderInStorage } from '../../utils/order'; |
| | | import { withRobotaxiWhitelist } from '../../../utils/whitelist'; |
| | | import { TripStatus } from '../../constants/trip-status'; |
| | | |
| | | function SiteSearchPage() { |
| | | const [searchValue, setSearchValue] = useState('') //搜索值 |
| | |
| | | return; |
| | | } |
| | | } catch { } |
| | | // 【修改目的地拦截补充】 |
| | | // 正常下单流程在上方已由 isWithinStartEndMinDistance 处理。 |
| | | // 但在“接驾中修改目的地”时,如果后台距离配置(minDistance)未下发或为 0,底层判断会被放行。 |
| | | // 为了防止用户在接驾阶段将目的地改得和原上车点一样(或物理距离极近),此处增加针对 modifySession 活跃状态下的强校验: |
| | | // 1. isSameSite:坐标、ID或名称一致视为同一站点。 |
| | | // 2. isTooClose:物理直线距离小于后台配置的 minDistance(如有)。 |
| | | // 命中任一条件,即阻断并提示“建议步行前往”。 |
| | | if (modifySession?.active) { |
| | | const isPickupTripStatus = [TripStatus.VehicleApproaching, TripStatus.VehicleArrivedPickup].includes(modifySession.tripStatus); |
| | | if (isPickupTripStatus) { |
| | | const isSameSite = isSameModifyDestinationSite(startSiteCache, item); |
| | | const isTooClose = !isWithinStartEndMinDistance({ |
| | | startSite: startSiteCache, |
| | | endSite: item, |
| | | minDistance: resolvedDistanceConfig?.minDistance |
| | | }); |
| | | |
| | | if (isSameSite || isTooClose) { |
| | | setTipType(ORDER_DISTANCE_TIP_TYPE_MIN_DISTANCE); |
| | | setShowTipPopup(true); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | // 检查是否与上一个选择的终点相同 |
| | | if (modifySession?.active && isSameModifyDestinationSite(modifySession?.previousEndSite, item)) { |
| | | Taro.setStorageSync(MODIFY_DESTINATION_PENDING_SAME_SITE_TOAST_KEY, 1); |