<!--
 * @Description : 
 * @Author      : jinxin
 * @Date        : 2023-02-09 14:28:39
-->
<!--
 * @Description : 
 * @Author      : jinxin
 * @Date        : 2022-10-08 17:52:33
-->
<template>
  <router-view v-if="isRouterAlive"></router-view>
</template>

<style lang="scss">
body {
  overflow: hidden;
}

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #2c3e50;
}

#nav {
  padding: 30px;

  a {
    font-weight: bold;
    color: #2c3e50;

    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>
<script>
import { setNotLoggedIn } from '@/utils/auth'
export default {
  provide () {
    return {
      reload: this.reload
    }
  },
  data () {
    return {
      isRouterAlive: true
    }
  },
  methods: {
    reload () {
      this.isRouterAlive = false
      this.$nextTick(function () {
        this.isRouterAlive = true
      })
    }
  },
  created () {
    // 解决页面刷新后vuex数据不失效问题
    // sessionStorage中store存在重写state
    if (sessionStorage.getItem('store')) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem('store'))
        )
      )
      sessionStorage.removeItem('store')
    }
    // 在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener('beforeunload', () => {
      sessionStorage.setItem('store', JSON.stringify(this.$store.state))
    })
  },
  // mounted(){
  //   let messageTimer = setInterval(() => {
  //     let str = `当前有新版本上线，请保存你正在编辑的信息后，点击刷新或使用Ctrl + F5刷新页面<br/><br/>点击立即刷新将重新登录以获取新版本<br/><br/>(未保存数据将会丢失请注意!!)`
  //     this.$http.showLoading(false).get('v1/version').then(res => {
  //       if(res.status == 200){
  //         if(res.data.new != res.data.old){
  //           window.clearInterval(messageTimer)
  //           this.$messageBox.confirm(
  //             str,
  //             `发现新版本`,
  //             {
  //               confirmButtonText: "立即刷新",
  //               cancelButtonText: "稍后刷新",
  //               showClose:false,
  //               closeOnClickModal:false,
  //               dangerouslyUseHTMLString:true, // 注意此属性
  //             }
  //           ).then(()=>{
  //             this.$http.get('login/logout').then(r => {
  //               if (r.errno === 0) {
  //                 setNotLoggedIn()
  //                 this.$store.replaceState({})
  //                 this.$router.push({
  //                   path: '/login'
  //                 })
  //                 window.location.reload(); //强制刷新
  //               }
  //             })
  //           }).catch(()=>{
  //             // 点击取消
  //             // console.log('取消')
  //           })
  //         }
  //       }
  //     })
  // 	},10000);
  // }
}
</script>
