<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
import Setting from '@/setting';
import util from '@/libs/util';
export default {
  name: 'App',
  created() {
    //在页面加载时读取localStorage里的状态信息
    if (util.local.get(Setting.storeKey)) {
      this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey)));
    }

    //在页面刷新时将vuex里的信息保存到localStorage里
    window.addEventListener('beforeunload', () => {
      util.local.set(Setting.storeKey, this.$store.state);
    });
    // 判断当前处于什么终端 true为PC端，false为手机端
    function IsPCModel() {
      var userAgentInfo = navigator.userAgent;
      var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
      var flagPc = true;
      for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
          flagPc = false;
          break;
        }
      }
      return flagPc;
    }
    var flagZt = IsPCModel();
    this.$store.commit('updateModelType', flagZt)
    window.onresize = this.throttle(() => {
      if(document.body.clientWidth <= 1200) {
        this.$store.commit('updateModelType', false)
      }else if(document.body.clientWidth > 1700 ) {
        this.$store.commit('updateModelType', true)
        this.$store.dispatch('updateNavSumA', 10)
        sessionStorage.setItem('navPageSize', 10)
      }else if(document.body.clientWidth > 1600 && document.body.clientWidth <= 1700 ) {
        this.$store.commit('updateModelType', true)
        if (this.$i18n.locale == 'en') {
          this.$store.dispatch('updateNavSumA', 9)
          sessionStorage.setItem('navPageSize', 9)
        }else {
          this.$store.dispatch('updateNavSumA', 10)
        sessionStorage.setItem('navPageSize', 10)
        }
      }else if(document.body.clientWidth > 1500 && document.body.clientWidth <= 1600) {
        this.$store.commit('updateModelType', true)
        this.$store.dispatch('updateNavSumA', 9)
        sessionStorage.setItem('navPageSize', 9)
      }else if(document.body.clientWidth > 1400 && document.body.clientWidth <= 1500) {
        this.$store.commit('updateModelType', true)
        if (this.$i18n.locale == 'en') {
          this.$store.dispatch('updateNavSumA', 7)
          sessionStorage.setItem('navPageSize', 7)
        }else {
          this.$store.dispatch('updateNavSumA', 8)
        sessionStorage.setItem('navPageSize', 8)
        }
      }else if(document.body.clientWidth > 1300 && document.body.clientWidth <= 1400) {
        this.$store.commit('updateModelType', true)
        if (this.$i18n.locale == 'en') {
          this.$store.dispatch('updateNavSumA', 6)
          sessionStorage.setItem('navPageSize', 6)
        }else {
          this.$store.dispatch('updateNavSumA', 7)
        sessionStorage.setItem('navPageSize', 7)
        }
      }else if(document.body.clientWidth > 1200 && document.body.clientWidth <= 1300) {
        this.$store.commit('updateModelType', true)
        if (this.$i18n.locale == 'en') {
          this.$store.dispatch('updateNavSumA', 6)
          sessionStorage.setItem('navPageSize', 6)
        }else {
          this.$store.dispatch('updateNavSumA', 6)
        sessionStorage.setItem('navPageSize', 6)
        }
      }else {
        this.$store.commit('updateModelType', true)
      }
    },500)
  },
  mounted() {
    window.onbeforeunload = function(){
      sessionStorage.removeItem('navPageSize')
    }
      if(document.body.clientWidth > 1600 ) {
        sessionStorage.setItem('navPageSize', 10)
      }else if(document.body.clientWidth > 1500 && document.body.clientWidth <= 1600) {
        sessionStorage.setItem('navPageSize', 9)
      }else if(document.body.clientWidth > 1400 && document.body.clientWidth <= 1500) {
        sessionStorage.setItem('navPageSize', 8)
      }else if(document.body.clientWidth > 1300 && document.body.clientWidth <= 1400) {
        sessionStorage.setItem('navPageSize', 7)
      }else if(document.body.clientWidth > 1200 && document.body.clientWidth <= 1300) {
        sessionStorage.setItem('navPageSize', 6)
      }
  },
  methods: {
    throttle(func, delay) {
        var prev = Date.now()
        return function () {
            var context = this;
            var args = arguments;
            var now = Date.now();
            if (now - prev >= delay) {
                func.apply(context, args);
                prev = Date.now();
            }
        }
    }
  },
};
</script>
