hejianhao
2026-03-13 aa0695d829d0b616205493a755524301418cd95d
fix: 为地图浮层图标点击事件添加stopPropagation并格式化步行时间

修复地图浮层图标点击事件冒泡问题,防止触发父元素事件。同时将步行时间格式化为更易读的小时/分钟形式。
3个文件已修改
25 ■■■■■ 已修改文件
src/pages/robotaxi/home/index.tsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/components/release-route.tsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/index.tsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/robotaxi/home/index.tsx
@@ -1111,11 +1111,11 @@
        </View>
        {/* 地图浮层入口 */}
        <View className="map-entry">
          <Image onClick={openService} className="map-entry-icon" src={contactService} />
          <Image onClick={(e) => { e.stopPropagation(); openService() }} className="map-entry-icon" src={contactService} />
          <View className="split-line"></View>
          <Image onClick={toCoupon} className="map-entry-icon" src={coupon} />
          <Image onClick={(e) => { e.stopPropagation(); toCoupon() }} className="map-entry-icon" src={coupon} />
          <View className="split-line"></View>
          <Image onClick={toOrder} className="map-entry-icon" src={suggest} />
          <Image onClick={(e) => { e.stopPropagation(); toOrder() }} className="map-entry-icon" src={suggest} />
        </View>
        {/* 指针 */}
        {
src/robotaxi/pages/begin-route/components/release-route.tsx
@@ -27,6 +27,15 @@
            url: `/robotaxi/pages/expense-detail/index`,
        })
    }
    const formatWalkingTime = (minutes: number) => {
        const safeMinutes = Math.max(0, Math.floor(Number(minutes) || 0));
        if (safeMinutes >= 60) {
            const hours = Math.floor(safeMinutes / 60);
            const remainMinutes = safeMinutes % 60;
            return remainMinutes > 0 ? `${hours}小时${remainMinutes}分钟` : `${hours}小时`;
        }
        return `${safeMinutes}分钟`;
    }
    return (
        <View className='release-route'>
@@ -44,9 +53,7 @@
                                <Image className="now-site-icon" src={rightIcon} />
                            </View>
                        </View>
                        {
                            walkingTime > 0 && <View className="now-site-walk">步行{walkingTime}分钟</View>
                        }
                        {walkingTime > 0 && <View className="now-site-walk">步行{formatWalkingTime(walkingTime)}</View>}
                    </View>
                    {/* 终点 */}
                    <View onClick={() => toSeleteSitePage('end')} className="to-site">
src/robotaxi/pages/begin-route/index.tsx
@@ -1714,11 +1714,11 @@
        </View>
        {/* 地图浮层入口 */}
        <View className="map-entry">
          <Image onClick={openService} className="map-entry-icon" src={contactService} />
          <Image onClick={(e) => { e.stopPropagation(); openService() }} className="map-entry-icon" src={contactService} />
          <View className="split-line"></View>
          <Image onClick={toCoupon} className="map-entry-icon" src={coupon} />
          <Image onClick={(e) => { e.stopPropagation(); toCoupon() }} className="map-entry-icon" src={coupon} />
          <View className="split-line"></View>
          <Image onClick={toOrder} className="map-entry-icon" src={suggest} />
          <Image onClick={(e) => { e.stopPropagation(); toOrder() }} className="map-entry-icon" src={suggest} />
        </View>
        <View className="container">
          <View className="container-inner">