astrict.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // 引入路由和storage工具函数
  2. import storage from '@/utils/storage'
  3. import router from '../router'
  4. import store from '@/store'
  5. import {
  6. removeToken,
  7. removeRefreshToken,
  8. removeUuid,
  9. removeTenantId
  10. } from '@/utils/auth'
  11. let lastTime = new Date().getTime()
  12. let currentTime = new Date().getTime()
  13. window.onload = function () {
  14. // 鼠标点击事件
  15. window.document.onmousedown = function () {
  16. storage.setItem('lastTime', new Date().getTime())
  17. }
  18. // 鼠标移动事件
  19. window.document.onmousemove = function () {
  20. storage.setItem('lastTime', new Date().getTime())
  21. }
  22. // 键盘敲击事件
  23. window.document.onkeydown = function () {
  24. storage.setItem('lastTime', new Date().getTime())
  25. }
  26. }
  27. function checkTimeout() {
  28. currentTime = new Date().getTime() //更新当前时间
  29. lastTime = storage.getItem('lastTime')
  30. if (
  31. store.getters?.setting?.timeout?.time &&
  32. currentTime - lastTime > store.getters?.setting?.timeout?.time * 60 * 1000
  33. ) {
  34. removeToken()
  35. removeUuid()
  36. removeRefreshToken()
  37. removeTenantId()
  38. store.dispatch('ibps/user/setAccount', null, { root: true })
  39. store.dispatch('ibps/user/set', null, { root: true })
  40. store.dispatch('ibps/menu/menusSet', null, { root: true })
  41. router.push({ name: 'login' })
  42. }
  43. }
  44. export default function () {
  45. /* 定时器 间隔60秒检测是否长时间未操作页面 */
  46. window.setInterval(checkTimeout, 60 * 1000)
  47. }