hookehuyr

fix(商品详情页): 修复缺少ID参数时的异常处理并优化错误捕获

添加对缺少ID参数的检查,避免支付成功后异常返回时发起无效请求
增加try-catch块捕获获取商品详情时的潜在错误
...@@ -245,7 +245,7 @@ ...@@ -245,7 +245,7 @@
245 </template> 245 </template>
246 246
247 <script setup> 247 <script setup>
248 -import { ref, onMounted, computed } from 'vue' 248 +import { ref, computed } from 'vue'
249 import Taro, { useShareAppMessage, useDidShow } from '@tarojs/taro' 249 import Taro, { useShareAppMessage, useDidShow } from '@tarojs/taro'
250 import { Share, Heart1, HeartFill, Message } from '@nutui/icons-vue-taro' 250 import { Share, Heart1, HeartFill, Message } from '@nutui/icons-vue-taro'
251 import payCard from '@/components/payCard.vue' 251 import payCard from '@/components/payCard.vue'
...@@ -509,14 +509,27 @@ useDidShow(async () => { ...@@ -509,14 +509,27 @@ useDidShow(async () => {
509 // 获取用户信息 509 // 获取用户信息
510 await userStore.fetchUserInfo() 510 await userStore.fetchUserInfo()
511 511
512 - // 获取商品详情 512 + // 获取页面参数
513 let params = getCurrentPageParam(); 513 let params = getCurrentPageParam();
514 +
515 + // 检查是否有商品ID参数,如果没有则不请求详情
516 + // 这种情况通常发生在支付成功后返回详情页,但实际上应该跳转到订单页面
517 + if (!params.id) {
518 + console.warn('商品详情页缺少ID参数,可能是支付成功后的异常返回')
519 + return
520 + }
521 +
522 + // 获取商品详情
523 + try {
514 const { code, data } = await getVehicleDetailAPI({ id: params.id }) 524 const { code, data } = await getVehicleDetailAPI({ id: params.id })
515 if (code) { 525 if (code) {
516 product.value = data 526 product.value = data
517 product.value.cover_image = [data.front_photo || DEFAULT_COVER_IMG] 527 product.value.cover_image = [data.front_photo || DEFAULT_COVER_IMG]
518 product.value.images = filterEmptyValues([data.front_photo, data.other_photo, data.left_photo, data.right_photo]) 528 product.value.images = filterEmptyValues([data.front_photo, data.other_photo, data.left_photo, data.right_photo])
519 } 529 }
530 + } catch (error) {
531 + console.error('获取商品详情失败:', error)
532 + }
520 }) 533 })
521 </script> 534 </script>
522 535
......