<template>
  <div :id="id" :class="className" :style="{ height: height, width: width }" />
</template>

<script>
import tdTheme from './theme.json' // 引入默认主题
import themeCopy from './themeCopy.json' // 引入默认主题
import '../map/fujian.js'

export default {
  
  name: 'echart',
  props: {
    className: {
      type: String,
      default: 'chart'
    },
    id: {
      type: String,
      default: 'chart'
    },
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '2.5rem'
    },
    options: {
      type: Object,
      default: ()=>({})
    }
  },
  data () {
    return {
      chart: null
    }
  },
  watch: {
    options: {
      handler (options) {
        // 设置true清空echart缓存
        this.chart.setOption(options, true)
      },
      deep: true
    }
  },
  mounted () {
    console.log(this.$route.name == "newDatavScr")

    //由于现在开发新的数据大屏、主题冲突了，暂时判断一下路由来源、作为主题切换
    if(this.$route.name == "newDatavScr"){
      this.$echarts.registerTheme('tdTheme', themeCopy); // 修改默认主题

      this.initChart();
      return;
    }


    this.$echarts.registerTheme('tdTheme', tdTheme); // 覆盖默认主题
    this.initChart();
  },
  beforeDestroy () {
    this.chart.dispose()
    this.chart = null
    window.removeEventListener('resize', this.$_handleResizeChart)
  },
  methods: {
    initChart () {
      // console.log(this.$router)
      // 初始化echart
      this.chart = this.$echarts.init(this.$el, 'tdTheme')
      this.chart.setOption(this.options, true)
    
    window.addEventListener("resize", this.$_handleResizeChart);

    },
    $_handleResizeChart(){
      this.chart.resize(); 
    }
  }
}
</script>

<style>
</style>
