hejianhao
2026-06-03 c2dc7d7b39606e5635b5cfce49c48140888b5f43
fix(robotaxi): 调整发票展示阈值并优化safeParse工具函数
2个文件已修改
14 ■■■■■ 已修改文件
src/robotaxi/pages/order/index.tsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/Robotaxi-public-method.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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;