<template>
  <app-base class="bg">
    <div class='flex'>
      <article>
        <route :comp="{name: 'load-data', props: {componentName: 'user-examples'}}"></route>
      </article>
    </div>
  </app-base>
</template>

<script>
  export default {
    data () {
      return {
        lastTime: null, // 最后一次点击的时间
        currentTime: null, // 当前点击的时间
        // 获取一次不在获取控制
        getConfig: false,
        config: {
          timeOut: 0, // 单位: 分钟
          exitPrompt: '因您长时间未操作, 请重新登陆!'
        },
      }
    },
    created () {
      this.lastTime = new Date().getTime()
    },
    methods: {
      async isTimeOut () {
        // 获取config配置
        if (!this.getConfig && this.$login.f && this.$login.f.dir) {
          await this.$getConfig(this, 'App')
          this.getConfig = true
        }
        // 无配置,不开启
        if (this.config.timeOut <= 0) return
        // 记录这次点击的时间
        this.currentTime = new Date().getTime()
        // 判断上次最后一次点击的时间和这次点击的时间间隔是否大于超时时间
        if (this.currentTime - this.lastTime > (this.config.timeOut * 60 * 1000)) {
          // 如果是登录状态
          if (this.$login.f.id) {
            await this.$showMessage(this.config.exitPrompt)
            window.location.reload()
          } else {
            this.lastTime = new Date().getTime()
          }
        } else {
          // 如果在超时时间内点击，则把这次点击的时间记录覆盖掉之前存的最后一次点击的时间
          this.lastTime = new Date().getTime()
        }
      }
    }
  }
</script>
