<template>
  <div v-loading="loading" class="market-container">
    <iframe id="companyIframe" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" width="100%" :style="{height:iframeHight+'px'}"
      :src="src" />
  </div>
</template>

<script>
import { steerScroll } from '@/assets/js/jskplug';
import { dskAccessToken } from '@/api/common';
import {encodeStr} from "@/assets/js/common.js"
import { getUipIdByCid } from '@/api/macro/macro'
export default {
  name: 'Enterprise',
  components: {

  },
  data() {
    return {
      encodeStr,
      loading: false, // 是否加载完成-当前页控制
      iframeTimer: '',  // 是否加载中定时器-当前页控制
      footHeight: 0,  //底部高度，若为0（页面内部嵌套或者没有底部板块）
      iframeHight: window.innerHeight, // iframe高度-当前页控制
      navigation: { isFixed: true, fixedHeight: 56, totalHeight: 68 },  // iframe之外页面顶部对象，ifFixed:是否浮动；fixedHeight：浮动对象高度；totalHeight：顶部整体高度
      src: '',  //iframe嵌套页面地址
      // domain: 'https://plug.jiansheku.com', // 插件地址
      domain: 'https://pre-plug.jiansheku.com', // 插件地址测试
      // domain: 'http://192.168.60.210:3400',
      ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
      timelongs: 7200,//刷新token时间
      tokentimer: null,
    };
  },
  created() {
    if(window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com'){
      this.domain='https://plug.jiansheku.com'
    }else {
      this.domain='https://pre-plug.jiansheku.com'
      // this.domain='http://192.168.60.210:3400'
    }
    this.gettokens();
  },
  mounted() {
    this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制
    window.addEventListener('message', this.linkListener, false);
    steerScroll('companyIframe', this.navigation, this.footHeight, true); // iframeId: iframe的id；navigation:页面排除iframe后剩下的顶部高度；footHeight: 页面排除iframe后剩下的底部高度；state:监听or移除监听；parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例（可忽略）
  },
  beforeDestroy() {
    clearInterval(this.iframeTimer); // -当前页控制
    window.removeEventListener("message", this.linkListener);
    steerScroll('companyIframe', this.navigation, this.footHeight); // iframeId: iframe的id；navigation:页面排除iframe后剩下的顶部高度；footHeight: 页面排除iframe后剩下的底部高度；state:监听or移除监听；parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例（可忽略）
    clearInterval(this.tokentimer);
  },
  methods: {
    linkListener(event){
      let {data} = event
      if(data.id){
          getUipIdByCid([data.id]).then(res=>{
          if (res.code==200) {
            if(res.data&&res.data.length>0&&res.data[0].uipId){
              this.$router.push({path: '/enterprise/'+this.encodeStr(data.id)})
            }else{
              this.$tab.openPage(data.title, '/company/'+this.encodeStr(data.id))
            }

          }
        }).catch(error=>{

        });
      }else{
        if(data.url){
          this.$tab.openPage(data.title, data.url).then(() => {
          // 执行结束的逻辑
          })
        }
      }
    },
    gettokens() {
      dskAccessToken().then(res => {
        if (res.code == 200) {
          this.timelongs = res.data.expire;
          this.ak = res.data.accessToken;
          let initTime = new Date().getTime()
          if(window.location.search){
            this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
          }else{
            this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
          }
        //   if(window.location.search){
        //     this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
        //   }else{
        //     this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
        //   }
        // }else{  //更新iframe地址的accessToken
        //   let ifam = document.getElementById('companyIframe')
        //   ifam.contentWindow.postMessage({ 'accessToken': this.ak, 'initTime': initTime }, '*')
        // }
          this.refreshtoken();
        } else {
          clearTimeout(this.tokentimer);
        }
      });
    },
    refreshtoken() {
      this.tokentimer = setTimeout(() => {
        dskAccessToken().then(res => {
          if (res.code == 200) {
            this.timelongs = res.data.expire;
            this.ak = res.data.accessToken;
            let ifam = document.getElementById('companyIframe');	//iframe的id
            let akObj = res.data.expire;	//accessToken接口的返回值
            let initTime = new Date().getTime(); 	//accessToken接口返回后的当前时间戳
            ifam.contentWindow.postMessage({ 'accessToken': akObj.accessToken, 'initTime': initTime }, '*');
          } else {
            clearTimeout(this.tokentimer);
          }
        });
      }, this.timelongs * 1000);
    },
    //判断iframe页面是否加载完成-当前页控制
    iframeLoading() {
      let iframeHeight = document.getElementById("companyIframe").clientHeight, number = 0;
      this.iframeTimer = setInterval(() => {
        number++;
        if (document.getElementById("companyIframe").clientHeight != iframeHeight || number == 5000) {
          this.loading = false;
          clearInterval(this.iframeTimer);
        }
      });
    }
  }
}
</script>

<style lang="scss" scoped>
.market-container {
  width: 100%;
  height: 100%;
  padding: 16px 24px;
  box-sizing: border-box;
}
</style>
