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/cancel-popup.tsx |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/robotaxi/pages/begin-route/components/cancel-popup.tsx b/src/robotaxi/pages/begin-route/components/cancel-popup.tsx
index 47100c6..3af9ee2 100644
--- a/src/robotaxi/pages/begin-route/components/cancel-popup.tsx
+++ b/src/robotaxi/pages/begin-route/components/cancel-popup.tsx
@@ -23,8 +23,21 @@
     onConfirm?: () => void;
 }
 
+// 占位动画图片地址:优先加载 webp,加载失败回退 png
+const CANCEL_ANIMATION_WEBP = 'https://xps01.xiaopeng.com/content/commomother/2026/07-09/14-45-520155-955631373.png?x-oss-process=image/format,webp';
+const CANCEL_ANIMATION_PNG = 'https://xps01.xiaopeng.com/content/commomother/2026/07-09/14-45-520155-955631373.png';
+
 export default function CancelPopup({ show = false, cancelType = 1, startSite, endSite, waitMinutes, tripStatus, routeDurationSeconds, discountAmount, onClose, onConfirm }: Props) {
     const { visible, animationData } = useBottomPopupAnimation(show);
+    // 占位动画当前使用的图片地址,默认 webp,加载失败时回退到 png
+    const [animationSrc, setAnimationSrc] = useState(CANCEL_ANIMATION_WEBP);
+
+    // webp 加载失败时回退到 png
+    const handleAnimationError = () => {
+        if (animationSrc !== CANCEL_ANIMATION_PNG) {
+            setAnimationSrc(CANCEL_ANIMATION_PNG);
+        }
+    };
     const cachedStartSite = startSite || Taro.getStorageSync('startSite') || {};
     const cachedEndSite = endSite || Taro.getStorageSync('endSite') || {};
     const startSiteName = cachedStartSite?.name || cachedStartSite?.address || '-';
@@ -91,11 +104,13 @@
             <View className='cancel-mask'></View>
             <View className='cancel-content' animation={animationData}>
                 <View className='cancel-box'>
-                    <Image onClick={closePopup} className='cancel-icon' src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/close-icon.png" />
+                    <Image onClick={closePopup} className='cancel-icon' src="https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/v2/close-icon.png" />
                 </View>
                 <View className='cancel-tip-box'>
-                    <View className='cancel-tip-box-title'>{STATUS_MAP[cancelType].title}</View>
-                    <View className={`cancel-tip-box-desc ${cancelType === 4 && 'color1'}`}>{STATUS_MAP[cancelType].tip}</View>
+                    <View className='cancel-tip-box-title'>{STATUS_MAP[cancelType]?.title}</View>
+                    {
+                        STATUS_MAP[cancelType]?.tip && <View className={`cancel-tip-box-desc ${cancelType === 4 && 'color1'}`}>{STATUS_MAP[cancelType].tip}</View>
+                    }
                 </View>
                 {
                     [4, 5].includes(cancelType) ?
@@ -108,6 +123,7 @@
                                 </View>
                                 <View className='cancel-site-box-content'>
                                     <View>{startSiteName}</View>
+                                    <View className='cancel-site-box-divider'></View>
                                     <View>{endSiteName}</View>
                                 </View>
                             </View>
@@ -116,10 +132,14 @@
                             </View>
                         </View>
                         :
-                        <View className='cancel-btn-box'>
-                            <Image className='cancel-btn-cancel' onClick={onConfirm} src='https://s.xiaopeng.com/xp-fe/robot-taxi/imgs/submit-cancel-btn.png' />
-                            <View className='cancel-btn-again wait-btn' onClick={onClose}>再等等</View>
-                        </View>
+                        <>
+                            {/* 占位动画:优先 webp,加载失败回退 png */}
+                            <Image className='cancel-animation' src={animationSrc} onError={handleAnimationError} />
+                            <View className='cancel-btn-box'>
+                                <View  className=' cancel-btn-cancel' onClick={onConfirm}>确认取消</View>
+                                <View className='cancel-btn-again wait-btn' onClick={onClose}>再等等</View>
+                            </View>
+                        </>
                 }
             </View>
         </View>

--
Gitblit v1.7.1