升级:用vue canvas画一个能源监测设备和设备的关系监测图!

news2025/6/8 0:49:43

用vue canvas画一个能源电表和设备的监测图-CSDN博客

上一篇文章,我是用后端的数据来画出监测图。这次我觉的,用前端来控制数据,更爽。

本期实现功能:

1,得到监测设备和设备的数据,然后进行存库

2,得到监测设备和设备的关系流程图,然后可以生成图片

3,后期对设备进行监测,可以得知设备的正常状态或者是异常状态。

先上图片:

用法:

1.用户根据自己的监测设备和普通设备位置。在画布上绘出。

2.当用户绘制完后,导出数据则可获得所有的监测设备数据,设备数据,以及流程数据。

3.数据展示

{
  "devices": [
    {
      "id": "device-1748911468928",
      "name": "F2层打印机",
      "type": "normal",
      "position": {
        "x": 682,
        "y": 492
      },
      "connections": [],
      "all": {
        "id": "device-1748911468928",
        "type": "normal",
        "name": "F2层打印机",
        "position": {
          "x": 682,
          "y": 492
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": []
      }
    },
    {
      "id": "device-1748911470171",
      "name": "F2层电表",
      "type": "metering",
      "position": {
        "x": 462,
        "y": 337
      },
      "connections": [
        "device-1748911476354",
        "device-1748911468928"
      ],
      "all": {
        "id": "device-1748911470171",
        "type": "metering",
        "name": "F2层电表",
        "position": {
          "x": 462,
          "y": 337
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": [
          "device-1748911476354",
          "device-1748911468928"
        ]
      }
    },
    {
      "id": "device-1748911476354",
      "name": "F2层跑步机",
      "type": "normal",
      "position": {
        "x": 685,
        "y": 337
      },
      "connections": [],
      "all": {
        "id": "device-1748911476354",
        "type": "normal",
        "name": "F2层跑步机",
        "position": {
          "x": 685,
          "y": 337
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": []
      }
    },
    {
      "id": "device-1748911477587",
      "name": "总电表",
      "type": "metering",
      "position": {
        "x": 254,
        "y": 214
      },
      "connections": [
        "device-1748911478408",
        "device-1748911470171"
      ],
      "all": {
        "id": "device-1748911477587",
        "type": "metering",
        "name": "总电表",
        "position": {
          "x": 254,
          "y": 214
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": [
          "device-1748911478408",
          "device-1748911470171"
        ]
      }
    },
    {
      "id": "device-1748911478008",
      "name": "大厅设备",
      "type": "normal",
      "position": {
        "x": 692,
        "y": 77
      },
      "connections": [],
      "all": {
        "id": "device-1748911478008",
        "type": "normal",
        "name": "大厅设备",
        "position": {
          "x": 692,
          "y": 77
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": []
      }
    },
    {
      "id": "device-1748911478408",
      "name": "大厅电表",
      "type": "metering",
      "position": {
        "x": 451,
        "y": 83
      },
      "connections": [
        "device-1748911478008"
      ],
      "all": {
        "id": "device-1748911478408",
        "type": "metering",
        "name": "大厅电表",
        "position": {
          "x": 451,
          "y": 83
        },
        "size": {
          "width": 60,
          "height": 60
        },
        "connections": [
          "device-1748911478008"
        ]
      }
    }
  ],
  "connections": [
    {
      "from": "device-1748911477587",
      "to": "device-1748911478408",
      "all": {
        "id": "conn-1748911650304",
        "from": "device-1748911477587",
        "to": "device-1748911478408",
        "points": []
      }
    },
    {
      "from": "device-1748911477587",
      "to": "device-1748911470171",
      "all": {
        "id": "conn-1748911652725",
        "from": "device-1748911477587",
        "to": "device-1748911470171",
        "points": []
      }
    },
    {
      "from": "device-1748911478408",
      "to": "device-1748911478008",
      "all": {
        "id": "conn-1748911655187",
        "from": "device-1748911478408",
        "to": "device-1748911478008",
        "points": []
      }
    },
    {
      "from": "device-1748911470171",
      "to": "device-1748911476354",
      "all": {
        "id": "conn-1748911657504",
        "from": "device-1748911470171",
        "to": "device-1748911476354",
        "points": []
      }
    },
    {
      "from": "device-1748911470171",
      "to": "device-1748911468928",
      "all": {
        "id": "conn-1748911660458",
        "from": "device-1748911470171",
        "to": "device-1748911468928",
        "points": []
      }
    }
  ]
}

4.根据数据,进行存库。type代表类型。connections则代表的每个设备之间的关系。

5.在来一张本地保存的图片:

6.后期根据设备的状态,来动态的修改设备的图片。来展示出设备的异常状态和正常状态。

7.这样,设备管理部分就可以轻松搞定了。

欢迎各位大佬点评。

点点关注点点赞。

有需要代码的,留言或者私信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2403540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步

深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步 在使用 PyTorch 进行图像分类、目标检测等深度学习任务时,我们常常会在数据预处理部分看到如下代码: python复制编辑transform transforms.Compose([transforms.ToTensor…

爆炸仿真的学习日志

今天学习了一下【Workbench LS-DYNA中炸药在空气中爆炸的案例-哔哩哔哩】 https://b23.tv/kmXlN29 一开始 如果你的 ANSYS Workbench 工具箱(Toolbox)里 只有 SPEOS,即使尝试了 右键刷新、重置视图、显示全部 等方法仍然没有其他分析系统&a…

[华为eNSP] OSPF综合实验

目录 配置流程 画出拓扑图、标注重要接口IP 配置客户端IP 配置服务端IP 配置服务器服务 配置路由器基本信息:名称和接口IP 配置路由器ospf协议 测试结果 通过配置OSPF路由协议,实现跨多路由器的网络互通,并验证终端设备的访问能力。 …

完美搭建appium自动化环境

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 桌面版appium提供可视化操作appium主要功能的使用方式,对于初学者非常适用。 如何在windows平台安装appium桌面版呢,大体分两个步骤&…

c++中的输入输出流(标准IO,文件IO,字符串IO)

目录 &#xff08;1&#xff09;I/O概述 I/O分类 不同I/O的继承关系 不同I/O对应的头文件 &#xff08;2&#xff09;iostream 标准I/O流 iostream头文件中的IO流对象 iostream头文件中重载了<<和>> 缓冲区示意图 标准输入流 cin用法 cin&#xff1a;按空…

2025年渗透测试面试题总结-ali 春招内推电话1面(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 ali 春招内推电话1面 一、Web安全核心理解 二、熟悉漏洞及防御方案 三、UDF提权原理与防御 四、XSS Fuzz…

Reactor和Proactor

reactor的重要组件包括&#xff1a;Event事件、Reactor反应堆、Demultiplex事件分发器、Eventhandler事件处理器。

黄晓明新剧《潜渊》定档 失忆三面间谍开启谍战新维度

据悉&#xff0c;黄晓明领衔主演的谍战剧《潜渊》已于近日正式定档6月9日&#xff0c;该剧以“失忆三面间谍”梁朔为核心&#xff0c;打破传统谍战剧的框架和固有角度&#xff0c;以一种特别的视角将悬疑感推向极致。剧中&#xff0c;梁朔因头部受伤失去记忆&#xff0c;陷入身…

物联网嵌入式开发实训室建设方案探讨(高职物联网应用技术专业实训室建设)

一、建设背景与目标 在当今数字化时代&#xff0c;物联网技术正以前所未有的速度改变着人们的生活和工作方式。从智能家居到工业自动化&#xff0c;从智能交通到环境监测&#xff0c;物联网的应用场景无处不在。根据市场研究机构的数据&#xff0c;全球物联网设备连接数量预计…

集成学习三种框架

集成学习通过组合多个弱学习器构建强学习器&#xff0c;常见框架包括Bagging&#xff08;装袋&#xff09;、Boosting&#xff08;提升&#xff09; 和Stacking&#xff08;堆叠&#xff09; 一、Bagging&#xff08;自助装袋法&#xff09; 核心思想 从原始数据中通过有放回…

在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新

​原因​&#xff1a;未重新编译UI文件​​ Qt的UI文件&#xff08;.ui&#xff09;需要通过​​uic工具&#xff08;Qt的UI编译器&#xff09;​​生成对应的ui_*.h头文件。如果你在Qt Designer中修改了对象名&#xff0c;但没有​​重新构建&#xff08;Rebuild&#xff09;…

Neovim - 常用插件,提升体验(三)

文章目录 nvim-treelualineindent-blanklinetelescopegrug-far nvim-tree 官方文档&#xff1a;https://github.com/nvim-tree/nvim-tree.lua 以前我们都是通过 :e 的方式打开一个 buffer&#xff0c;但是这种方式需要记忆文件路径&#xff0c;因此这里可以通过 nvim-tree 插…

SOC-ESP32S3部分:31-ESP-LCD控制器库

飞书文档https://x509p6c8to.feishu.cn/wiki/Syy3wsqHLiIiQJkC6PucEJ7Snib ESP 系列芯片可以支持市场上常见的 LCD&#xff08;如 SPI LCD、I2C LCD、并行 LCD (Intel 8080)、RGB/SRGB LCD、MIPI DSI LCD 等&#xff09;所需的各种时序。esp_lcd 控制器为上述各类 LCD 提供了一…

【云安全】以Aliyun为例聊云厂商服务常见利用手段

目录 OSS-bucket_policy_readable OSS-object_public_access OSS-bucket_object_traversal OSS-Special Bucket Policy OSS-unrestricted_file_upload OSS-object_acl_writable ECS-SSRF 云攻防场景下对云厂商服务的利用大同小异&#xff0c;下面以阿里云为例 其他如腾…

读文献先读图:GO弦图怎么看?

GO弦图&#xff08;Gene Ontology Chord Diagram&#xff09;是一种用于展示基因功能富集结果的可视化工具&#xff0c;通过弦状连接可以更直观的展示基因与GO term&#xff08;如生物过程、分子功能等&#xff09;之间的关联。 GO弦图解读 ①内圈连线表示基因和生物过程之间的…

怎么让大语言模型(LLMs)自动生成和优化提示词:APE

怎么让大语言模型(LLMs)自动生成和优化提示词:APE https://arxiv.org/pdf/2211.01910 1. 研究目标:让机器自己学会设计提示词 问题:大语言模型(如GPT-3)很强大,但需要精心设计的“提示词”才能发挥最佳效果。过去靠人工设计提示词,费时费力,还可能因表述差异导致模…

实现单例模式的常见方式

前言 java有多种设计模式&#xff0c;如下图所示&#xff1a; 单例模式它确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 1、单例模式介绍 1.1、使用原因 为什么要使用单例模式&#xff1f; 1. 控制资源访问 核心价值&#xff1a;确保对共享资源&#xff08;如…

day20 leetcode-hot100-38(二叉树3)

226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 1.广度遍历 思路 这题目很简单&#xff0c;就是交换每个节点的左右子树&#xff0c;也就是相当于遍历到某个节点&#xff0c;然后交换子节点即可。 具体步骤 &#xff08;1&#xff09;创建队列&#xff0c;使用广…

OpenVINO环境配置--OpenVINO安装

TOC环境配置–OpenVINO安装 本节内容 OpenVINO 支持的安装方式有很多种&#xff0c;每一种操作系统以及语言都有对应的安装方法&#xff0c;在官网上有很详细的教程&#xff1a;   我们可以根据自己的需要&#xff0c;来点选环境配置和安装方法&#xff0c;然后网页会给出正…

黑龙江云前沿服务器租用:便捷高效的灵活之选​

服务器租用&#xff0c;即企业直接从互联网数据中心&#xff08;IDC&#xff09;提供商处租赁服务器。企业只需按照所选的服务器配置和租赁期限&#xff0c;定期支付租金&#xff0c;即可使用服务器开展业务。​ 便捷快速部署&#xff1a;租用服务器能极大地缩短服务器搭建周期…