flat: bug修复

This commit is contained in:
Apcallover
2025-12-17 19:48:45 +08:00
parent ab3201b015
commit a10fd29440
6 changed files with 359 additions and 305 deletions

35
App.vue
View File

@@ -25,7 +25,7 @@ onLaunch((options) => {
useUserStore().changMachineEnv(false);
return;
}
if (!isY9MachineType()) {
if (isY9MachineType()) {
console.warn('求职一体机环境');
baseDB.resetAndReinit(); // 清空indexdb
useUserStore().logOutApp();
@@ -63,15 +63,16 @@ onHide(() => {
console.log('App Hide');
});
async function handleInactivity() {
function handleInactivity() {
console.log('【全局】60秒无操作执行安全逻辑');
if (inactivityModalTimer) {
clearTimeout(inactivityModalTimer);
inactivityModalTimer = null;
}
if (useUserStore().hasLogin) {
// 示例:弹窗确认
await $confirm({
// 1. 正常弹出确认
$confirm({
title: '会话即将过期',
content: '长时间无操作,是否继续使用?',
success: (res) => {
@@ -80,25 +81,33 @@ async function handleInactivity() {
inactivityModalTimer = null;
}
if (res.confirm) {
inactivityManager?.resume(); // 恢复监听
inactivityManager?.resume();
} else {
performLogout();
}
},
fail: () => {
if (inactivityModalTimer) clearTimeout(inactivityModalTimer);
if (inactivityModalTimer) {
clearTimeout(inactivityModalTimer);
inactivityModalTimer = null;
}
performLogout();
},
});
// 2. 启动 10 秒倒计时
inactivityModalTimer = setTimeout(() => {
inactivityModalTimer = null;
console.log('【自动登出】10秒无响应强制清理状态');
// 【关键改进】:通知全局组件强制关闭弹窗,防止用户点击陈旧弹窗
uni.$emit('hide-global-popup');
performLogout();
}, 10000);
} else {
inactivityManager?.resume(); // 恢复监听
inactivityManager?.resume();
}
// 启动 10 秒自动登出定时器
inactivityModalTimer = setTimeout(() => {
inactivityModalTimer = null;
console.log('【自动登出】用户10秒未操作');
performLogout();
}, 10000); // 10秒
}
function performLogout() {