<template>
  <section class="app-main">
    <transition name="fade-transform" mode="out-in">
      <keep-alive :include="cachedViews">
        <router-view v-if="!$route.meta.link" :key="key" />
      </keep-alive>
    </transition>
    <iframe-toggle />
  </section>
</template>

<script>
import iframeToggle from "./IframeToggle/index"

export default {
  name: 'AppMain',
  components: { iframeToggle },
  computed: {
    cachedViews() {
      return this.$store.state.tagsView.cachedViews
    },
    key() {
      return this.$route.path
    }
  },

  // data() {
  //   // return {
  //   //   timer: null,
  //   //   intervalId:null
  //   // }
  //
  //   return{
  //     websock: null, //建立的连接
  //     lockReconnect: false, //是否真正建立连接
  //     timeout: 1 * 1000, //20秒一次心跳
  //     timeoutObj: null, //心跳心跳倒计时
  //     serverTimeoutObj: null, //心跳倒计时
  //     timeoutnum: null //断开 重连倒计时
  //   }
  //
  //
  // },
  // created() {
  //   // //页面刚进入时开启长连接
  //   this.initWebSocket();
  //
  // },
  // destroyed() {
  //   //页面销毁时关闭长连接
  //   clearTimeout(this.timeoutObj);
  //   this.websocketclose();
  //
  // },

  mounted() {

  },
  methods: {
    // initWebSocket() {
    //   //建立连接
    //   //初始化weosocket
    //   let tokenStr = localStorage.getItem("jy")
    //   let visitPort
    //   if (process.env.NODE_ENV=='development'){
    //     visitPort = '8888'
    //   }
    //   else {
    //     visitPort = '443'
    //   }
    //   let wsuri = 'wss:'+location.host.split(':')[0]+ ':'+visitPort+'/websocket/testsocket?accessToken='+tokenStr.split("&")[0]+'&'+'tokenSign='+tokenStr.split("&")[1];
    //   //建立连接
    //   this.websock = new WebSocket(wsuri);
    //   //连接成功
    //   this.websock.onopen = this.websocketonopen;
    //   //连接错误
    //   this.websock.onerror = this.websocketonerror;
    //   //接收信息
    //   this.websock.onmessage = this.websocketonmessage;
    //   //连接关闭
    //   this.websock.onclose = this.websocketclose;
    // },
    // start() {
    //   //开启心跳
    //   var self = this;
    //   self.timeoutObj && clearTimeout(self.timeoutObj);
    //   // self.serverTimeoutObj && clearTimeout(self.serverTimeoutObj);
    //   self.timeoutObj = setTimeout(function() {
    //     self.websock.send("heartbeat");
    //   }, self.timeout);
    // },
    // websocketonopen() {
    //   //连接成功事件
    //   this.websocketsend('发送数据');
    //   //提示成功
    //   console.log("连接成功", 3);
    //   //开启心跳
    //   this.start();
    // },
    // websocketonerror(e) {
    //   //连接失败事件
    //   //错误
    //   console.log("WebSocket连接发生错误");
    //   //重连
    //   // this.reconnect();
    // },
    // websocketclose(e) {
    //   //连接关闭事件
    //   //提示关闭
    //   console.log("连接已关闭");
    //   //重连
    //   // this.reconnect();
    // },
    // websocketonmessage(event) {
    //   //接收服务器推送的信息
    //   //打印收到服务器的内容
    //   console.log("收到服务器信息",event.data);
    //   let data=event.data
    //   //收到服务器信息，心跳重置
    //   this.start()
    // },
    // websocketsend(msg) {
    //   //向服务器发送信息
    //   this.websock.send(msg);
    // }

  }

}
</script>

<style lang="scss" scoped>
.app-main {
  /* 50= navbar  50  */
  min-height: calc(100vh - 50px);
  width: 100%;
  position: relative;
  overflow: hidden;
}

.fixed-header + .app-main {
  padding-top: 50px;
}

.hasTagsView {
  .app-main {
    /* 84 = navbar + tags-view = 50 + 34 */
    min-height: calc(100vh - 84px);
  }

  .fixed-header + .app-main {
    padding-top: 84px;
  }
}
</style>

<style lang="scss">
// fix css style bug in open el-dialog
.el-popup-parent--hidden {
  .fixed-header {
    padding-right: 17px;
  }
}
</style>
