react封装echarts画图支持响应式

1.把下载的echarts.js下载下来引入,封装公共函数

/**
     *
     * @param domElement	// 获取的dom
     * @param  Array xAxisData	// x轴值
     * @param  Array seriesData	// Y轴值
     * @param   legendData	//  //legend的data: 用于设置图例,data内的字符串数组需要与sereis数组内每一个series的name值对应
     * @param   seriesName //名字
     * @param   symbolShape  // 默认是空心圆(中间是白色的),改成实心圆
     * @param   itemColor  // 会设置点和线的颜色,所以需要下面定制 line
     * @param   lineColor    // 线条颜色
     * 
     */ 

//生成图片的公共函数
  chartsCommon=(domElement, xAxisData, seriesData, legendData, seriesName,symbolShape,itemColor,lineColor)=> {
//定义响应式占父容器的百分比
    let resizeWorldMapContainer = function () {
      domElement.style.width = "100%";
    };
//执行方法
    resizeWorldMapContainer();
    let myChart = echarts.init(domElement);
    let option = {
      title: {
        text: ''
      },
      tooltip: {
        //触发类型,默认('item')数据触发,可选为:'item' | 'axis'
        trigger: 'axis'
      },
      legend: {
        //垂直安放位置,默认为全图顶端,可选为:'top' | 'bottom' | 'center' | {number}(y坐
     标,单位px)
        y: 'bottom',
        //legend的data: 用于设置图例,data内的字符串数组需要与sereis数组内每一个series的name
       值对应
        data: legendData
      },
      xAxis: {
        data: xAxisData
      },
      grid:{
        left:80,
        right:80
      },
      yAxis: {},
      series: [{
        name: seriesName,
        type: 'line',
        data: seriesData,
        symbolSize: 12,
        symbol: symbolShape,      // 默认是空心圆(中间是白色的),改成实心圆
        itemStyle: {
          normal: {
            color:itemColor ,  // 会设置点和线的颜色,所以需要下面定制 line
          }
        },
        lineStyle: {
          normal: {
            color:lineColor,    // 线条颜色
          }
        },
      }]
    };
    myChart.setOption(option);
   //屏幕发生变化持续执行在父容器的占比函数实行响应
    window.onresize = function () {
      resizeWorldMapContainer();
      myChart.resize();
    };
  };

2.方法调用公共封装的echarts方法

 chartsOncetestingUser=(dataX,dataY)=> {
    dataX为横坐标的值,类型数组.dataY为纵坐标的值,类型数组
    //调用公共的生成图片函数
    this.chartsCommon(
     //获取dom
      this.refs.linear_img_gdb,
      dataX,
      dataY,
      ['GDB生产值'],
      'GDB生产值',
      'square',
      '#999',
      '#b3b3b3'
    )
  };

3.html标签

<div ref='linear_img_gdb'></div>

猜你喜欢

转载自blog.csdn.net/qq_39634880/article/details/84666930