rw941123 2023-03-24 22:39 采纳率: 80%
浏览 27
已结题

ECharts饼图从数据库中取出数据

我想做一个饼图,请问需要想从数据库中取出itemname和numbers放入饼图中,应该写几个实体存数据呢?饼图哪里需要放数据呢?
我从后台取出物资信息及饼图的代码如下:

methods: {
    async getStockList() {
      const {data: res} = await this.$http.get("allStock", {params: this.queryInfo});
      this.stockList = res.data;//用户列表
      this.total = res.numbers;//总用户数
}

getEchartData2(){
      var myChart = echarts.init(document.getElementById("bingtu"));
      var option = {
        title: {
          text: '库存占比图',
          left: 'left'
        },
        tooltip: {
          trigger: 'item'
        },
        legend: {//图示
          orient: 'vertical',
          left: 'right',
          right: 10,
          top: 20,
          bottom: 20,
      
        },
        series: [
          {
            name: 'Access From',
            type: 'pie',
            radius: "55%",
            center: ["40%", "50%"],
            data: [],
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      };
          myChart.setOption(option);
    }

  • 写回答

1条回答 默认 最新

  • IT_service_mesh 2023-03-24 22:43
    关注

    参考GPT和自己的思路:对于从数据库中取出的itemname和numbers放入饼图中的问题,你只需要定义一个存放数据的数组即可。在getStockList()方法中,将从数据库中取出的itemname和numbers存入该数组中。然后在getEchartData2()方法中的series中,将该数组赋值给data属性即可将数据放入饼图中。

    具体代码实现如下:

    data() {
      return {
        stockData: []  //存放itemname和numbers的数组
      }
    },
    methods: {
      async getStockList() {
        const {data: res} = await this.$http.get("allStock", {params: this.queryInfo});
        this.stockList = res.data;  //用户列表
        this.total = res.numbers;  //总用户数
        // 将itemname和numbers存入stockData数组中
        this.stockList.forEach(item => {
          this.stockData.push({
            name: item.itemname,
            value: item.numbers
          });
        });
      },
      getEchartData2() {
        var myChart = echarts.init(document.getElementById("bingtu"));
        var option = {
          title: {
            text: '库存占比图',
            left: 'left'
          },
          tooltip: {
            trigger: 'item'
          },
          legend: {// 图示
            orient: 'vertical',
            left: 'right',
            right: 10,
            top: 20,
            bottom: 20,
          },
          series: [
            {
              name: 'Access From',
              type: 'pie',
              radius: "55%",
              center: ["40%", "50%"],
              data: this.stockData,  //将stockData数组赋值给data属性
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ]
        };
        myChart.setOption(option);
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题