当前位置: 首页 > article >正文

2024大数据职业技能竞赛(国赛)模块E-工业 用折线图展示设备OP160每日的运行时长

 2024大数据职业技能竞赛(国赛)模块E数据展现题解--工业

编写Vue工程代码,根据接口,用折线图展示设备OP160每日的运行时长(秒),同时将用于图表展示 的数据结构在浏览器的console中进行打印输出, 将图表可视化结果和浏览器console打印结果分别截 图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。

结果展示:

代码展示:

<template>
    <div>
        <h2>用折线图展示设备OP160每日的运行时长</h2>
    </div>
    <!-- 用来存放echarts图表的容器 -->
    <div id="main" ref="main"></div>
</template>

<script>
// 引入echarts和axios库
import * as echarts from '../assets/echarts.min';  // 引入本地echarts.min.js文件
import axios from 'axios';  // 引入axios用于发起API请求

export default {
    // 组件挂载后执行的生命周期函数
    mounted() {
        // 初始化echarts实例并绑定到页面上指定的DOM元素
        var myChart = echarts.init(this.$refs.main);  // 使用refs获取#main元素并初始化echarts

        // 发送POST请求,获取后台返回的设备状态数据
        axios.post('/api/selectGyInfo').then(res => {
            let responseData = res.data.data;  // 从响应中获取设备数据

            let dates = [];  // 存储日期
            let runDurations = [];  // 存储每个日期的运行时长
            let machineRunTimeMap = new Map();  // 存储每个日期的累计运行时长(以秒为单位)

            // 处理设备OP160的所有数据,计算每天的运行时长
            responseData.filter(device => device.machineNo == 'OP160')
                .forEach((device) => {
                    device.showFactChangeRecordList
                        .filter((record) => record.changeRecordState == '运行')
                        .forEach((changeRecord) => {
                            let recordDate = changeRecord.changeStartTime.split(" ")[0];  // 获取日期部分
                            let durationInSeconds = (new Date(changeRecord.changeEndTime) - new Date(changeRecord.changeStartTime)) / 1000;  // 计算运行时长,单位为秒

                            // 累加每天的运行时长
                            if (machineRunTimeMap.has(recordDate)) {
                                machineRunTimeMap.set(recordDate, machineRunTimeMap.get(recordDate) + durationInSeconds);
                            } else {
                                machineRunTimeMap.set(recordDate, durationInSeconds);
                            }
                        });
                });

            // 将Map转换为数组并按日期排序
            const sortedRunTimes = Array.from(machineRunTimeMap).sort((a, b) => a[0].localeCompare(b[0], 'zh-CN'));

            // 提取排序后的日期和对应的运行时长数据
            sortedRunTimes.forEach((res) => {
                console.log(res)
                dates.push(res[0]);
                runDurations.push(res[1]);
            });

            // 配置echarts图表的选项
            var option = {
                title: { text: '设备OP160每日的运行时长(秒)', left: 'left' },
                legend: {},
                xAxis: {
                    type: "category",
                    data: dates,  // 使用日期作为X轴数据
                    axisLabel: {
                        lineHeight: 60,
                    },
                },
                yAxis: {
                    name: '运行时长(秒)',
                    axisLabel: {
                        formatter: '{value}',
                    },
                },
                series: [
                    {
                        name: "OP160",  // 系列名称
                        data: runDurations,  // 每天的运行时长数据
                        type: "line",  // 设置为折线图
                        label: { show: true },  // 显示标签
                    },
                ],
            };

            // 设置图表数据
            myChart.setOption(option);
        });
    }
};
</script>

私聊博主获取全部数据


http://www.kler.cn/a/408499.html

相关文章:

  • vue3【实战】响应式的登录界面
  • D78【 python 接口自动化学习】- python基础之HTTP
  • 【kubernetes】kubernetes简介
  • VSCode打开c#项目报错:DotnetAcquisitionTimeoutError
  • 11 —— 打包模式的应用
  • docker镜像源配置、换源、dockerhub国内镜像最新可用加速源(仓库)
  • 疑难Tips:NextCloud域名访问登录时卡住,显示违反内容安全策略
  • MQ重复消费与消息顺序
  • 深入理解与实践:Softmax函数在机器学习中的应用
  • LeetCode-632. Smallest Range Covering Elements from K Lists [C++][Java]
  • vue--制作购物车
  • 【2024最新】基于Springboot+Vue的智慧食堂系统Lw+PPT
  • Spring Boot应用开发深度解析与实践案例
  • 基于lora的llama2二次预训练
  • 深入解析自校正控制(STC)算法及python实现
  • Python自动化测试实践中pytest用到的功能dependency和parametrize
  • Ansible--自动化运维工具
  • package.json中^1.x.x、~1.x.x、1.x.x有什么区别
  • 性能优化--CPU微架构
  • 单元测试入门
  • CTFHUB--yeeclass-web
  • msf的渗透流程
  • 初始背单词的方法:论冲泡一杯茶水来喝
  • C#里怎么样实现操作符重载?
  • 计算机毕业设计原创定制(免费送源码)Java+SpringBoot+MySQL SpringBoot物流配送后台系统
  • 第1章计算机系统概论