【Vue3 ts】echars图表展示统计的月份数据

图片展示

此处内容为展示24年各个月份产品的创建数量。在后端统计24年各个月份产品数量后,以数组的格式发送给前端,前端负责展示。

后端

entity层:

java 复制代码
@Data
@Schema(description = "月份统计")

public class MonthCount {
    private String month;
    private Integer count;
}

service层:

java 复制代码
@Override
    public List<MonthCount> getCreateMonth() {
        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MM");
        // 查询 2024 年每个月的产品创建日期
        List<PlmProductEntity> productList = baseMapper.selectList(new QueryWrapper<PlmProductEntity>()
                .apply("YEAR(create_date) = 2024"));

        // 统计每个月份的产品数量
        Map<String, Long> countMap = productList.stream()
                .collect(Collectors.groupingBy(
                        product -> YearMonth.from(product.getCreateDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()).format(dateFormat),
                        Collectors.counting()
                ));

        // 将统计结果转换为 MonthCount 对象列表
        List<MonthCount> monthCounts = new ArrayList<>();
        countMap.forEach((month, count) -> {
            MonthCount monthCount = new MonthCount();
            monthCount.setMonth(month);
            monthCount.setCount(count.intValue()); // 将 Long 类型的 count 转换为 int
            monthCounts.add(monthCount);
        });

        return monthCounts;
    }

controller层:

java 复制代码
@GetMapping("/getCreateMonth")
    @Operation(summary = "得到创建月份")
    public Result<List<MonthCount>> getCreateMonth(){
        List<MonthCount> month = plmProductService.getCreateMonth();
        for (MonthCount monthCount :month){
            System.out.println(monthCount.getMonth());
        }
        return R2.ok(month);
    }

前端得到的数据响应格式为:

{

"type": "success",

"result": [

{

"month": "04",

"count": 1

},

{

"month": "05",

"count": 1

}

],

"code": 200,

"message": "success",

"timestamp": "2024-07-14 14:20:39"

}

可以看到成功包装为数组。

前端

typescript 复制代码
export const getCreateMonth = () => defHttp.get({ url: Api.GetCreateMonth });

此处defHttp为自己写的发送信息的方法,各位将其替换为axios发送的方式即可。

typescript 复制代码
onMounted(async () => {
    const response = await getCreateMonth();
    console.log(response);
    try {
      // 构建月份数组和对应的产品创建数量数组
      const monthNames = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
      const productCounts = monthNames.map((month) => {
        const monthData = response.find((item) => item.month === month);
        return monthData ? monthData.count : 0; // 如果没有数据,默认为0
      });
      // 设置图表的选项
      setOptions({
        tooltip: {
          trigger: 'axis',
          axisPointer: {
          lineStyle: {
            width: 1,
            color: '#019680',
          },
        },
      },
      xAxis: {
        type: 'category',
        boundaryGap: false,
        data: monthNames.map((month) => `${month}月`), // 添加月份单位
      },
      yAxis: {
        type: 'value',
      },
      grid: { left: '1%', right: '1%', top: '2%', bottom: 0, containLabel: true },
      series: [
        {
          data: productCounts,
          type: 'line',
          areaStyle: {},
        },
      ],
    });
    } catch (error) {
      console.error('Error fetching data:', error);
    }
  });

如果看到盒子被撑开但是一片空白,那么说明引入成功但数据格式输入不符上述代码的处理,这个时候就输出来看看得到的是什么样子的格式console.log(response);,再修改得到最终图形。

相关推荐
_xaboy44 分钟前
低代码可视化表单设计器 FcDesigner 远程请求教程:GET POST 变量鉴权
低代码·开源·vue·表单·fcdesigner
paopaokaka_luck1 小时前
基于springboot3+vue3的车间生产管理系统(Echarts图形化分析、BI报表)
java·前端·spring boot·学习·echarts
paopaokaka_luck7 小时前
基于springboot3+vue3+uniapp的剧本杀预约小程序(AI角色对话、协同过滤算法、地图Api、Echarts图形化分析)
java·前端·spring boot·学习·echarts
叫我:松哥8 小时前
基于flask图书管理系统,技术栈flask+layui+sqlite+Echarts
后端·python·数据分析·flask·echarts·layui
paopaokaka_luck3 天前
停车小程序(车牌OCR智能识别、地图API、Echarts图形化分析、智能车位预约、自动计费与订单处理)
小程序·ocr·echarts
宠友信息3 天前
IM系统开发技术路线分析,即时通讯源码助力快速搭建聊天应用
java·spring boot·redis·websocket·mysql·uni-app·vue
张人玉3 天前
基于 Python 的桌面端智能识别与可视化系统——生活垃圾分类可视化大屏
python·分类·sqlite·echarts·生活
张人玉4 天前
基于 Ultralytics YOLOv8(开源) 与 PyQt5 的行人检测、分割、二次识别与数据分析桌面应用
qt·yolo·信息可视化·开源·echarts
paopaokaka_luck4 天前
基于springboot3+vue3的支教志愿者管理系统(AI问答、协同过滤算法、Echarts图形化分析)
spring boot·echarts
南城以南溫暖如初1474 天前
从传统健身房到无人值守:24小时自助健身系统的技术实现路径
java·spring boot·mysql·架构·vue