<template> <div class="hello"> <h1>子任务五:用折柱展示省份平均消费额和地区平均消费额</h1> <div id="chart" style="height: 800px;width: 1600px;"></div> </div> </template> <script> import { onMounted } from 'vue'; import * as echarts from "../src/assets/echarts.min"; import axios from 'axios'; export default{ setup(){ onMounted(()=>{ axios({ method:"post", url:'/api/dataVisualization/selectOrderInfo', data:{ "startTime":"2020-01-01 00:00:00", "endTime":"2020-12-30 00:00:00" } }).then((res)=>{ let da = res.data.data; console.log(da) var nationMap = new Map(); var aderrsMap = new Map(); da.forEach((e)=>{ if(!nationMap.has(e.provinceName)){ nationMap.set(e.provinceName,Number(e.finalTotalAmount/12)) }else{ let sum1 = nationMap.get(e.provinceName) +Number(e.finalTotalAmount/12); nationMap.set(e.provinceName,sum1); } }); da.forEach((e)=>{ if(!aderrsMap.has(e.regionName)){ aderrsMap.set(e.regionName,Number(e.finalTotalAmount/12)) }else{ let sum1 = aderrsMap.get(e.regionName) + Number(e.finalTotalAmount/12); aderrsMap.set(e.regionName,sum1); } }); let arr1 = Array.from(aderrsMap); let sortedArr1 = arr1.sort(function(c,d){ return d[1] - c[1]; }); let arr = Array.from(nationMap); let sortedArr = arr.sort(function(a,b){ return b[1] - a[1]; }); var top_name = []; var top_data = []; sortedArr.slice(0,5).forEach((res)=>{ top_name.push(res[0]); top_data.push(parseFloat(res[1]).toFixed(2)); }); var avg_name = []; var avg_data = []; sortedArr1.slice(0,5).forEach((res)=>{ avg_name.push(res[0]); avg_data.push(parseFloat(res[1]).toFixed(2)); }); var chartDom = document.getElementById("chart"); var myChart = echarts.init(chartDom); const option={ xAxis:[{ type:"category", data:top_name, name:"省份", },{ data:avg_name, name:"地区", } ], yAxis:{ type:"value", name:"平均消费额", }, series:[{ type:"bar", data:top_data, },{ type:"line", data:avg_data, } ] }; console.log(top_name); console.log(top_data); console.log(avg_name); console.log(avg_data); option && myChart.setOption(option,true); }).catch((err)=>{ console.log(err); }) }) } } </script> 有需要修改的地方吗
时间: 2024-04-22 15:25:17 浏览: 20
根据你提供的代码,我注意到一些需要修改的地方:
1. 需要确保你的项目中已经安装了 Vue 和 Axios 包。
2. 在 `import * as echarts from "../src/assets/echarts.min";` 这行代码中,你需要确保 `echarts.min.js` 文件位于 `../src/assets/` 目录下,并且文件名正确。
3. 在 `axios` 请求的 URL 中,你需要根据你的后端配置来设置正确的接口地址。
4. 在 `axios` 请求的数据参数中,你需要根据你的需求来设置正确的时间范围。
5. 在 `option` 对象中,你的 x 轴应包含两个对象,即 `{type: "category", data: top_name, name: "省份"}` 和 `{data: avg_name, name: "地区"}`。
6. 在 `option` 对象中,你的 series 数组应包含两个对象,即 `{type: "bar", data: top_data}` 和 `{type: "line", data: avg_data}`。
请根据你的实际需求和项目配置,对以上代码进行相应的修改。如果有其他问题,请随时提问!