1.首先在assets文件夹内创建一个js文件(astrict.js),然后再在main.js文件引入
// main.js 文件内:
import Astrict from './assets/astrict.js';
2.以下就是astrict.js文件代码内容
// 设置最后时间
var lastTime = new Date().getTime()
// 设置当前时间
var currentTime = new Date().getTime()
// 设置超时时间:12小时
var timeOut = 12*60*60*1000
// 鼠标按下时更新最后时间
window.onload = function(){
window.document.onmousedown = function(){
localStorage.setItem("lastTime",new Date().getTime())
}
}
// 判断是否超时方法
function checkTimeout () {
// 更新当前时间
currentTime = new Date().getTime()
// 获取鼠标按下后的最后时间
lastTime= localStorage.getItem("lastTime")
// 判断是否超时
if(currentTime - lastTime > timeOut){
// 超时后会跳转到登录页面 所以需要清除cookie、localStorage和sessionStorage
sessionStorage.clear()
localStorage.clear()
var keys = document.cookie.match(/[^ =;]+(?=\=)/g)
if(keys){
for(var i = keys.length;i--){
document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString();
document.cookie = keys[i] + '=0;path=/;domain=' + document.domain +';expires=' + new Date(0).toUTCString();
document.cookie = keys[i] + '=0;path=/;domain=kevis.com;expires=' + new Date(0).toUTCString();
}
}
// 判断当前路径是否为登录,若不是则跳转到登录页面
if(location.pathname !== '/Login'){
window.open('/login','_self')
}
}
}
// 定时器 间隔30s监测是否长时间未操作页面
window.setInterval(checkTimeout,30000)
至此,该问题解决。