import router from "@/router";
|
|
// utils/inactivityTimer.js //监听用户没有操作的时候就刷新页面
|
let timer;
|
const timeout = 5* 60 * 1000; // 5分钟(毫秒)
|
|
export function setupInactivityTimer() {
|
// 重置计时器
|
function resetTimer() {
|
clearTimeout(timer);
|
timer = setTimeout(logout, timeout);
|
}
|
function logout() {
|
// // 先显示提示
|
// alert('由于长时间无操作,页面即将刷新');
|
|
// 延迟1秒后刷新
|
setTimeout(() => {
|
window.location.reload();
|
}, 1000);
|
//跳转到登入页面
|
router.push({path:'/login'})
|
}
|
|
// 监听用户活动
|
window.addEventListener('mousemove', resetTimer);
|
window.addEventListener('mousedown', resetTimer);
|
window.addEventListener('keypress', resetTimer);
|
window.addEventListener('scroll', resetTimer);
|
window.addEventListener('touchmove', resetTimer);
|
window.addEventListener('touchstart', resetTimer); // 手指触摸屏幕
|
window.addEventListener('touchend', resetTimer); // 手指离开屏幕
|
|
// 初始化计时器
|
resetTimer();
|
}
|
|
export function clearInactivityTimer() {
|
clearTimeout(timer);
|
// 移除事件监听器(如果需要)
|
window.removeEventListener('mousemove', resetTimer);
|
window.removeEventListener('mousedown', resetTimer);
|
window.removeEventListener('keypress', resetTimer);
|
window.removeEventListener('scroll', resetTimer);
|
window.removeEventListener('touchmove', resetTimer); //手指触摸移动
|
window.removeEventListener('touchstart', resetTimer); // 手指触摸屏幕
|
window.removeEventListener('touchend', resetTimer); // 手指离开屏幕
|
}
|