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

vue3之仪表盘

vue3之仪表盘

效果:

在这里插入图片描述

版本
“echarts”: “^5.5.1”

核心代码:

<!--* @Description: 圆环组件封装* @Version: 1.0* @Autor: qh
--><template><div ref="chartRef" class="circle"></div>
</template><script lang="ts" setup>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';const props = defineProps({percent: {type: Number,default: 0,},
});const chartRef = ref(null);
let chart: any = null;const rich = {bule: {fontSize: 22,fontFamily: 'DINPro',color: '#fff',padding: [6, 0, 0, 0],},white: {fontSize: 12,color: '#fff',padding: [10, 0, 0, 0],},
};const topChartOptions = (value: number) => {return {tooltip: {show: false,formatter: '{a} <br/>{b} : {c} ({d}%)',},series: [{name: 'S',z: 3,type: 'gauge', // 仪表盘center: ['49.5%', '58%'],radius: '95%',detail: {formatter: (value: any) => {return '{bule|' + value + '}{white|%}';},rich,offsetCenter: ['0%', '0%'],},title: {show: false,},data: [{value,name: 'Percent',},],axisLine: {show: true,lineStyle: {roundCap: true,width: 7,color: [[value / 100,new echarts.graphic.LinearGradient(0, 0, 1, 0, [{offset: 0,color: 'rgba(0, 255, 231, 0.5)',},{offset: 0.5,color: 'rgba(0, 255, 231, 0.8)', // 100% 处的颜色},{offset: 1,color: 'rgba(0, 255, 231, 0.5)', // 100% 处的颜色},]),],[1, 'rgba(4, 211, 251, 0)'],],},},axisTick: {show: false,},axisLabel: {show: false,},splitLine: {show: false,},pointer: {length: '14%',width: 2,icon: 'rect',offsetCenter: [0, '-87%'],itemStyle: {color: 'rgba(0, 255, 231, 1)',},},},{name: 'T',z: 2,type: 'gauge', // 仪表盘center: ['49.5%', '58%'],radius: '96%',detail: {show: false,},title: {show: false,},data: [{value: 100,name: 'Percent',},],axisLine: {show: true,lineStyle: {roundCap: true,width: 8,color: [[1,new echarts.graphic.LinearGradient(0, 0, 1, 0, [{offset: 0,color: 'rgba(150, 179, 180, 1)',},{offset: value / 100,color: 'rgba(150, 179, 180, 0.5)',},{offset: 1,color: 'rgba(150, 179, 180, 1)', // 100% 处的颜色},]),],[1, 'rgba(255, 192, 1, 0)'],],},},axisTick: {show: false,},axisLabel: {show: false,},splitLine: {show: false,},pointer: {show: false,},},],};
};const initChart = () => {if (!chart) chart = echarts.init(chartRef.value);chart.setOption(topChartOptions(props.percent));
};onMounted(() => {initChart();
});onBeforeUnmount(() => {if (chart) {chart.clear();chart.dispose();chart = null;}
});
</script><style scoped lang="scss">
.circle {width: 132px;height: 113px;// 根据实际情况加背景图background: url('@/assets/img/inspection/overview-bg.png') no-repeat;
}
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 堆排序的插入和删除
  • 一文读懂推荐系统
  • vue3使用elementui-plus时使用深度选择器穿透影响原样式
  • keepalived详解
  • Spring Mybatis拦截器配合logback打印完整sql语句
  • 嵌入式AI快速入门课程-K510篇 (第七篇 系统BSP开发)
  • GO语言如何抗住火影忍者手游的高并发
  • 入门网络安全工程师要学习哪些内容
  • 国自然放榜在即!用这种方法或可抢先查询...
  • 全新分支版本!微软推出Windows 11 Canary Build 27686版
  • ThreeJs学习笔记--坐标系,光源,相机控件
  • C/C++实现蓝屏2.0
  • Linux进程间通信——软件实现临界区互斥的基本方法
  • 高性能web服务器3——Nginx编译安装
  • Spring MVC Controller返回json日期格式配置失效的解决办法
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • es6
  • HTTP那些事
  • Java,console输出实时的转向GUI textbox
  • Java多线程(4):使用线程池执行定时任务
  • markdown编辑器简评
  • Python学习笔记 字符串拼接
  • Redis 懒删除(lazy free)简史
  • Redis中的lru算法实现
  • Vue 重置组件到初始状态
  • Vue2.0 实现互斥
  • windows下mongoDB的环境配置
  • Zepto.js源码学习之二
  • 复杂数据处理
  • 前端性能优化--懒加载和预加载
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 微信小程序设置上一页数据
  • 小程序01:wepy框架整合iview webapp UI
  • 新手搭建网站的主要流程
  • 阿里云重庆大学大数据训练营落地分享
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​香农与信息论三大定律
  • #define用法
  • #QT(串口助手-界面)
  • (02)vite环境变量配置
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (solr系列:一)使用tomcat部署solr服务
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (学习日记)2024.01.09
  • (一)Dubbo快速入门、介绍、使用
  • (转)原始图像数据和PDF中的图像数据
  • *Django中的Ajax 纯js的书写样式1
  • .net core 的缓存方案
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net和php怎么连接,php和apache之间如何连接
  • .net项目IIS、VS 附加进程调试
  • .NET学习全景图