vue引入echart组件

偏执的太偏执、 2022-06-06 12:35 378阅读 0赞

vue引入echart组件

本文主要参考:

http://blog.csdn.net/u013069892/article/details/70256596

http://echarts.baidu.com/tutorial.html\#ECharts%20%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%92%8C%E8%A1%8C%E4%B8%BA

好,下面上货。

1、首先需要引入echart模块。

npm install echarts —save

2、然后在main.js中添加如下内容:

importechartsfrom’echarts’

Vue.prototype.$echarts=echarts;

3、在界面中使用echart。

  1. <template>
  2. <div>
  3. this is chart example<br/>
  4. <div>{
  5. {selected}}</div>
  6. <div>
  7. <div id="myChart" :style="{width: '600px', height: '500px'}"></div>
  8. </div>
  9. </div>
  10. </template>
  11. <script>
  12. import {mapGetters, mapActions} from 'vuex'
  13. export default {
  14. data () {
  15. return {
  16. msg: 'Welcome to Your Vue.js App',
  17. myChart: {},
  18. selected: {
  19. "直接访问": true,
  20. "邮件营销": true,
  21. "联盟广告": true,
  22. "视频广告": true,
  23. "搜索引擎": true,
  24. "百度": true,
  25. "谷歌": true,
  26. "必应": true,
  27. "其他": true
  28. }
  29. }
  30. },
  31. mounted: function () {
  32. let that = this;
  33. let myChart = this.$echarts.init(document.getElementById('myChart'));
  34. that.myChart = myChart;
  35. that.drawLine();
  36. that.myChart.on('legendselectchanged', function (params) {
  37. // 获取点击图例的选中状态
  38. let isSelected = params.selected[params.name];
  39. that.selected = params.selected;
  40. // 在控制台中打印
  41. console.log((isSelected ? '选中了' : '取消选中了') + '图例' + params.name);
  42. // 打印所有图例的状态
  43. console.log(params.selected);
  44. });
  45. },
  46. methods: {
  47. drawLine: function () {
  48. let option = {
  49. tooltip: {
  50. trigger: 'axis',
  51. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  52. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  53. }
  54. },
  55. legend: {
  56. data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎', '百度', '谷歌', '必应', '其他']
  57. },
  58. grid: {
  59. left: '3%',
  60. right: '4%',
  61. bottom: '3%',
  62. containLabel: true
  63. },
  64. xAxis: [
  65. {
  66. type: 'category',
  67. data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
  68. }
  69. ],
  70. yAxis: [
  71. {
  72. type: 'value'
  73. }
  74. ],
  75. series: [
  76. {
  77. name: '直接访问',
  78. type: 'bar',
  79. data: [320, 332, 301, 334, 390, 330, 320]
  80. },
  81. {
  82. name: '邮件营销',
  83. type: 'bar',
  84. stack: '广告',
  85. data: [120, 132, 101, 134, 90, 230, 210]
  86. },
  87. {
  88. name: '联盟广告',
  89. type: 'bar',
  90. stack: '广告',
  91. data: [220, 182, 191, 234, 290, 330, 310]
  92. },
  93. {
  94. name: '视频广告',
  95. type: 'bar',
  96. stack: '广告',
  97. data: [150, 232, 201, 154, 190, 330, 410]
  98. },
  99. {
  100. name: '搜索引擎',
  101. type: 'bar',
  102. data: [862, 1018, 964, 1026, 1679, 1600, 1570],
  103. markLine: {
  104. lineStyle: {
  105. normal: {
  106. type: 'dashed'
  107. }
  108. },
  109. data: [
  110. [{type: 'min'}, {type: 'max'}]
  111. ]
  112. }
  113. },
  114. {
  115. name: '百度',
  116. type: 'bar',
  117. barWidth: 5,
  118. stack: '搜索引擎',
  119. data: [620, 732, 701, 734, 1090, 1130, 1120]
  120. },
  121. {
  122. name: '谷歌',
  123. type: 'bar',
  124. stack: '搜索引擎',
  125. data: [120, 132, 101, 134, 290, 230, 220]
  126. },
  127. {
  128. name: '必应',
  129. type: 'bar',
  130. stack: '搜索引擎',
  131. data: [60, 72, 71, 74, 190, 130, 110]
  132. },
  133. {
  134. name: '其他',
  135. type: 'bar',
  136. stack: '搜索引擎',
  137. data: [62, 82, 91, 84, 109, 110, 120]
  138. }
  139. ]
  140. };
  141. this.myChart.setOption(option);
  142. }
  143. },
  144. computed: mapGetters([])
  145. }
  146. </script>

4、最后的运行效果如下图:

Center

发表评论

表情:
评论列表 (有 0 条评论,378人围观)

还没有评论,来说两句吧...

相关阅读