From c2dc7d7b39606e5635b5cfce49c48140888b5f43 Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期三, 03 六月 2026 11:02:04 +0800
Subject: [PATCH] fix(robotaxi): 调整发票展示阈值并优化safeParse工具函数

---
 src/robotaxi/pages/order/index.tsx  |    2 +-
 src/utils/Robotaxi-public-method.ts |   12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/robotaxi/pages/order/index.tsx b/src/robotaxi/pages/order/index.tsx
index 5d53243..90e5fda 100644
--- a/src/robotaxi/pages/order/index.tsx
+++ b/src/robotaxi/pages/order/index.tsx
@@ -198,7 +198,7 @@
                   </View>
                 }
                 {
-                  (['已完成', '待评价'].includes(formatOrderStatus(item.status)) && item.invoiceStatus != 2 && item?.amount > 1) &&
+                  (['已完成', '待评价'].includes(formatOrderStatus(item.status)) && item.invoiceStatus != 2 && item?.amount >= 1) &&
                   <View onClick={(e) => { e.stopPropagation(); toInvoicePage(item.orderId) }}>
                     <View className='order-again-text' hoverClass='common-hover-class'>开发票</View>
                   </View>
diff --git a/src/utils/Robotaxi-public-method.ts b/src/utils/Robotaxi-public-method.ts
index 27e61d4..a5e1ae7 100644
--- a/src/utils/Robotaxi-public-method.ts
+++ b/src/utils/Robotaxi-public-method.ts
@@ -18,11 +18,19 @@
  * @param defaultVal 解析失败时的默认返回值
  */
 export const safeParse = (str: any, defaultVal: any = null) => {
-  if (typeof str !== 'string' || str.includes('服务器时间')) {
+  if (typeof str !== 'string') {
     return str || defaultVal;
   }
+  
+  const trimmed = str.trim();
+  // 简单的格式预判:JSON 对象或数组字符串通常以 { 或 [ 开头
+  // 如果不是这两种开头,大概率不是我们需要解析的 JSON,直接返回原值或默认值,避免引发 JSON.parse 的异常和错误日志
+  if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
+    return str || defaultVal;
+  }
+
   try {
-    return JSON.parse(str);
+    return JSON.parse(trimmed);
   } catch (e) {
     console.error('safeParse error:', e, 'original string:', str);
     return defaultVal;

--
Gitblit v1.7.1