astrict.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // 引入路由和storage工具函数
  2. import storage from '@/utils/storage'
  3. import router from '../router'
  4. import store from '@/store'
  5. let lastTime = new Date().getTime()
  6. let currentTime = new Date().getTime()
  7. // let timeOut = 30 * 60 * 1000 //设置超时时间: 30分钟
  8. window.onload = function () {
  9. // 鼠标点击事件
  10. window.document.onmousedown = function () {
  11. storage.setItem('lastTime', new Date().getTime())
  12. }
  13. // 鼠标移动事件
  14. window.document.onmousemove = function () {
  15. storage.setItem('lastTime', new Date().getTime())
  16. }
  17. // 键盘敲击事件
  18. window.document.onkeydown = function () {
  19. storage.setItem('lastTime', new Date().getTime())
  20. }
  21. }
  22. function checkTimeout() {
  23. currentTime = new Date().getTime() //更新当前时间
  24. lastTime = storage.getItem('lastTime')
  25. if (
  26. store.getters?.setting?.timeout?.time &&
  27. currentTime - lastTime > store.getters?.setting?.timeout?.time * 60 * 1000
  28. ) {
  29. //判断是否超时
  30. //清除storage的数据(登陆信息和token)
  31. storage.clear()
  32. // 跳到登陆页
  33. router.push({ path: '/login' })
  34. }
  35. }
  36. export default function () {
  37. /* 定时器 间隔30秒检测是否长时间未操作页面 */
  38. // window.setInterval(checkTimeout, 60 * 1000)
  39. window.setInterval(checkTimeout, 1 * 1000)
  40. }