feat(遮罩层弹窗): 针对遮罩层弹窗和页面返回键层级冲突的问题进行处理

This commit is contained in:
hzj 2026-05-29 16:46:58 +08:00
parent 4662d58481
commit ba791d6353

View File

@ -906,7 +906,7 @@
</itemCenter> </itemCenter>
<!-- 弹窗遮罩层 --> <!-- 弹窗遮罩层 -->
<maskLayer class="ranking-popup-mask" :maskLayerShow="maskLayerShow" @click="closedPopup"> <maskLayer class="ranking-popup-mask" :maskLayerShow="maskLayerShow">
<!-- 居中弹窗 --> <!-- 居中弹窗 -->
<div <div
style=" style="
@ -916,7 +916,7 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
" "
@click="closedPopup" @click.self="closedPopup"
> >
<!-- help弹窗 --> <!-- help弹窗 -->
<div v-show="helpShow" @click.stop> <div v-show="helpShow" @click.stop>
@ -957,8 +957,8 @@
user-select: none; user-select: none;
touch-action: manipulation; touch-action: manipulation;
" "
@click="closedPopup" @click.stop.prevent="closedPopup"
@touchend="closedPopup" @touchend.stop.prevent="closedPopup"
> >
<img <img
v-smart-img v-smart-img
@ -1051,8 +1051,13 @@ const maskLayerShow = computed(() => {
const pageBackHidden = computed(() => { const pageBackHidden = computed(() => {
return maskLayerShow.value || !checkStatus.value return maskLayerShow.value || !checkStatus.value
}) })
const POPUP_CLOSE_CLICK_GUARD_MS = 400
const lastPopupClosedAt = ref(0)
const handlePageBack = () => { const handlePageBack = () => {
console.log('点击退出页面')
if (Date.now() - lastPopupClosedAt.value < POPUP_CLOSE_CLICK_GUARD_MS) return
if (pageBackHidden.value) return if (pageBackHidden.value) return
console.log('home back') console.log('home back')
closePage() closePage()
@ -1075,6 +1080,9 @@ const openPopup = (type) => {
// //
const closedPopup = () => { const closedPopup = () => {
if (!maskLayerShow.value) return
lastPopupClosedAt.value = Date.now()
console.log('点击关闭弹窗') console.log('点击关闭弹窗')
// //