From 9e6b0d57c26f98aa70aa1dc1903375b1f556648f Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期一, 24 八月 2026 17:44:53 +0800
Subject: [PATCH] 又又更新
---
rencaika/pages/talent-code/talent-code.uvue | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/rencaika/pages/talent-code/talent-code.uvue b/rencaika/pages/talent-code/talent-code.uvue
index 5982b8d..7306ed8 100644
--- a/rencaika/pages/talent-code/talent-code.uvue
+++ b/rencaika/pages/talent-code/talent-code.uvue
@@ -132,7 +132,6 @@
stopTimers()
codeLoading.value = true
codeLoadFailed.value = false
- codeImageUrl.value = ''
codeMessage.value = '正在生成动态人才码'
issueTalentDynamicCodeForScene(talentId.value, scene.value, merchantId.value, (data: any) => {
codeLoading.value = false
@@ -141,8 +140,13 @@
codeImageUrl.value = getApiBaseUrl().replace(/\/$/, '') + (data.imagePath as string)
expiresAt.value = Number(data.expiresAt)
setCountdown()
- const seconds = data.refreshAfterSeconds != null ? Number(data.refreshAfterSeconds) : 60
- refreshTimer = setTimeout(() => requestDynamicCode(), Math.max(1, seconds - 2) * 1000)
+ // Refresh only after the displayed code expires so the countdown never jumps back early.
+ const refreshDelay = Math.max(1, expiresAt.value - Date.now())
+ refreshTimer = setTimeout(() => {
+ remainingSeconds.value = 0
+ refreshTip.value = '正在刷新动态人才码'
+ requestDynamicCode()
+ }, refreshDelay)
}, (error) => { if (pageVisible) handleCodeFailure(error.message); else codeLoading.value = false })
}
const handleCodeFailure = (message: string) => { stopTimers(); codeLoading.value = false; codeImageUrl.value = ''; codeLoadFailed.value = true; codeMessage.value = message == '' ? '动态人才码加载失败' : message; refreshTip.value = '动态人才码已失效,请重新获取' }
--
Gitblit v1.7.1