feat: 沉默期已过期待延期时全局拦截,除绑定手机号与延期支付页外都跳转延期页
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m3s

This commit is contained in:
邹进
2026-11-08 16:41:53 +09:00
parent 535f92b818
commit 37b650d41e
4 changed files with 243 additions and 0 deletions

View File

@@ -102,6 +102,8 @@
<SilenceReminderPopup v-if="silenceReminderShow && silenceReminder" :reminder="silenceReminder"
@close="closeSilenceReminder" @action="openSilenceReminderAction" />
<!-- 沉默期检查完成前挡住首页操作,避免强制延期弹窗弹出前还能点 -->
<view v-if="silenceChecking" class="silence-checking-mask" @tap.stop @touchmove.stop.prevent></view>
<NotificationPopup :show="notificationPopupShow" :items="notificationItems"
:current="notificationPopupCurrent" @change="onNotificationChange" @close="closeNotificationPopup"
@@ -194,7 +196,16 @@
const silenceReminder = ref(null);
const silenceReminderShow = ref(false);
let silenceReminderIdentifier = '';
const silenceChecking = ref(false);
const loadSilenceReminder = async (entryId) => {
silenceChecking.value = true;
try {
await loadSilenceReminderInner(entryId);
} finally {
if (entryId === homeEntryId) silenceChecking.value = false;
}
};
const loadSilenceReminderInner = async (entryId) => {
const identifier = String(userStore.state.identifier || '').trim();
silenceReminder.value = null;
if (!identifier) return;
@@ -1115,6 +1126,7 @@
popupCandidateShow.value = false;
silenceReminderShow.value = false;
silenceReminder.value = null;
silenceChecking.value = false;
notificationQueued = false;
notificationFallbackPending = false;
});
@@ -1149,4 +1161,11 @@
.bottom-spacer {
height: 120rpx;
}
.silence-checking-mask {
position: fixed;
inset: 0;
z-index: 10199;
background: transparent;
}
</style>