From acbfaf97a6f15e91497d9ac4015a113b65b151c8 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Tue, 13 Oct 2026 16:55:53 +0800 Subject: [PATCH] fix: hide countdown for manual dispatch --- web/src/mobile/views/ClaimView.vue | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/web/src/mobile/views/ClaimView.vue b/web/src/mobile/views/ClaimView.vue index 390727d..8487daa 100644 --- a/web/src/mobile/views/ClaimView.vue +++ b/web/src/mobile/views/ClaimView.vue @@ -51,8 +51,8 @@ -
- {{ matchProgress }}% +
+ {{ matchProgress }}%
  1. ✓{{ step }} @@ -141,6 +141,7 @@ }); const matchStep = computed(() => (matchProgress.value < 35 ? 0 : matchProgress.value < 60 ? 1 : matchProgress.value < 85 ? 2 : 3)); const matchSteps = ['正在匹配任务', '获取商品信息', '确认任务内容', '发放任务结果']; + const isAutoMatching = computed(() => order.value?.dispatch_mode !== 'manual'); const matchingHint = computed(() => { if (order.value?.dispatch_mode === 'manual') return '订单已领取,正在等待后台匹配...'; if (matchRemainingSeconds.value > 0) return `系统正在派单... ${formatCountdown(matchRemainingSeconds.value)}`; @@ -256,7 +257,15 @@ function handleOrder(value: any) { order.value = value; if (value?.status === 'matching') { - startCountdown(value); + if (value?.dispatch_mode === 'manual') { + if (countdownTimer) window.clearInterval(countdownTimer); + countdownTimer = undefined; + matchRemainingSeconds.value = 0; + matchTotalSeconds.value = 0; + matchProgress.value = 18; + } else { + startCountdown(value); + } schedulePoll(); } else if (['pending', 'processing', 'completed'].includes(value?.status)) { matchProgress.value = 100; @@ -300,6 +309,7 @@ function startCountdown(value: any) { if (countdownTimer) window.clearInterval(countdownTimer); + if (value?.dispatch_mode === 'manual') return; const scheduledAt = Date.parse(String(value?.scheduled_match_at || '')); if (!Number.isFinite(scheduledAt)) return; matchTotalSeconds.value = Math.max(1, Number(value?.dispatch_delay_seconds || 0));