美文网首页
vue echarts 随窗口变化

vue echarts 随窗口变化

作者: lovelydong | 来源:发表于2021-04-26 09:44 被阅读0次
<template>
  <el-card class="img-card-item">
    <div slot="header" class="clearfix">
      <span>案例</span>
    </div>
    <div ref="barChart" style="height: 300px"></div>
  </el-card>
</template>
<script>
import echarts from 'echarts'
export default {
  props: {
    barData: {
      type: Object,
      default: () => {
        return {}
      },
    },
  },
  data() {
    return {}
  },
  computed: {
    chartsData() {
      return this.barData
    },
  },
  watch: {
    barData: {
      handler() {
        this.setOptions()
      },
      deep: true,
    },
  },
  mounted() {
    this.initCharts()
  },
  beforeDestroy: function() {
    window.removeEventListener('resize', this.barChart.resize)
  },
  methods: {
    handleDay() {},
    handleChange() {},
    initCharts() {
      this.barChart = echarts.init(this.$refs.barChart)
      this.setOptions()
      window.addEventListener('resize', this.barChart.resize)
    },
    setOptions() {
      //let that = this
      this.barChart.setOption({
        backgroundColor: '#FFF',
        grid: {
          top: '10%',
          bottom: '10%',
          left: '10%',
          right: '4%',
        },
        tooltip: {
          trigger: 'item',
          label: {
            show: true,
          },
        },
        xAxis: {
          boundaryGap: true, //默认,坐标轴留白策略
          axisLine: {
            show: false,
          },
          splitLine: {
            show: false,
          },
          axisTick: {
            show: false,
            alignWithLabel: true,
          },
          data: this.chartsData.dataName,
        },
        yAxis: {
          axisLine: {
            show: false,
          },
          splitLine: {
            show: true,
            lineStyle: {
              type: 'dashed',
              color: 'rgba(33,148,246,0.2)',
            },
          },
          axisTick: {
            show: false,
          },
        },
        series: [
          {
            type: 'bar',
            itemStyle: {
              color: 'rgb(33,148,246)',
              borderWidth: 1,
              borderColor: '#FFF',
              barBorderRadius: [8, 8, 0, 0],
            },
            barWidth: 25,

            label: {
              show: false,
              distance: 1,
            },
            data: this.chartsData.dataList,
          },
        ],
      })
    },
  },
}
</script>
<style lang="scss" scoped>
.img-card-item {
  ::v-deep .el-card__body {
    padding: 10px;
  }
  .header-r {
    float: right;
  }
}
</style>


相关文章

网友评论

      本文标题:vue echarts 随窗口变化

      本文链接:https://www.haomeiwen.com/subject/dtvsrltx.html