当前位置:   article > 正文

UNIAPP微信小程序使用Echarts_uni-ec-canvas

uni-ec-canvas

前言

1.在uni-app中进行数据分析时使用到了echarts,于是在网上搜索了许多教程都很麻烦而且还没有效果对于我这样的小白来说简直是一种折磨.

2.因为我目前只用uni-app在进行微信小程序的学习其余的兼容性目前咱不晓得!!!下面记录一下我解决的方法

下载Echarts插件

1.插件地址:echarts-for-wx - DCloud 插件市场

点击确定!

2.导入插件以后会生成一个js_sdk文件夹

3.在项目中新建一个components文件夹然后将js_sdk文件夹下的uni-ec-canvas复制过去并右击components文件夹新建组件pieChart

4.pieChart组件内容如下:

  1. <template>
  2. <view>
  3. <uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas" canvas-id="uni-ec-canvas" :ec="ec">
  4. </uni-ec-canvas>
  5. </view>
  6. </template>
  7. <script>
  8. import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
  9. import * as echarts from '@/components/uni-ec-canvas/echarts'
  10. let chart = null
  11. export default {
  12. components: {
  13. uniEcCanvas
  14. },
  15. props: {
  16. abnormal: {
  17. type: Number,
  18. // 定义是否必须传
  19. required: true,
  20. // 定义默认值
  21. default: 0
  22. },
  23. absence: {
  24. type: Number,
  25. // 定义是否必须传
  26. required: true,
  27. // 定义默认值
  28. default: 0
  29. },
  30. },
  31. data() {
  32. return {
  33. ec: {
  34. //是否懒加载
  35. lazyLoad: true
  36. },
  37. }
  38. },
  39. methods: {
  40. initChart(canvas, width, height, canvasDpr) {
  41. chart = echarts.init(canvas, null, {
  42. width: width,
  43. height: height,
  44. devicePixelRatio: canvasDpr
  45. })
  46. canvas.setChart(chart)
  47. var data=[{value:this.abnormal, name:'正常',"itemStyle":{"normal":{"color":"#00CCB8"}}},
  48. {value:this.absence, name:'异常',"itemStyle":{"normal":{"color":"#FFCB96"}}}];
  49. var dataName = data.reduce((per,cur,i)=>{per[i]=cur.name;return per},[]);
  50. var a=0;
  51. for(var i=0; i<data.length; i++)
  52. {
  53. a+=data[i].value;
  54. }
  55. data.push({value:a, name:'__other', itemStyle:{normal:{color:'rgba(0,0,0,0)'}}});
  56. let option = {
  57. legend: {
  58. orient: "horizontal",//图例的布局,水平布局、垂直布局
  59. icon:'circle',
  60. bottom:50,
  61. textStyle: {//图例字体样式
  62. color: "#00CCB8",
  63. fontSize: 15,
  64. fontFamily: "微软雅黑"
  65. },
  66. data:dataName,
  67. formatter: e =>{
  68. let val=0;
  69. data.forEach(el => {
  70. if(e == el.name) val = el.value
  71. });
  72. return `${e}${val}天`
  73. }
  74. },
  75. series : [
  76. {
  77. name: '上下班统计',
  78. type: 'pie',
  79. startAngle:-180,
  80. radius : '95%',
  81. center: ['50%', '60%'],
  82. data:data,
  83. itemStyle: {
  84. borderRadius:0,
  85. borderColor:'#fff',
  86. borderWidth:5
  87. },
  88. label: {
  89. normal: {
  90. show: false,
  91. },
  92. },
  93. labelLine: {
  94. normal: {
  95. show: false
  96. }
  97. },
  98. }
  99. ]
  100. };
  101. chart.setOption(option)
  102. return chart
  103. },
  104. },
  105. mounted() {
  106. this.$refs.canvas.init(this.initChart)
  107. }
  108. }
  109. </script>
  110. <style>
  111. .uni-ec-canvas {
  112. width: 100%;
  113. height: 500rpx;
  114. display: block;
  115. margin-top: 30rpx;
  116. }
  117. </style>

5,最后在pages文件夹下需要引入组件的页面中使用

  1. <template>
  2. <view>
  3. <pie-chart :abnormal="abnormal" :absence="absence"></pie-chart>
  4. </view>
  5. </template>
  6. <script>
  7. import pieChart from '@/components/pieChart/pieChart.vue'
  8. let chart = null
  9. export default {
  10. components: {
  11. pieChart
  12. },
  13. data() {
  14. return {
  15. abnormal:10,
  16. absence:19,
  17. }
  18. },
  19. }
  20. </script>

6.运行结果如下:

需要注意插件中内置的echarts.js源文件太大,但是一个项目用不到那么多的数据展示图,因此可以到ECharts 在线构建

中进行定制!!!版本尽量选择5.0以下的,因为高版本的我还没用过

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/603935
推荐阅读
相关标签
  

闽ICP备14008679号