当前位置: 首页 > 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>

http://www.mrgr.cn/news/2944.html

相关文章:

  • sqlalchemy RowProxy
  • libLZMA库iOS18平台编译
  • 《重生到现代之从零开始的C语言生活》—— 指针2
  • 【JavaScript 】JavaScript 全教程 02
  • python从列表中选出最后4个元素
  • 【Leetcode:93. 复原 IP 地址 + dfs】
  • 帆软报表,达梦数据库驱动上传失败
  • 自然语言处理NLP四范式
  • ArrayList与顺序表
  • ADB使用报错的问题FileNotfoundError:[WinError 3]系统找不到指定的路径
  • 跟李沐学AI:目标检测的常用算法
  • 怎么在网络攻击中屹立不倒
  • 自闭症学校一年学费多少?
  • 网络协议(概念版)
  • 独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响
  • 深度学习(9)---ResNet详解
  • ant design 的 tree 如何作为角色中的权限选择之一
  • 【大模型】triton inference server
  • 仿Muduo库实现高并发服务器——任务定时器模块
  • 如何在Sui上进行质押