vue echarts的使用

1、子组件

commomEcharts.vue

完整代码
<template>
 <div class="box">
   <!--    子组件需要得到的值  id 和 data-->
   <div  v-bind:id=id  ref="data" style="width:80vw;height:30vh"></div>
 </div>
</template>
<!--开始在js里画图表 -->
<script>
 export default {
   name: "barChart",
   props: ["id", "data"], //接受从父组件传回的值
   data() {
     return {}
   },
   //实时监听父组件传过来的值
   //然后执行drawBar方法 重新绘制柱状图
   watch: {
     data: {
       handler(value) {
         this.drawBar(value)
       },
       deep: true//深度监听
     }
   },
   mounted() {
     this.drawBar(this.data)
   },
   methods: {
     drawBar({
               textTile = '',  // 标题 柱状图options里需要用的数据这里作为参数从data里面取值
               totalText = '',//标签
               xData = [],//x轴的数据
               legendTitle = [],//图例
               series = [],//series的数据
             } = {}  //作为一个整体的参数
     ) {   //现在是真正开始画图表的时候
       let barBox = this.$echarts.init(document.getElementById(this.id));
       //给图表一个指定的容器dom
       let option = { //设置图表的options
         //1.先设置图表的标题
         title: {
           text: textTile,//使用父组件传过来的数据
           textStyle: {
             color: '#7099FF',
             fontsize: 20
           }
         },
       
         //2.直角坐标系绘图区域
         grid: {
           top: '2%',
           left: '0%',
           right: '0%',
           bottom: '15%',
           containLabel: true
         },
         //3.下载切换区域
         toolbox: {
         show: true,
         feature: {
           dataView: { show: true, readOnly: false },
           magicType: { show: true, type: ["line", "bar"] },
           restore: { show: true },
           saveAsImage: { show: true }
         }
       },
       calculable: true,
         tooltip: {
         trigger: "axis"
       },
       legend: {
         icon: "rect", //这个字段控制形状类型包括 circle,rect ,roundRect,triangle,diamond,pin,arrow,none
         itemWidth: 10, //设置宽度
         itemHeight: 10, //设置高度
         itemGap: 40, //设置间距
         bottom: 10,
         left: 'center',
         data: legendTitle
       },
         //4.x轴相关结构
         xAxis:
           {
             type: "category",
             data: xData,
             axisLine: {
               show: true,
                lineStyle: {
               color: "rgba(204,204,204)",
               width: 1,
               type: "solid"
             }
             },
             axisLabel: {
               interval: 0,
               fontSize: 10,
               // rotate: 20
             },
             boundaryGap: true,
             axisTick: {
               alignWithLabel: true
             },
           },
         //5.y轴相关结构
         yAxis:
           {
             type: "value",
             axisLine: {
               show: true,
                lineStyle: {
               color: "rgba(204,204,204)",
               width: 1,
               type: "solid"
             }
             },
             splitLine: {
               show: false
             },
             // boundaryGap: true,
           },
         //6.固定说明文字
         graphic: [{
           type: 'group',
           id: 'textGroup1',
           left: '1%',
           top: '15%',
           // bounding: 'raw',
           children: [
             {
               type: 'text',
               z: 100,
               top: 'middle',
               left: 'center',
               style: {
                 // text: 副标题
                 text: totalText,
                 fontSize: 15,
                 fill: '#A9A9AB',
               }
             }

           ]
         }],
         //7.图表的相关series设置
         series: series,
       };
       //柱状图的相关结构已经定义好了调用setoption
       barBox.setOption(option, true);
       // console.log(option)
       window.addEventListener("resize", function () {
         barBox.resize();
       })
     }
   }
 }
</script>

父组件引用

import BarChart from "@/view/Electricity/components/commomEcharts";

2、父组件

主要代码片段
<template>
  <div class="content_main">
   <!--  调用子组件  对应子组件的id=bar和data=objectData数据绑定-->
      <bar-chart :id="'line1'" :data="objectData"></bar-chart>
      <bar-chart :id="'line2'" :data="objectData1"></bar-chart>
      <bar-chart :id="'line3'" :data="objectData2"></bar-chart>
  </div>
</template>

export default {
  components: { BarChart },
  data() {
    return {
      objectData: {
        series: [],
        legendTitle:['UA','UB','UC'],
        xData: [],
      },
      objectData1: {
        series: [],
        legendTitle:[],
        xData: [],
      },
      objectData2: {
        series: [],
        legendTitle:[],
        xData: [],
      },
    };
  mounted() {
  this.getSeries();
  },
  getSeries() {
      this.objectData.series = [
        {
          name: "UA",
          type: "line",//这里可修改(bar,pie)
          barWidth: "40%", //柱图宽度
          data: ['32', '30', '28', '29', '36', '33', '25'],
          itemStyle: {
            normal: {
              color: "#6994FF",
            },
          },
        },
        {
          name: "UB",
          type: "line",//这里可修改(bar,pie)
          barWidth: "40%", //柱图宽度
   data: ['12', '52', '20', '26', '31', '10', '35'],
          itemStyle: {
            normal: {
              color: "#73DEB3",
            },
          },
        },
        {
          name: "UC",
          type: "line",//这里可修改(bar,pie)
          barWidth: "40%", //柱图宽度
           data: ['9', '12', '25', '36', '41', '20', '30'],
          itemStyle: {
            normal: {
              color: "#EB785D",
            },
          },
        },
      ];
    },
  }

运行结果

image.png
代码需稍微改动,祝好运~~~~~~~~
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352