From 1018c1db116d2e7352676c765f0bc2585a283468 Mon Sep 17 00:00:00 2001 From: Hera Zhao Date: Thu, 9 Apr 2026 10:12:30 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20QR=E4=B8=8A=E4=BC=A0=E6=8F=90=E9=86=92?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=AF=8F=E6=9C=88=E4=B8=80=E6=AC=A1=EF=BC=8C?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=A7=8B=E7=BB=88=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 用 localStorage 记录上次弹窗时间,30天内不再弹 - 📲 上传二维码按钮始终显示(只要用户没上传QR) - 弹窗取消按钮文案改为「下次再说」 Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/components/RecipeDetailOverlay.vue | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/RecipeDetailOverlay.vue b/frontend/src/components/RecipeDetailOverlay.vue index d8a4bd7..4a6b9b6 100644 --- a/frontend/src/components/RecipeDetailOverlay.vue +++ b/frontend/src/components/RecipeDetailOverlay.vue @@ -516,13 +516,18 @@ async function loadBrand() { } catch { brand.value = {} } - // Show upload prompt if user hasn't set up brand assets yet + // Prompt QR upload at most once per month if (showBrandHint.value) { - const ok = await showConfirm( - '上传你的专属二维码,让配方卡片更专业 ✨', - { okText: '去上传', cancelText: '取消' } - ) - if (ok) goUploadQr() + const lastPrompt = localStorage.getItem('qr_upload_prompt_time') + const oneMonth = 30 * 24 * 60 * 60 * 1000 + if (!lastPrompt || Date.now() - Number(lastPrompt) > oneMonth) { + localStorage.setItem('qr_upload_prompt_time', String(Date.now())) + const ok = await showConfirm( + '上传你的专属二维码,让配方卡片更专业 ✨', + { okText: '去上传', cancelText: '下次再说' } + ) + if (ok) goUploadQr() + } } }