hookehuyr

fix(booking): 修复订单核销状态同步逻辑并清理测试代码

修复内容:
- 兼容 qrCode 组件(USED='7')和 bookingDetail(USED='9')的状态码差异
- 优化状态变化处理逻辑,测试和生产模式统一调用 API
- 移除所有测试代码和测试按钮

问题详情:
- qrCode 组件和 bookingDetail 页面定义了不同的 USED 状态码
- 导致状态变化事件触发后条件判断失效

解决方案:
- 在 handleQrCodeStatusChange 中同时检查两种状态码
- 统一调用 billInfoAPI 刷新订单信息,确保状态一致性

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
......@@ -317,7 +317,10 @@ onUnmounted(() => {
stop_polling()
})
defineExpose({ start_polling, stop_polling })
defineExpose({
start_polling,
stop_polling
})
/**
* @description 跳转预约记录列表页
......
......@@ -41,6 +41,7 @@
</view>
</view>
<view style="height: 160rpx"></view>
<!-- 正式按钮 -->
<view
v-if="billInfo.status === CodeStatus.SUCCESS && billInfo.show_cancel_reserve === 1"
class="cancel-wrapper"
......@@ -93,12 +94,16 @@ const qrCodeStatusText = computed(() => {
/**
* @description 处理二维码状态变化
* - 当二维码被核销时,刷新订单信息以更新页面状态
* @param {string} newStatus 新的二维码状态
* @param {string} newStatus 新的二维码状态(来自 qrCode 组件)
* @returns {Promise<void>} 无返回值
*/
const handleQrCodeStatusChange = async newStatus => {
// 当二维码状态变为已使用时,刷新订单信息
if (newStatus === CodeStatus.USED && pay_id.value) {
// ⚠️ 注意:qrCode 组件的 USED = '7',但 CodeStatus.USED = '9'
// 这里需要兼容两种情况
const isUsedStatus = newStatus === CodeStatus.USED || newStatus === '7'
if (isUsedStatus && pay_id.value) {
// 调用 API 刷新订单信息
const { code, data } = await billInfoAPI({ pay_id: pay_id.value })
if (code) {
data.datetime = data && formatDatetime(data)
......