feat: 使用固定车图,解决派车成功动效车图闪烁问题
Co-Authored-By: 卢春龙 <lucl@xiaopeng.com>
| | |
| | | /** 默认车辆图(无实拍车图时的兜底)。 */ |
| | | export const DEFAULT_VEHICLE_IMG = 'https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/default-vehicle-img-20260724-v2.png'; |
| | | |
| | | /** |
| | | * 是否使用接口(queryVehicleByOrderId)动态返回的车图。 |
| | | * |
| | | * 背景:当前线上只有一种车型,产品要求统一用默认车图 DEFAULT_VEHICLE_IMG, |
| | | * 暂不使用接口返回的动态车图(vehicleInfo.vehiclePictures.url)。 |
| | | * |
| | | * 后续有新车型、需要按车型展示实拍车图时,把此开关改回 true 即可完全恢复动态车图逻辑, |
| | | * 无需改动其余代码(车图渲染处 calling-car.tsx、dispatch-transition-layer.tsx 均已按此开关分流; |
| | | * 默认车图 DEFAULT_VEHICLE_IMG 已在 constants/preload-assets.ts 静态预加载,展示无闪烁)。 |
| | | */ |
| | | export const USE_DYNAMIC_VEHICLE_IMG = false; |
| | | |
| | | /** 到达终点 / 行程结束卡片背景图。 */ |
| | | export const TRIP_FINISHED_BG_IMG = 'https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/trip-finished-20260703.png'; |
| | | |
| | |
| | | import { useDispatchTransition } from '../hooks/use-dispatch-transition'; |
| | | import DispatchTransitionLayer from './dispatch-transition-layer'; |
| | | import { TripStatus } from '../../../constants/trip-status'; |
| | | import { CARD_BG_IMG, DEFAULT_VEHICLE_IMG, TRIP_FINISHED_BG_IMG } from '../../../constants/assets'; |
| | | import { CARD_BG_IMG, DEFAULT_VEHICLE_IMG, TRIP_FINISHED_BG_IMG, USE_DYNAMIC_VEHICLE_IMG } from '../../../constants/assets'; |
| | | import { BLUETOOTH_ICON_OFF } from '../hooks/use-bluetooth-access'; // 蓝牙未开/未授权图标 |
| | | import TripStatusHeader from './calling-car-modules/trip-status-header'; // 行程状态头 |
| | | import VehicleInfoCard from './calling-car-modules/vehicle-info-card'; // 车辆信息卡片 |
| | |
| | | // 常驻车图:接驾/行程中/支付成功且有车牌时展示。转场期间车模兜底由 DispatchTransitionLayer 渲染。 |
| | | ([TripStatus.VehicleApproaching, TripStatus.VehicleArrivedPickup, TripStatus.InService, TripStatus.PaymentSuccess].includes(tripStatus) && vehicleInfo?.plateNumber) && <Image |
| | | className='calling-car-vehicle-pic' |
| | | src={safeParse(vehicleInfo?.vehiclePictures, {})?.url || DEFAULT_VEHICLE_IMG} |
| | | // 当前只有一种车型,产品要求统一用默认车图(USE_DYNAMIC_VEHICLE_IMG=false); |
| | | // 后续有新车型时把该开关改回 true 即恢复接口动态车图。详见 constants/assets.ts。 |
| | | src={USE_DYNAMIC_VEHICLE_IMG ? (safeParse(vehicleInfo?.vehiclePictures, {})?.url || DEFAULT_VEHICLE_IMG) : DEFAULT_VEHICLE_IMG} |
| | | /> |
| | | } |
| | | <View className='calling-car-content-box'> |
| | |
| | | import { Image, Video } from "@tarojs/components"; |
| | | import { safeParse } from '../../../../utils/Robotaxi-public-method'; |
| | | import { DispatchPhase, DISPATCH_VIDEO_SRC, DISPATCH_VIDEO_POSTER, DISPATCH_VIDEO_END_POSTER } from '../hooks/use-dispatch-transition'; |
| | | import { CARD_BG_IMG, DEFAULT_VEHICLE_IMG } from '../../../constants/assets'; |
| | | import { CARD_BG_IMG, DEFAULT_VEHICLE_IMG, USE_DYNAMIC_VEHICLE_IMG } from '../../../constants/assets'; |
| | | import { getPreloadedVideoSrc } from '../../../utils/video-preload'; |
| | | |
| | | type Props = { |
| | |
| | | |
| | | if (!shouldPlayEnter || transitionDone) return null; |
| | | |
| | | const vehiclePicSrc = safeParse(vehicleInfo?.vehiclePictures, {})?.url |
| | | || DEFAULT_VEHICLE_IMG; |
| | | // 当前只有一种车型,产品要求统一用默认车图(USE_DYNAMIC_VEHICLE_IMG=false); |
| | | // 后续有新车型时把该开关改回 true 即恢复接口动态车图。详见 constants/assets.ts。 |
| | | const vehiclePicSrc = USE_DYNAMIC_VEHICLE_IMG |
| | | ? (safeParse(vehicleInfo?.vehiclePictures, {})?.url || DEFAULT_VEHICLE_IMG) |
| | | : DEFAULT_VEHICLE_IMG; |
| | | |
| | | // 优先用预下载好的本地视频路径(downloadFile 落地,无网络缓冲);未就绪回退 CDN URL。 |
| | | const videoSrc = getPreloadedVideoSrc(DISPATCH_VIDEO_SRC); |