From e4d5d93cfd93d77bdfae03de48fe07d04fc1d364 Mon Sep 17 00:00:00 2001 From: hzj <1304805162@qq.com> Date: Fri, 29 May 2026 17:19:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=81=AE=E7=BD=A9=E5=B1=82=E5=BC=B9?= =?UTF-8?q?=E7=AA=97):=20=E9=92=88=E5=AF=B9=E9=81=AE=E7=BD=A9=E5=B1=82?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E5=92=8C=E9=A1=B5=E9=9D=A2=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=94=AE=E5=B1=82=E7=BA=A7=E5=86=B2=E7=AA=81=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=BF=9B=E8=A1=8C=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Activities/GulbenFestival/index.vue | 16 +++++++--- .../Activities/LuckyDollars/Season5/index.vue | 31 +++++++++++++++---- src/views/Ranking/Couple/index.vue | 28 ++++++++++++++--- src/views/Ranking/GamesKing/index.vue | 2 +- src/views/Ranking/KingAndQueen/TopList.vue | 19 ++++++++++-- src/views/Ranking/WeeklyStar/WeeklyStar.vue | 17 ++++++++-- 6 files changed, 91 insertions(+), 22 deletions(-) diff --git a/src/views/Activities/GulbenFestival/index.vue b/src/views/Activities/GulbenFestival/index.vue index 8cec030..aee46fc 100644 --- a/src/views/Activities/GulbenFestival/index.vue +++ b/src/views/Activities/GulbenFestival/index.vue @@ -1446,7 +1446,7 @@ - +
@@ -1761,7 +1761,7 @@ :imgUrl="imageUrl('ticketHandleBtBg')" style="width: 25vw; margin: 0; padding: 0" contentStyle="padding: 0; align-items: center; justify-content: center;" - @click="closePopup" + @click.stop.prevent="closePopup" @touchend.stop.prevent="closePopup" >
ruleShow.value || historyShow.value || cardDrawResultShow.value, ) const pageBackHidden = computed(() => maskLayerShow.value || cardDrawAnimationShow.value) +const POPUP_CLOSE_CLICK_GUARD_MS = 400 +const lastPopupClosedAt = ref(0) const handlePageBack = () => { + if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return if (pageBackHidden.value) return closePage() } @@ -3478,6 +3481,9 @@ const openHistoryPopupRequest = async () => { const openHistoryPopup = useDebounce(openHistoryPopupRequest, 600, true) const closePopup = () => { + if (!maskLayerShow.value && !cardDrawAnimationShow.value) return + + lastPopupClosedAt.value = Date.now() ruleShow.value = false historyShow.value = false cardDrawResultShow.value = false @@ -3654,7 +3660,7 @@ onUnmounted(() => { .activity-back-btn { position: fixed; z-index: 9999; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 12vw; height: 12vw; diff --git a/src/views/Activities/LuckyDollars/Season5/index.vue b/src/views/Activities/LuckyDollars/Season5/index.vue index cb4ab33..bb3af77 100644 --- a/src/views/Activities/LuckyDollars/Season5/index.vue +++ b/src/views/Activities/LuckyDollars/Season5/index.vue @@ -1455,7 +1455,7 @@ - +
@@ -1572,7 +1572,11 @@
-
+
@@ -1631,14 +1635,22 @@
-
+
-
+
@@ -1707,7 +1719,11 @@ const isLoading = ref(true) // 预加载状态 // 获取OSS图片URL的函数 // const imageUrl = (filename) => getPngUrl('Activities/LuckyDollars/Season5/', filename) +const POPUP_CLOSE_CLICK_GUARD_MS = 400 +const lastPopupClosedAt = ref(0) + const handlePageBack = () => { + if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return if (maskLayerShow.value) return console.log('home back') closePage() @@ -2162,6 +2178,9 @@ const openPopup = (type) => { // 关闭弹窗 const closedPopup = (clear = true) => { + if (!maskLayerShow.value) return + + lastPopupClosedAt.value = Date.now() resultShow.value = false helpShow.value = false historyShow.value = false @@ -2774,7 +2793,7 @@ onUnmounted(() => { .activity-back-btn { position: fixed; z-index: 9999; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 10vw; height: 10vw; diff --git a/src/views/Ranking/Couple/index.vue b/src/views/Ranking/Couple/index.vue index 7aede0b..38e4872 100644 --- a/src/views/Ranking/Couple/index.vue +++ b/src/views/Ranking/Couple/index.vue @@ -393,7 +393,8 @@
- + +
-
+
@@ -1103,7 +1108,8 @@
x
@@ -1318,6 +1324,7 @@
+
@@ -1586,8 +1593,11 @@ const seasonTop1DisplayList = computed(() => { const currentSeasonTop1 = computed(() => { return seasonTop1DisplayList.value[centerIndex.value] || {} }) +const POPUP_CLOSE_CLICK_GUARD_MS = 400 +const lastPopupClosedAt = ref(0) const handlePageBack = () => { + if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return if (maskLayerShow.value) return console.log('home back') closePage() @@ -1830,6 +1840,9 @@ const showPopup = (type) => { // 关闭弹窗 const closedPopup = () => { + if (!maskLayerShow.value) return + + lastPopupClosedAt.value = Date.now() fragmentNotEnoughShow.value = false helpShow.value = false topRewardShow.value = false @@ -2157,7 +2170,7 @@ onUnmounted(() => { .couple-back-btn { position: fixed; z-index: 30; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 12vw; height: 12vw; @@ -2184,6 +2197,11 @@ onUnmounted(() => { z-index: 10000 !important; } +.couple-popup-content { + width: 100%; + min-height: 100%; +} + [dir='rtl'] .flipImg { transform: scaleX(-1); } diff --git a/src/views/Ranking/GamesKing/index.vue b/src/views/Ranking/GamesKing/index.vue index 632bd65..5423d53 100644 --- a/src/views/Ranking/GamesKing/index.vue +++ b/src/views/Ranking/GamesKing/index.vue @@ -1526,7 +1526,7 @@ onUnmounted(() => { .ranking-back-btn { position: fixed; z-index: 9999; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 12vw; height: 12vw; diff --git a/src/views/Ranking/KingAndQueen/TopList.vue b/src/views/Ranking/KingAndQueen/TopList.vue index e005528..31ae910 100644 --- a/src/views/Ranking/KingAndQueen/TopList.vue +++ b/src/views/Ranking/KingAndQueen/TopList.vue @@ -353,7 +353,8 @@ - + +
@@ -625,6 +626,7 @@
+
@@ -824,9 +826,12 @@ const webpUrl = (filename) => getWebpUrl('Ranking/KingQueenWebp/', filename) const getImgName = (filename) => { return currentLangType.value === 'ar' ? `${filename}_ar` : filename } +const POPUP_CLOSE_CLICK_GUARD_MS = 400 +const lastPopupClosedAt = ref(0) // 使用工具函数连接APP const handlePageBack = () => { + if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return if (maskLayerShow.value) return console.log('home back') closePage() @@ -1086,6 +1091,9 @@ const getUserInfo = async () => { // 关闭弹窗 const closedPopup = () => { + if (!maskLayerShow.value) return + + lastPopupClosedAt.value = Date.now() helpInfoShow.value = false historyShow.value = false rewardsShow.value = false @@ -1215,7 +1223,7 @@ onUnmounted(() => { .ranking-back-btn { position: fixed; z-index: 9999; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 12vw; height: 12vw; @@ -1242,6 +1250,11 @@ onUnmounted(() => { z-index: 10000 !important; } +.ranking-popup-content { + width: 100%; + min-height: 100%; +} + [dir='rtl'] .ranking-back-btn { left: auto; right: 4vw; diff --git a/src/views/Ranking/WeeklyStar/WeeklyStar.vue b/src/views/Ranking/WeeklyStar/WeeklyStar.vue index 4c311bd..95d4de7 100644 --- a/src/views/Ranking/WeeklyStar/WeeklyStar.vue +++ b/src/views/Ranking/WeeklyStar/WeeklyStar.vue @@ -578,7 +578,8 @@ - + +
@@ -842,6 +843,7 @@ />
+
@@ -892,9 +894,12 @@ const webpUrl = (filename) => getWebpUrl('Ranking/WeeklyStarWebp/', filename) const getImgName = (filename) => { return currentLangType.value === 'ar' ? `${filename}_ar` : filename } +const POPUP_CLOSE_CLICK_GUARD_MS = 400 +const lastPopupClosedAt = ref(0) // 使用工具函数连接APP const handlePageBack = () => { + if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return if (maskLayerShow.value) return console.log('home back') closePage() @@ -1015,6 +1020,9 @@ const exchangeSelectedGood = async (propsGroupId) => { // 关闭弹窗 const closedPopup = () => { + if (!maskLayerShow.value) return + + lastPopupClosedAt.value = Date.now() helpInfoShow.value = false historyShow.value = false giftsShow.value = false @@ -1318,7 +1326,7 @@ onUnmounted(() => { .ranking-back-btn { position: fixed; z-index: 9999; - top: calc(env(safe-area-inset-top, 0px) + 30px); + top: calc(env(safe-area-inset-top, 0px) + 12px); left: 4vw; width: 12vw; height: 12vw; @@ -1345,6 +1353,11 @@ onUnmounted(() => { z-index: 10000 !important; } +.ranking-popup-content { + width: 100%; + min-height: 100%; +} + [dir='rtl'] .ranking-back-btn { left: auto; right: 4vw;