// 用户长时间不操作退出系统
// react 或者 angular 使用
let setIntervalTimer;
let timeOut = 15 * 60 * 1000;
let lastTime = new Date().getTime();
let currentTime = new Date().getTime();
//获取最外层div
let ICE_CONTAINER = document.getElementsByTagName('body')[0];
// timeType 判断页面是否为登录页,如果是不执行踢出登录操作,初始状态为false
let timeType = false;
const timerCallback=()=> {
// 检测鼠标移动事件 我嫌弃mousemove生产变量太多改成 click 了
ICE_CONTAINER.addEventListener('click', function() {
// 更新最后的操作时间(鼠标每移动一次,就会重新计算时间)
lastTime = new Date().getTime();
})
// 定时器
let testTime=()=> {
//获取当前路径 是否在登录页 还在主页即为true 如果不是项目初始化加载该文件不需要判断 login
timeType = window.location.href.indexOf('login') < 0;
//更新当前时间
currentTime = new Date().getTime();
//判断是否超时
if (currentTime - lastTime > timeOut) {
if (timeType) {
// 清除定时器
window.clearInterval(setIntervalTimer);
// 超时操作
alert("长时间未操作,请重新登陆");
window.sessionStorage.clear() //清除本地缓存
window.location.replace('/absweb/ui/#/login'); //跳转至登录页
} else {
lastTime = new Date().getTime();
}
}
}
return testTime
}
export default function overtimeLogin (){
setIntervalTimer = window.setInterval(timerCallback(), 10000); // 定时监听是否超时
}
后台管理系统-用户长时间不操作退出系统
最新推荐文章于 2024-07-11 18:00:32 发布