• 微信小程序图表的引入并解决van-tab切换时不显示图表的问题


    1、在GitHub上下载ec-canvas,地址如下:

    GitHub - ecomfe/echarts-for-weixin: Apache ECharts 的微信小程序版本

    2、找到文件夹下面的ec-canvas文件夹,把它放在与pages同级的目录。

    3、在需要用到页面里面引入,如index.json

    1. {
    2. "usingComponents": {
    3. "ec-canvas": "../../ec-canvas/ec-canvas"
    4. }
    5. }

    4、在index.js里面echarts.js

    import * as echarts from '../../ec-canvas/echarts.js'

    5、在index.wxml里面添加元素

    1. <view class="box">
    2. <ec-canvas
    3. id="mychart-dom-bar"
    4. canvas-id="mychart-bar"
    5. ec="{{ ec1 }}"
    6. >ec-canvas>
    7. view>

    6、在index.wxss里面定义容器的大小

    1. .box {
    2. width:100%;
    3. height:600rpx;
    4. margin-top: 30;
    5. font-size: 42rpx;
    6. font-weight: bold;
    7. }

    7、在index.js里面添加代码

    1. // 1、引入依赖脚本
    2. import * as echarts from '../../../ec-canvas/echarts.js'
    3. ///报表数据
    4. var chartData = {
    5. dataList:[
    6. {value: 1548,name: 'CityE'},
    7. { value: 735, name: 'CityC' },
    8. { value: 510, name: 'CityD' },
    9. { value: 434, name: 'CityB' },
    10. { value: 335, name: 'CityA' }
    11. ],
    12. dataLegend:['CityA', 'CityB', 'CityD', 'CityC', 'CityE']
    13. };
    14. function setOption(dataList,dataLegend){
    15. var option = {
    16. title: {
    17. text: '本月未巡检区域占比',
    18. top:10,
    19. left: 'center',
    20. textStyle: {
    21. fontSize: 14,
    22. fontWeight: 'normal',
    23. },
    24. },
    25. tooltip: {
    26. trigger: 'item',
    27. },
    28. legend: {
    29. bottom: 10,
    30. left: 'center',
    31. data:dataLegend,
    32. itemWidth:8,//图例标记的图形宽度
    33. itemHeight:8,
    34. icon:"circle",
    35. },
    36. series: [
    37. {
    38. type: 'pie',
    39. radius: '45%',
    40. center: ['50%', '50%'],
    41. selectedMode: 'single',
    42. data:dataList,
    43. label: {
    44. formatter: '{b}: ({d}%)'
    45. },
    46. }
    47. ]
    48. };
    49. return option
    50. }
    51. // 2、进行初始化数据
    52. function initChart(canvas, width, height, dpr) {
    53. var echart = echarts.init(canvas, null, {
    54. width: width,
    55. height: height,
    56. devicePixelRatio: dpr // new
    57. });
    58. canvas.setChart(echart);
    59. let option = setOption(chartData.dataList,chartData.dataLegend)
    60. echart.setOption(option)
    61. chart = echart
    62. return echart
    63. };
    64. const app = getApp()
    65. ///定义图表
    66. var chart = null;
    67. Page({
    68. data: {
    69. ec1: {
    70. onInit: initChart // 3、将数据放入到里面
    71. },
    72. },
    73. })

    8、运行时可能会提示echarts文件比较大,如果不想要这个提示,可以去官网定制echarts类型,地址如下:ECharts 在线构建 https://echarts.apache.org/zh/builder.html   

    下载后,是min.js文件,可以重命名为echarts.js并替换掉项目里面的js文件

    9、当放置在van-tabs的第二个tab选项时,需要在index.wxml里面加上wx:if条件

    1. <van-tabs sticky offset-top="{{naviBarHeight}}" color="#1989f7" active="{{activeName}}" bind:change="onChange">
    2. <van-tab title="选项卡1">van-tab>
    3. <van-tab title="选项卡2">
    4. <view class="box" wx:if="{{activeName=='1'}}">
    5. <ec-canvas
    6. id="mychart-dom-bar"
    7. canvas-id="mychart-bar"
    8. ec="{{ ec1 }}"
    9. >ec-canvas>
    10. view>
    11. van-tab>
    12. van-tabs>

    10、js代码

    1. data:{
    2. activeName: 0,
    3. },
    4. onChange(event){
    5. this.setData({
    6. activeName: event.detail.name,
    7. });
    8. },

  • 相关阅读:
    Markdown语法
    【开源项目】mysql大表数据迁移
    【高效的秘密】让k8s运维更高效-日志搜索脚本
    几何算法——介绍
    Clever Internet Suite for Delphi, C++Builder
    项目管理PMP考试技巧
    第九章:注解
    智慧燃气系统建设方案:建设目标、建设方案、技术特征、应用价值
    4(5)-碘乙酰氨基荧光素,CAS号: 63368-54-7
    优雅的实现EasyPoi动态导出列的两种方式
  • 原文地址:https://blog.csdn.net/qq_29124867/article/details/125991573