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