vue+element-ui,怎么把后端返的数据,获取集合中的key和value值,并把它们相对应

vue+element-ui,怎么把后端返的数据,获取集合中的key和value值,并把它们相对应

项目目前的问题
echarts中的饼状图,每条数据所对应的颜色不对,和后端返的颜色不对应,取值取错了,怎么样才能取值正确

后端返值

img

目前代码情况

img

太简单了

this.color = value.result2?.map(item => value.result3[item.series]);

color什么类型你要搞懂,两边能赋值否

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/767548
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【vue后台管理系统】基于Vue+Element-UI+ECharts开发通用管理后台(中)
  • 除此之外, 这篇博客: Vue Element UI 之ECharts图表中的 完整实例代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • <template>
    	<div id="echarts_box" style="width: 600px;height:400px;"></div>
    </template>
    
    <script>
    	import echarts from 'echarts'
    	export default {
    		data() {
    			return {}
    		},
    		created() {},
    		// DOM 渲染完成触发
    		mounted() {
    		  // 1. 基于准备好的dom,初始化echarts实例
    		  var myChart = echarts.init(document.getElementById('echarts_box'))
    		  // 2. 发起请求,获取数据
    		  const { data: res } = await this.$http.get('reports/type/1')
    		  if (res.meta.status !== 200) {
    		     return this.$message.error('获取折线图数据失败!')
    		  }
    		  // 3. 使用刚指定的配置项和数据,显示图表
    		  myChart.setOption(data)
    		}
    	}
    </script>
    
  • 以下回答由chatgpt基于相关博客总结生成:

    针对这个问题,我可以给出一个可能的解决方案:

    首先,你需要获取后端返回的数据集合,并正确获取每个键和值。这可以通过在Vue组件的createdmounted钩子中,使用axios或其他网络请求库向后端发送请求并获取数据。具体的代码如下所示:

    <template>
      <div>
        <!-- 饼状图组件 -->
        <chart :data="chartData"></chart>
      </div>
    </template>
    
    <script>
    import axios from 'axios';
    
    export default {
      data() {
        return {
          chartData: [] // 存储后端返回的数据
        };
      },
      created() {
        this.fetchData();
      },
      methods: {
        fetchData() {
          axios.get('your-backend-api-url')
            .then(response => {
              this.chartData = response.data; // 将后端返回的数据赋值给chartData
            })
            .catch(error => {
              console.error(error);
            });
        }
      }
    };
    </script>
    

    在上述代码中,我们使用axios库发送GET请求向后端获取数据,并将获取到的数据存储在chartData变量中。

    接下来,你需要将每个键和值与相应的颜色进行匹配。这可以通过在饼状图组件中遍历chartData数组,并为每个数据项设置正确的颜色值。具体的代码如下所示:

    <template>
      <div>
        <el-chart :data="chartData"></el-chart>
      </div>
    </template>
    
    <script>
    import echarts from 'echarts';
    
    export default {
      props: {
        data: {
          type: Array,
          required: true
        }
      },
      mounted() {
        this.renderChart();
      },
      methods: {
        renderChart() {
          const chart = echarts.init(document.getElementById('chart'));
    
          const colors = ['red', 'green', 'blue']; // 这里假设有三种颜色
          const data = this.data.map((item, index) => {
            return {
              ...item,
              itemStyle: {
                color: colors[index % colors.length] // 根据索引对应颜色数组获取颜色值
              }
            };
          });
    
          const options = {
            series: [{
              type: 'pie',
              data: data
            }]
          };
    
          chart.setOption(options);
        }
      }
    };
    </script>
    

    在上述代码中,我们首先使用echarts.init方法初始化饼状图并获取到其实例。然后,我们通过遍历从父组件传递过来的data数组,为每个数据项设置相应的颜色值。这里假设我们有一个颜色数组colors,根据索引对应颜色数组获取颜色值,并将其作为itemStylecolor属性值。最后,我们根据数据配置相应的饼状图选项,并通过chart.setOption方法将选项应用到饼状图中。

    需要注意的是,具体的颜色数组以及颜色与数据的匹配规则可能需要根据你的业务逻辑进行调整。

    这样,当你获取到后端返回的数据集合并渲染到饼状图中时,每条数据所对应的颜色就会与后端返回的颜色匹配。

img

问题先不说,为啥你们后端会用中文为Key值