uniapp中echart实例

1,自定义仪表盘

在这里插入图片描述

797_1706772047

index.vue

import { useGaugeStore } from "@/stores/utils";
const { currentValueEndAngle, currentSplitNumber } = storeToRefs(useGaugeStore()
);
const gaugeStore = useGaugeStore();const wenduGauge = ref<chartBaseOptionsType>({width: "400rpx",height: "400rpx",chartsId: "test",setOptions: {graphic: [{type: "text",left: 20,top: 184,scaleX: 1.4,scaleY: 1.4,style: {text: gaugeStore.minHeat + "°C",fill: "#007C84",},},{type: "text",left: 160,top: 184,scaleX: 1.4,scaleY: 1.4,style: {text: gaugeStore.maxHeat + "°C",fill: "#007C84",},},],series: [],},
});const setGaugeOption = () => {const dataArr = [{type: "gauge",radius: "90%",splitNumber: 1,axisLine: {show: true,lineStyle: {width: 1,opacity: 1,color: [[1, "#007C84"]],},},startAngle: gaugeStore.startAngle,endAngle: gaugeStore.endAngle,title: { show: false },detail: { show: false },splitLine: { show: false },axisTick: {length: 10,splitNumber: 60,lineStyle: {color: "rgba(0, 118, 135, 0.2)",width: 2,},},axisLabel: { show: false },pointer: { show: false },itemStyle: {},},{type: "gauge",radius: "90%",splitNumber: currentSplitNumber.value ? 1 : 0,axisLine: {show: false,lineStyle: {width: 0,opacity: 0,},},startAngle: gaugeStore.startAngle,endAngle: gaugeStore.getValueEndAngle(),title: { show: false },detail: {show: true,offsetCenter: [0, 0],color: "#00495F",fontSize: 34,},splitLine: { show: false },axisTick: {length: 11,splitNumber: currentSplitNumber.value,lineStyle: {color: "#23BAC4",width: 2,},},axisLabel: { show: false },pointer: { show: false },itemStyle: {},data: [{ value: popUpValue.value.temperature }],},];wenduGauge.value.setOptions.series = dataArr;
};const handlerHeat = (type: string) => {popUpValue.value.temperature =type === "jia"? popUpValue.value.temperature + 1: popUpValue.value.temperature - 1;open();
};
const open = () => {gaugeStore.setCurrentValue(popUpValue.value.temperature);setGaugeOption();
};

utils.ts文件

import { ref } from "vue";
import { defineStore } from "pinia";
export const useGaugeStore = defineStore("gauge", () => {const splitCount = 60; //刻度总数const startAngle = 225; // 开始角度const endAngle = -45; // 结束角度const totalAngle = 270; //总的角度const currentValueEndAngle = ref(0); //值现在的结束角度const currentSplitNumber = ref(0); //当前刻度数const maxHeat = 31;const minHeat = 16;const heatRange = maxHeat - minHeat;function setCurrentValue(currentHeat: number) {const a = totalAngle / splitCount;const b = (splitCount / heatRange) * (currentHeat - minHeat);console.log(a, b);currentSplitNumber.value = b;currentValueEndAngle.value = a * b;// 144 32}function getValueEndAngle() {return startAngle - currentValueEndAngle.value;}return {startAngle,endAngle,maxHeat,minHeat,currentValueEndAngle,currentSplitNumber,setCurrentValue,getValueEndAngle,};
});

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音老阳叭叭叭分享的temu蓝海项目优势有哪些?

在市场竞争日益激烈的今天&#xff0c;寻找一个具有发展潜力的蓝海项目已成为众多创业者的共同目标。近日&#xff0c;老阳分享了一个名为Temu的蓝海项目&#xff0c;引发了广泛关注。那么&#xff0c;这个项目究竟有何优势&#xff0c;能让人们对它青睐有加呢?以下几个方面将…

2024美国大学生数学建模C题网球运动中的势头详解思路+具体代码

2024美国大学生数学建模C题网球运动中的势头详解思路具体代码 E题数据已更新&#xff0c;做E题的小伙伴推荐看看博主的E题解析文章。那么废话不多说我们继续来做C题。 赛题分析 我们先阅题&#xff1a; 在2023年温布尔登男单决赛中&#xff0c;20岁的西班牙新星卡洛斯阿尔卡…

Linux 常用命令行

Linux (Ubuntu) 常用操作命令行 1. 打开终端&#xff1a;ctrl alt t; 2. 清屏&#xff1a;clear; 3. 进入目录&#xff1a;cd path;[/ 根目录&#xff1b;./ 当前目录&#xff1b;../ 上一级] 4. 返回上一级目录: cd ..; 5. 显示工作路径: pwd; 6. 列表显示文件、文件夹&…

【FPGA VerilogModelsim】 8bitBCD码60计数器

可私信获取整个项目文件 8bit 即有8位二进制 BCD码 ,全称Binary-Coded Decimal,简称BCD码或者二-十进制代码 利用四位二进制(0000-1111)16个中选择10个作为十进制0-9; 常见的BCD码是8421码 本项目使用两组BCD码(每组4bit,共8bit,故称为8bitBCD)(高位0-5,低位0-9…

定义HarmonyOS IDL接口

HarmonyOS IDL简介 HarmonyOS Interface Definition Language&#xff08;简称HarmonyOS IDL&#xff09;是HarmonyOS的接口描述语言。HarmonyOS IDL与其他接口语言类似&#xff0c;通过HarmonyOS IDL定义客户端与服务端均认可的编程接口&#xff0c;可以实现在二者间的跨进程…

深度学习入门笔记(四)函数与优化方法

深度学习有三大部分 模型表征(包括模型设计、网络表示等)模型评估(上一篇文章提到的准确召回和损失函数等)优化算法(模型如何学习或更新)本节我们就来介绍模型是如何学习或更新的。 4.1 损失函数 模型的学习,实际上就是对参数的学习。参数学习的过程需要一系列的约束,…

JavaScript基础五对象 内置对象 Math.random()

内置对象-生成任意范围随机数 Math.random() 随机数函数&#xff0c; 返回一个0 - 1之间&#xff0c;并且包括0不包括1的随机小数 [0, 1&#xff09; 如何生成0-10的随机数呢&#xff1f; Math.floor(Math.random() * (10 1)) 放大11倍再向下取整 如何生成5-10的随机数&…

100 C++内存高级话题 new 细节探秘,重载类内 operator new ,delete

一 new 内存分配细节探秘 我们以分配10个char为例&#xff0c;说明&#xff0c;观察内存发现&#xff0c;当delete 的时候&#xff0c;实际上很多内存都改变了。 实际上 new 内存不是一个简单的事情。为了记录和管理分配出去的内存&#xff0c;额外分配了不少内存&#xff0c;…

C++ 音视频流媒体浅谈

C流媒体开发 今天就浅浅聊一下C流媒体开发 流媒体开发中最常见的是FFmpeg&#xff08;编解码器&#xff09; 业务逻辑主要是播放器了&#xff08;如腾旭视频 爱奇艺等等&#xff09; FFmpeg是一个开源的音视频处理工具集&#xff0c;可以用于处理、转换和流媒体传输音视频…

微服务介绍

1. 什么是微服务 在介绍微服务时&#xff0c;首先得先理解什么是微服务&#xff0c;顾名思义&#xff0c;微服务得从两个方面去理解&#xff0c;什么是"微"、什么是"服务"&#xff0c; 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了…

飞凌嵌入式RK3568开发板蓝牙收、发文件测试

本文由电子发烧友论坛用户fsdzdzy提供&#xff0c;感谢分享。飞凌嵌入式每月定期开展新的开发板体验活动&#xff0c;欢迎更多工程师朋友的关注和参与。 飞凌嵌入式OK3568-C开发板板载WiFi&BT模组&#xff0c;蓝牙版本为Bluetooth 5.0&#xff0c;速率高达3Mbps。笔者将在本…

基于C/C++的MFC的IDC_MFCEDITBROWSE2控件不显示ico问题记录

打开资源文件 *.rc文件 &#xff0c;在最上方添加 #if !defined(_AFXDLL) #include "afxribbon.rc" // MFC ribbon and control bar resources #endif 如下图所示&#xff1a;