From 429208957f30ab9eedc5533a81aaa284048d09f5 Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期三, 29 七月 2026 21:51:54 +0800
Subject: [PATCH] Merge branch 'feature_v2.4.0' into fix-0716-blue-dev
---
src/robotaxi/pages/begin-route/components/release-route.tsx | 126 +++++++++++++++++++++++-------------------
1 files changed, 69 insertions(+), 57 deletions(-)
diff --git a/src/robotaxi/pages/begin-route/components/release-route.tsx b/src/robotaxi/pages/begin-route/components/release-route.tsx
index 5a258c7..3c964fe 100644
--- a/src/robotaxi/pages/begin-route/components/release-route.tsx
+++ b/src/robotaxi/pages/begin-route/components/release-route.tsx
@@ -41,7 +41,7 @@
if (!Number.isFinite(discountAmount) || discountAmount <= 0) {
return '0元';
}
- return `${parseFloat(discountAmount.toFixed(2))}元`;
+ return `-${parseFloat(discountAmount.toFixed(2))}元`;
};
useEffect(() => {
@@ -178,49 +178,50 @@
return (
<View className="release-route-container">
<View
- className='release-route-wrapper'
- style={{ height: typeof boxHeight === 'number' ? `${boxHeight}px` : 'auto' }}
- catchMove={isRouteSelectExpanded}
- onTouchStart={(e) => {
- // 如果没有展开,禁止滑动
- if (!isRouteSelectExpanded) return;
- e.stopPropagation();
- handleTouchStart(e);
- }}
- onTouchMove={(e) => {
- if (!isRouteSelectExpanded) return;
- e.stopPropagation();
- handleTouchMove(e);
- }}
- onTouchEnd={(e) => {
- if (!isRouteSelectExpanded) return;
- e.stopPropagation();
- handleTouchEnd();
- }}
+ className='release-route-wrapper'
+ style={{ height: typeof boxHeight === 'number' ? `${boxHeight}px` : 'auto' }}
+ catchMove={isRouteSelectExpanded}
+ onTouchStart={(e) => {
+ // 如果没有展开,禁止滑动
+ if (!isRouteSelectExpanded) return;
+ e.stopPropagation();
+ handleTouchStart(e);
+ }}
+ onTouchMove={(e) => {
+ if (!isRouteSelectExpanded) return;
+ e.stopPropagation();
+ handleTouchMove(e);
+ }}
+ onTouchEnd={(e) => {
+ if (!isRouteSelectExpanded) return;
+ e.stopPropagation();
+ handleTouchEnd();
+ }}
>
<View className='release-route-content'>
{isRouteSelectExpanded && (
<RouteSelectionPanel
- routeOptions={routeOptions}
- selectedRouteIndex={selectedRouteIndex}
- handleSelectRoute={handleSelectRoute}
+ routeOptions={routeOptions}
+ selectedRouteIndex={selectedRouteIndex}
+ handleSelectRoute={handleSelectRoute}
/>
)}
<View className="select-site" style={{ paddingBottom: typeof bottomPaddingHeight === 'number' ? `${bottomPaddingHeight}px` : undefined }}>
- <Image className="site-top-bg" src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/site-top-bg-20260507.png' />
- <View className="site-boarding-point">
+ <Image className="site-top-bg" src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/top-card-bg-20260722.png' />
+ <View className="select-site-content">
+ <View className="site-boarding-point">
{/* 起点 */}
<View>
- <View onClick={() => toSeleteSitePage('start')} className="now-site">
- <View className="now-site-dot"></View>
- <View className="now-site-address">
- <View className="now-site-address-content">
- 从<Text className="now-site-address-text">{startSite.name}</Text>上车
- </View>
- <Image className="now-site-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/right-icon.png" />
- </View>
- </View>
- {walkingTime > 0 && <View className="now-site-walk">步行{formatWalkingTime(walkingTime)}</View>}
+ <View onClick={() => toSeleteSitePage('start')} className="now-site">
+ <View className="now-site-dot"></View>
+ <View className="now-site-address">
+ <View className="now-site-address-content">
+ 从<Text className="now-site-address-text">{startSite.name}</Text>上车
+ </View>
+ <Image className="now-site-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/now-site-arrow-20260708.png" />
+ </View>
+ </View>
+ {walkingTime > 0 && <View className="now-site-walk">步行{formatWalkingTime(walkingTime)}</View>}
</View>
{/* 终点 */}
<View onClick={() => toSeleteSitePage('end')} className="to-site">
@@ -229,54 +230,65 @@
<View className="to-site-text">{endSite.name}</View>
</View>
</View>
- </View>
- <View className="route-content">
- <View className="route-content-top">
- <View className="route-content-txt">预估等待{fareEstimate.waitingTime || '-'}分钟</View>
- <View className="route-content-txt" style={{ margin: '0 4px' }}>|</View>
- <View className="route-content-txt">限乘{fareEstimate.maxPeopleNumber || '-'}人</View>
- </View>
- <View className="route-content-bottom">
- <View onClick={handleOpenPassengerNotice} className="route-content-bottom-left">
- <Image className="tip-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/tip-default-icon.png" />
- <View>乘车须知</View>
- </View>
+ <View className="route-content">
+ <View className="route-content-top">
+ <View className="route-content-txt">预估等待{fareEstimate.waitingTime || '-'}分钟</View>
+ <View className="route-content-txt" style={{ margin: '0 4px' }}>|</View>
+ <View className="route-content-txt">限乘{fareEstimate.maxPeopleNumber || '-'}人</View>
+ </View>
+ <View className="route-content-bottom">
+ <View onClick={handleOpenPassengerNotice} className="route-content-bottom-left">
+ <Image className="tip-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/tip-default-icon-20260726.png" />
+ <View>乘车须知</View>
+ </View>
+ </View>
</View>
</View>
</View>
+ </View>
</View>
<View className="confirm-btn-box">
{
hasDiscountAmount &&
- <View className="discount-amount" onClick={onOpenCouponSelect}>
+ <View
+ className="discount-amount"
+ style={{ visibility: isRouteSelectExpanded ? 'hidden' : 'visible' }}
+ onClick={onOpenCouponSelect}
+ >
<View className="flex-center">
<View className="discount-amount-text">最佳优惠</View>
<View className="discount-amount-desc" >已为您选择最佳优惠</View>
</View>
<View className="flex-center">
<View className="discount-amount-num">{formatDiscountAmountText()}</View>
- <Image className="change-coupon-icon" src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/change-coupon.png' />
+ <Image className="change-coupon-icon" src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/golden-arrow-20260702.png' />
</View>
</View>
}
<View className="confirm-btn-box-content">
<View className="money-box">
{isOperateFree ? (
- <View className="route-operate-free">员工内部测试</View>
+ <View className="route-operate-free">{selectedRoute?.freeText || "员工内部测试"}</View>
) : (
<View className="route-content-top-money" onClick={() => toPriceDescription()} >
- <Image className="tip-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/tip-default-icon.png" />
- <View className="price-box">
- <View className="price-box-text">预估</View>
- <Text className="money-num">{fareEstimate.finalFareStr || '-'}</Text>
- <View className="price-box-text">元</View>
+ <View className="forecast-text">
+ <Image className="tip-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/tip-default-icon.png" />
+ <Text>预估</Text>
+ </View>
+ <Text className="money-num">{fareEstimate.finalFareStr || '-'}</Text>
+ <View className="unit-text">
+ 元
</View>
</View>
)}
</View>
<View className="confirm-btn-wrapper">
- <View onClick={() => !isCallDisabled && callImmediately()} className="confirm-btn">立即呼叫</View>
- {isCallDisabled && <View className="confirm-btn-mask" />}
+ <Image className="confirm-btn-bg" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/confirm-btn-bg-20260726.png" />
+ <View onClick={() => !isCallDisabled && callImmediately()} className="confirm-btn">
+ <Image className="confirm-btn-icon" src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/confirm-btn-icon-20260629.png" />
+ 立即呼叫
+ </View>
+ {isCallDisabled && <View className="confirm-btn-mask" />}
</View>
</View>
</View>
--
Gitblit v1.7.1