qingwenc 2023-10-24 10:16 采纳率: 52.4%
浏览 9
已结题

vue中动态生成echarts饼图加载数据失败

vue中通过调用后台获取到List集合数据,前端通过变量接收,然后给data赋值,但是生成echarts饼图加载数据失败

mounted() {
    let myChart = echarts.init(document.getElementById(this.cli));
    var Xdata=[];
    this.http.post("/api/PurchTable/test").then(reslut=>{
      console.info(reslut);
      reslut.forEach((value, index) => {
        Xdata.push({
          name: value.name,
          value: value.value
        });
      });
    });
    console.info(Xdata);

    // 绘制图表
    myChart.setOption({
      title: {
        text: "Vue3从入门到放弃",
        left: "center",
      },
      tooltip: {
        trigger: "item",
      },
      legend: {
        top: 100,
        orient: "vertical",
        right: "10",
      },
      series: [
        {
          name: "访问来源",
          type: "pie",
          radius: ["40%", "75%"],
          avoidLabelOverlap: false,
          itemStyle: {
            borderRadius: 10,
            borderColor: "#fff",
            borderWidth: 2,
          },
          label: {
            show: false,
            position: "center",
          },
          emphasis: {
            label: {
              show: true,
              fontSize: "40",
              fontWeight: "bold",
            },
          },
          labelLine: {
            show: false,
          },
          data:Xdata,
          // data: [
          //   { value: 1048, name: "搜索引擎" },
          //   { value: 735, name: "直接访问" },
          //   { value: 580, name: "邮件营销" },
          //   { value: 484, name: "联盟广告" },
          //   { value: 300, name: "视频广告" },
          // ],
        },
      ],
    });

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-10-24 10:23
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在Vue中动态生成ECharts饼图并加载数据失败的原因可能是在mounted()钩子函数中,异步请求的数据还没有完全获取到,就已经开始设置图表的选项。为了解决这个问题,你可以将设置图表选项的操作放在asyncData()函数中,并在created()钩子函数中调用asyncData()函数。这样可以确保在设置图表选项时,异步请求的数据已经完全获取到。

    修改后的代码如下:

    export default {
      data() {
        return {
          myChart: null,
          Xdata: [],
        };
      },
      async mounted() {
        await this.asyncData();
      },
      methods: {
        async asyncData() {
          this.myChart = echarts.init(document.getElementById(this.cli));
          await this.http.post("/api/PurchTable/test").then((result) => {
            console.info(result);
            result.forEach((value, index) => {
              this.Xdata.push({
                name: value.name,
                value: value.value,
              });
            });
          });
          console.info(this.Xdata);
    
          // 绘制图表
          this.myChart.setOption({
            title: {
              text: "Vue3从入门到放弃",
              left: "center",
            },
            tooltip: {
              trigger: "item",
            },
            legend: {
              top: 100,
              orient: "vertical",
              right: "10",
            },
            series: [
              {
                name: "访问来源",
                type: "pie",
                radius: ["40%", "75%"],
                avoidLabelOverlap: false,
                itemStyle: {
                  borderRadius: 10,
                  borderColor: "#fff",
                  borderWidth: 2,
                },
                label: {
                  show: false,
                  position: "center",
                },
                emphasis: {
                  label: {
                    show: true,
                    fontSize: "40",
                    fontWeight: "bold",
                  },
                },
                labelLine: {
                  show: false,
                },
                data: this.Xdata,
              },
            ],
          });
        },
      },
    };
    

    这样修改后,应该可以解决动态生成ECharts饼图加载数据失败的问题。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么