123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <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>
|