以下是一个简单的示例,展示如何获取数据并将其传递给图表:

  1. 在页面中定义一个图表组件,例如 echarts:
<template>
  <view>
    <ec-canvas id="mychart" canvas-id="mychart-canvas" :ec="ec"></ec-canvas>
  </view>
</template>

<script>
  import * as echarts from '@/components/ec-canvas/echarts';

  export default {
    data() {
      return {
        ec: {
          lazyLoad: true
        },
        chartData: null
      }
    },
    methods: {
      initChart() {
        this.ecComponent = this.selectComponent('#mychart');
        this.ecComponent.init((canvas, width, height) => {
          const chart = echarts.init(canvas, null, {
            width: width,
            height: height
          });
          this.setChartData(chart);
          return chart;
        });
      },
      setChartData(chart) {
        if (this.chartData) {
          chart.setOption({
            xAxis: {
              type: 'category',
              data: this.chartData.categories
            },
            yAxis: {
              type: 'value'
            },
            series: [{
              data: this.chartData.data,
              type: 'bar'
            }]
          });
        }
      },
      fetchData() {
        // 调用接口获取数据
        // 例如:this.$http.get('/api/data').then(res => { this.chartData = res.data; });
        // 这里使用固定数据进行演示
        this.chartData = {
          categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
          data: [120, 200, 150, 80, 70, 110, 130]
        };
      }
    },
    mounted() {
      this.initChart();
      this.fetchData();
    }
  }
</script>
  1. 在页面中引入 echarts 组件:
{
  "usingComponents": {
    "ec-canvas": "@/components/ec-canvas/ec-canvas"
  }
}
  1. 在页面中调用接口获取数据,例如使用 uni.request() 方法:
uni.request({
  url: '/api/data',
  success: (res) => {
    this.chartData = res.data;
  }
});

以上示例中,使用了 echarts 组件来绘制图表,并在页面中调用接口获取数据。获取到数据后,将其传递给图表组件,并更新图表的配置。在 mounted 生命周期中,调用 initChart() 方法初始化图表,并在 fetchData() 方法中获取数据并更新图表。


原文地址: https://www.cveoy.top/t/topic/bsu1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录