方法一、挂在定时器
const timing = ref(1000 * 60 * 20)
const timer = ref(null)
document.addEventListener('keyup', () => {
timing.value = 1000 * 60 * 20
})
document.addEventListener('mousemove', () => {
timing.value = 1000 * 60 * 20
})
timer.value = setInterval(() => {
timing.value = timing.value - 1000
if (timing.value == 0) {
clearInterval(timer)
timer.value = null
user_store.getUserLoginOut()
}
}, 1000)
方法二、当前操作时间与上次操作时间对比
app.vue
document.addEventListener('keyup', () => {
user_store.noOperation(20)
})
document.addEventListener('mousemove', () => {
user_store.noOperation(20)
})
全局store
timing: null
// 无操作退出登录
noOperation(minute: number) {
if (!this.timing) {
this.timing = moment().format('YYYY-MM-DD HH:mm:ss')
} else if (moment().diff(this.timing, 'minute') < minute) {
this.timing = moment().format('YYYY-MM-DD HH:mm:ss')
} else {
this.timing = null
this.getUserLoginOut()
}
},