1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { defineStore } from 'pinia';
// 登录时限 单位为min
const maxActiveTime = 15;
export const useActiveCheck = defineStore('activeCheck', {
  state: () => ({
    loginTime: null
  }),
  actions: {
    // 更新登陆时间为当前时间
    updateLoginTime() {
      this.loginTime = new Date();
    },
    // 判断登陆是否超时
    isActive() {
      if (this.loginTime == null) {
        return false;
      }
      const now = new Date();
      // 最早的有效时间
      const earliestActiveTime = now.getTime() - maxActiveTime * 60 * 1000;
      const currLoginTime = this.loginTime.getTime();
      return currLoginTime > earliestActiveTime;
    },
    clearLoginTime() {
      this.loginTime = null;
    }
  },
  getters: {}
});