yanjinhui
10 天以前 c5de0d98241f8c8349fa38851b77efcfc61e4d26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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);    // 手指离开屏幕
}