【若依前后端分离】温湿度仪表盘

news2025/2/24 18:05:30

 示例:

代码:

TemperatureAndHumidity.vue组件

//温湿度仪表盘
<template>
  <div>
    <!-- 在这里放置你的图表组件 -->
    <div ref="echarts" style="width: 100%; height: 400px;"></div>
  </div>
</template>

<script>
export default {
  name: 'TemperatureAndHumidity',
  props: {
    data: {
      type: Object,
      //包含value和text
      required: true
    }
  },


  mounted() {
    this.renderChart();
  },
  methods: {
    renderChart() {
      const echarts = require('echarts');
      const myChart = echarts.init(this.$refs.echarts);

      var data1 = this.data.data1
      var data2 = this.data.data2

      var axislineColor = new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
        offset: 0,
        color: "#25ABAA",
      },
        {
          offset: 0.2,
          color: "#25ABB4",
        },
        {
          offset: 0.3,
          color: "#FBB8AA",
        },
        {
          offset: 0.5,
          color: "#F89700",
        },

        {
          offset: 1,
          color: "#F63332",
        },
      ]);

      const option ={
          // backgroundColor: "rgba(0,0,0)",
          grid: { // 让图表占满容器
            // height: "80%", // 高度
            // left: "6%",
            // right: "6%",
            bottom: "0%",
            top: "0%",
            // height: "85%",
            containLabel: true,
          },
          tooltip: {
            formatter: "{当前温度}: {c}%",
          },
          series: [
            {
            name: "大的进度条进度条",
            type: "gauge",
            center: ['50%', '45%'],
            radius: "85%",
            splitNumber: 20,
            min: -10, //最小刻度
            max: 60, //最大刻度
            axisLine: {
              lineStyle: {
                color: [
                  [0.2, '#008FFF'],
                  [0.3, '#00A2E8'],
                  [0.4, '#00C3CD'],
                  [0.5, '#00E7BB'],
                  [0.6, '#00E79F'],
                  [0.7, '#8CDC00'],
                  [0.8, '#FFD306'],
                  [0.9, '#FF7D00'],
                  [1, '#ee2e38']
                  // [0.4, '#00A2E8'],
                  // [0.6, '#95EC69'],
                  // [1, '#ee2e38']
                  // [data1 / 60, colorSet.color],
                  // [1, "#5A5A89"],
                ],
                //大刻度盘加宽
                width: 25,
                //图形阴影的模糊大小。会变立体
                shadowColor: 'rgba(0, 0, 0, 0.5)',
                shadowBlur: 10,
                //阴影水平方向上的偏移距离
                shadowOffsetX: 8,
                //阴影垂直方向上的偏移距离。
                shadowOffsetY: 8,
                opacity: 1,
              },
            },
            axisLabel: {
              show: true,
            },
            axisTick: {
              show: true,
            },
              //白色标记长线
            splitLine: {
              show: true,
              //分隔线线长。支持相对半径的百分比
              length: 30,
              distance:20,

            },
            itemStyle: {
              show: false,
            },
            detail: {

              formatter: function (value) {
                if (value !== 0) {
                  //四舍五入
                  // var num = Math.round(value);
                  // return parseInt(num).toFixed(0) + "℃";
                  return value + "℃";
                } else {
                  return 0;
                }
              },
              // offsetCenter: [0, 50],
              offsetCenter: [1, "22%"],

              textStyle: {
                padding: [0, 0, 0, 0],
                fontSize: 25,
                fontWeight: "400",

                color: "#131313",
              },
            },
            title: {
              //标题
              show: true,
              offsetCenter: [0, '35%'], //设置标题位置
              textStyle: {
                color: "#fff",
                fontSize: 18, //表盘上的标题文字大小
                fontFamily: "PingFangSC",
              },
            },
            data: [{
              // name: "温度",
              value: data1,
            },],
            pointer: {
              show: true,
              length: "80%",
              radius: "15%",
              width: 4, //指针粗细
              color: [
                axislineColor
                  [1, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
                  offset: 0.1,
                  color: "#FFC600"
                },
                  {
                    offset: 0.6,
                    color: "#30D27C"
                  },
                  {
                    offset: 1,
                    color: "#0B95FF"
                  }
                ])]
              ]
            },
            animationDuration: 4000,
          },

            // 下面圆环
            {
              name: "小的内圈",
              type: "gauge",
              radius: "40%",
              center: ['50%', '80%'],
              startAngle: 225,
              endAngle: -45,
              min: 0,
              max: 100,
              axisLine: {
                show: true,
                lineStyle: {
                  // 阴影范围
                  width: 20,
                  color: [
                    [
                      data2 / 100,
                      new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
                        offset: 0,
                        color: "rgba(69, 161, 255,0)",
                      },
                        {
                          offset: 0.3,
                          color: "rgba(69, 161, 255,0)",
                        },
                        {
                          offset: 1,
                          color: "rgba(69, 161, 255,0.7)",
                        },
                      ]),
                    ],
                    [1, "rgba(28,128,245,.0)"],
                  ],
                },
              },
              axisTick: {
                show: false,
              },
              splitLine: {
                show: 0,
              },
              axisLabel: {
                show: 0,
              },
              pointer: {
                show: true,
                width: 1,
                length: '60%',
                shadowColor: '#ccc', //默认透明
                shadowBlur: 1,
                shadowOffsetX: 1,
                shadowOffsetY: 3

              },
              detail: {
                show: true,
                offsetCenter: [1, "20%"],
                textStyle: {
                  fontSize: 22,
                  color: "#131313",
                },
                formatter: function (value) {
                  if (value !== 0) {
                    // var num = Math.round(value);
                    // return parseInt(num).toFixed(0) + "%";
                    return value + "%";
                  } else {
                    return 0;
                  }
                },
              },
              itemStyle: {
                color: "rgba(28, 128, 245,.3)",
                borderColor: "rgba(28, 128, 245,1)",
              },
              data: [{
                value: data2,
                // name: '湿度'
              },],
              title: {
                //标题
                show: true,
                offsetCenter: [0, '45%'], //设置标题位置
                textStyle: {
                  color: "#fff",
                  fontSize: 16, //表盘上的标题文字大小
                  fontFamily: "PingFangSC",
                },
              },
            },

            {
              name: "小的外圈",
              type: "gauge",
              radius: "40%",
              center: ['50%', '80%'],
              splitNumber: 4,
              splitLine: {
                show: false,
              },
              min: 0,
              max: 100,
              startAngle: 225,
              endAngle: -45,
              axisLabel: {
                show: false,
              },
              axisLine: {
                show: true,
                lineStyle: {
                  //小的宽度
                  width: 10,
                  color: [
                    // [0.4, '#00A2E8'],
                    // [0.7, '#93FE94'],
                    // [1, '#E0272A']
                    [0.05, "#3F6BFC"],
                    [0.1, "#4072FB"],
                    [0.15, "#4077F9"],
                    [0.2, "#417BF9"],
                    [0.25, "#4282F8"],
                    [0.3, "#4385F7"],
                    [0.35, "#4389F6"],
                    [0.4, "#448FF5"],
                    [0.45, "#4594F4"],
                    [0.5, "#4599F3"],
                    [0.55, "#469EF2"],
                    [0.6, "#46A3F1"],
                    [0.65, "#46A6F0"],
                    [0.7, "#24befe"],
                    [0.75, "#12d1ff"],
                    [0.8, "#06defe"],
                    [0.85, "#05e0ff"],
                    [0.9, "#06deff"],
                    [0.95, "#06deff"],
                    [1, "#06deff"],
                  ],
                },
              },
              pointer: {
                show: 0,
              },
              axisTick: {
                show: true,
              },
              detail: {
                show: false,
              },
            }
          ],
        }
      ;

      myChart.setOption(option);
    }
  }
};
</script>

<style>
/* 这里可以添加样式 */
</style>

主页面调用:

 <el-col :xs="24" :sm="24" :lg="12">
        <div class="chart-wrapper">
          <temperature-and-humidity :data="TemperatureAndHumidityData"/>

        </div>
      </el-col>

<script>
//引用
//温湿度
import TemperatureAndHumidity  from "@/views/dashboard/TemperatureAndHumidity";


export default {

  name: 'Index',
//数据
  data() {
    return {
   
     //温湿度信息
      TemperatureAndHumidityData: {
        data1: 25.4,
        data2:66.6
      }


    }
  },
}
</script>

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

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

相关文章

【C++干货基地】面向对象核心概念 const成员函数 | 初始化列表 | explicit关键字 | 取地址重载

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

数据结构PT1——线性表/链表

1&#xff1a;顺序存储实现(数组实现) Data&#xff1a; a1 a2 .....ai ai1 .... an .... typedef struct LNode *List; //指向LNode的指针&#xff0c;这是typedef的&#xff0c;你可以随时声明&#xff0c;而不加typedef只是创建一个 struct LNode{ //结构体成员ElementT…

Sentinel 流控注解使用

大概原理&#xff1a;通过反射解析注解 SentinelResource信息完成调用&#xff0c;处理方法&#xff0c;类似AOP编程 处理方法的返回类型要保持一致&#xff0c;参数和顺序保持一致&#xff0c; 可以在参数列表最后加 com.alibaba.csp.sentinel.slots.block.BlockException; …

【leetcode面试经典150题】62. K 个一组翻转链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

OpenHarmony音视频—opus

简介 Opus是一种用于在互联网上进行交互式语音和音频传输的编解码器。它可以从低比特率窄带语音扩展到非常高的高品质立体声音乐。 下载安装 直接在OpenHarmony-SIG仓中搜索opus并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的opus库代码存在以下路径&a…

视觉slam14讲-大纲-持续更新

视觉slam入门太难 数学理论编程知识计算机视觉知识 缺一不可&#xff0c;大家一起加油

ACL的基本配置

已经启用&#xff52;&#xff49;&#xff50;实现了全网可达。 这时我们要拒绝R1与R4的路由通信&#xff0c;做标准ACL过滤关注源IP需要尽量靠近目标。则在R4的物理接口G0/0/1的&#xff49;&#xff4e;接口上做&#xff0c;不能在R4的环回接口上做&#xff0c;因为ACL列表…

网络管理和文件传输的工具推荐

在Hadoop及以后的相关学习中 我给大家推荐两款好用的软件 Xshell和Xftp是两款常用于网络管理和文件传输的工具。 首先&#xff0c;让我来介绍一下Xshell。Xshell是一款功能强大的SSH&#xff08;Secure Shell&#xff09;客户端&#xff0c;它允许用户通过安全加密的方式远程…

【web网页制作】html+css旅游家乡山西主题网页制作(3页面)【附源码】

山西旅游网页目录 涉及知识写在前面一、网页主题二、网页效果Page1、景点介绍Page2、酒店精选|出行攻略Page3、景色欣赏 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 四、网页源码4.1 主页模块源码4.2 源码获取方式 作者寄语 涉及知识 山西旅游主题网页制作&am…

idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵

**idea显示maven或者gradle无法从仓库获取到项目中的jar包&#xff0c;jar包所在仓库无法访问解决方法&#xff0c;百试百灵** 直接上图&#xff0c;大概的故障问题就是&#xff1a;idea导入新的项目&#xff0c;因为项目中很多的jar需要从远程仓库下载&#xff0c;但是远程仓库…

跟着Carl大佬学leetcode之844 比较含退格的字符串

来点强调&#xff0c;刷题是按照代码随想录的顺序进行的&#xff0c;链接如下https://www.programmercarl.com/本系列是记录一些刷题心得和学习过程&#xff0c;就看到题目自己先上手试试&#xff0c;然后看程序员Carl大佬的解释&#xff0c;自己再敲一遍修修补补&#xff0c;练…

IDM的实用功能介绍+下载地址

下载地址 &#xff1a; 下载到idm 互联网下载管理器&#xff08;IDM&#xff09;实用功能概述 1. 多线程下载 IDM使用多线程技术&#xff0c;将文件分割成多个部分同时下载&#xff0c;显著提高下载速度。 2. 计划任务 用户可以设定下载任务的开始时间&#xff0c;甚至在特…

SSDReporter for Mac:全面检测SSD健康,预防数据丢失,让您的Mac运行更稳定

SSDReporter for Mac是一款专为Mac用户设计的固态硬盘&#xff08;SSD&#xff09;健康状况检测工具&#xff0c;旨在帮助用户全面了解并监控其Mac设备中SSD的工作状态&#xff0c;从而确保数据的完整性和设备的稳定性。 这款软件具有多种强大的功能。首先&#xff0c;它能够定…

DevOps流程的简单总结

DevOps流程图&#xff1a; DevOps流程包含&#xff1a;计划&#xff08;plan&#xff09;、编码(code)、编译(build)、测试(test)、发布(release)、部署(deploy)、运营(operate)、监控&#xff08;monitor&#xff09;&#xff0c;这是一个循环的过程。DevOps是依托容器、自动化…

数据赋能(62)——要求:数据管理部门能力

“要求&#xff1a;数据管理部门能力”是作为标准的参考内容编写的。 在实施数据赋能中&#xff0c;数据管理部门的能力体现在多个方面&#xff0c;关键能力如下图所示。 在实施数据赋能的过程中&#xff0c;数据管理部门应具备的关键能力如下。 数据治理与标准化能力 数据管…

python爬虫-----深入了解 requests 库(第二十五天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

C#控制台相关方法

控制台相关方法 文章目录 控制台输入1、清空2、设置控制台3、设置光标位置&#xff0c;1y 2x4、设置颜色相关5、光标显隐6、关闭控制台思考 移动方块 控制台输入 //如果ReadKey(true)不会把输入的内容显示再控制台上 char c Console.ReadKey(true).KeyChar;1、清空 ​ Cons…

Golang | Leetcode Golang题解之第40题组合总和II

题目&#xff1a; 题解&#xff1a; func combinationSum2(candidates []int, target int) (ans [][]int) {sort.Ints(candidates)var freq [][2]intfor _, num : range candidates {if freq nil || num ! freq[len(freq)-1][0] {freq append(freq, [2]int{num, 1})} else {…

免费高效无广告!开源的跨平台文件下载器:FileCentipede

FileCentipede&#xff1a;高速、全能、零广告的开源跨平台下载神器&#xff0c;汇聚多种协议&#xff0c;为您带来前所未有的免费下载体验&#xff01;- 精选真开源&#xff0c;释放新价值。 概览 在这个数字数据几乎构成一切的时代&#xff0c;从最终用户的角度来看&#xf…

2.4 Web容器配置:Tomcat

2.4 Web容器配置 2.4.1Tomcat配置1.常规配置2. HTTPS配置 *********** 2.4.1Tomcat配置 1.常规配置 在SpringBoot项目中&#xff0c;可以内置Tomcat、Jetly、Undertow、Netty等容器。 当开发者添加了spring-boot-starter-web依赖之后&#xff0c;默认会使用Tomcat作为Web容器…