zjk
2026-07-29 429208957f30ab9eedc5533a81aaa284048d09f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import { View, Image } from '@tarojs/components';
import { safeParse } from '../../../../../utils/Robotaxi-public-method';
import { TripStatus } from '../../../../../robotaxi/constants/trip-status';
 
type HomeTripStatus = TripStatus | 0;
 
type Props = {
  /** 行程状态 */
  tripStatus: HomeTripStatus;
  /** 订单信息 */
  orderData: any;
  /** 查看详情回调 */
  onViewDetail: () => void;
  /** 状态文案映射 */
  orderStatusMap: Partial<Record<TripStatus, string>>;
};
 
/**
 * 订单状态卡片。
 */
export default function OrderStatusCard({ tripStatus, orderData, onViewDetail, orderStatusMap }: Props) {
  if (![TripStatus.CallingCar, TripStatus.VehicleApproaching, TripStatus.VehicleArrivedPickup, TripStatus.InService, TripStatus.ArrivedDestination, TripStatus.TripFinished].includes(tripStatus as TripStatus)) {
    return null;
  }
 
  return (
    <View className="order-status">
      {
        [TripStatus.CallingCar].includes(tripStatus as TripStatus) &&
        <View className="order-status-left">
          <View className="order-status-left-item">
            <Image className="order-status-left-item-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/pointer.png" />
            <View></View>
            <View></View>
          </View>
          <View className="order-status-left-text">正在为您呼叫...</View>
        </View>
      }
      {
        [TripStatus.VehicleApproaching, TripStatus.VehicleArrivedPickup, TripStatus.InService, TripStatus.ArrivedDestination, TripStatus.TripFinished].includes(tripStatus as TripStatus) &&
        <View className="order-status-left">
          {
            orderData.vehiclePictures
              ? <Image className="order-status-left-icon" src={safeParse(orderData.vehiclePictures, {})?.url || 'https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/default-vehicle-img-20260724-v2.png'} />
              : <Image className="order-status-left-icon" src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/default-vehicle-img-20260724-v2.png' />
          }
          <View className="order-status-left-detail">
            <View>{orderData.plateNumber}</View>
            <View>{orderStatusMap[tripStatus as TripStatus]}</View>
          </View>
        </View>
      }
      <View onClick={onViewDetail} className="order-status-btn">查看</View>
      <Image className="order-status-bg" src={'https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/order-card-bg.png'} />
    </View>
  );
}