当前位置:首页 > VUE

vue实现水球图

2026-03-09 06:11:40VUE

Vue 实现水波球图(水球图)

水波球图(Liquid Fill Gauge)是一种动态展示百分比数据的可视化图表,常用于展示进度或完成率。以下是基于 Vue 和 ECharts 的实现方法:

安装依赖

需要安装 ECharts 和 ECharts 水波球图插件:

vue实现水球图

npm install echarts echarts-liquidfill

基础实现代码

在 Vue 组件中引入并初始化图表:

vue实现水球图

<template>
  <div ref="liquidChart" style="width: 300px; height: 300px"></div>
</template>

<script>
import * as echarts from 'echarts';
import 'echarts-liquidfill';

export default {
  mounted() {
    this.initChart();
  },
  methods: {
    initChart() {
      const chart = echarts.init(this.$refs.liquidChart);
      const option = {
        series: [{
          type: 'liquidFill',
          data: [0.6], // 水波高度比例(0-1)
          radius: '80%',
          outline: {
            show: false
          },
          backgroundStyle: {
            color: '#E8F7FF'
          },
          label: {
            position: ['50%', '50%'],
            formatter: '{c}%', // 显示百分比
            fontSize: 24,
            color: '#1890FF'
          }
        }]
      };
      chart.setOption(option);
    }
  }
}
</script>

高级配置选项

可以通过以下参数自定义水波球图:

option = {
  series: [{
    type: 'liquidFill',
    data: [0.5, 0.4, 0.3], // 多个波浪层
    color: ['#294D99', '#156ACF', '#1598F2'], // 波浪颜色
    amplitude: 10, // 波浪振幅
    waveLength: '50%', // 波浪长度
    phase: 0, // 波浪相位
    period: (val, i) => 2000 * (i + 1), // 动画周期
    direction: 'right', // 波浪方向
    shape: 'circle', // 容器形状(circle/rect/roundRect/triangle/diamond/pin/arrow)
    itemStyle: {
      opacity: 0.8 // 透明度
    }
  }]
}

动态更新数据

可以通过方法动态更新水波高度:

updateLiquidLevel(newValue) {
  const chart = echarts.getInstanceByDom(this.$refs.liquidChart);
  chart.setOption({
    series: [{
      data: [newValue]
    }]
  });
}

注意事项

  1. 确保容器有明确的宽高尺寸
  2. 多波浪层时data数组值应递减(如[0.6, 0.5, 0.4])
  3. 在组件销毁时调用dispose()方法清除实例:
    beforeDestroy() {
    echarts.dispose(this.$refs.liquidChart);
    }

通过调整这些参数可以实现不同风格的水波球图效果,包括波浪数量、颜色、运动方向等视觉元素。

标签: 水球vue
分享给朋友:

相关文章

vue 实现

vue 实现

Vue 实现的基本步骤 安装 Vue.js 可以通过 npm 或 CDN 引入。使用 npm 安装适合大型项目,CDN 适合快速原型开发。 npm install vue 在 HTML 文件中引入…

vue实现类别

vue实现类别

Vue 实现类别的几种方法 在 Vue 中实现类别功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind:class 动态绑定类名 通过对象语法或数组语法动态绑定类名,根据条件添加或移…

vue轮询实现

vue轮询实现

Vue 轮询实现方法 在 Vue 中实现轮询可以通过以下几种方式: 使用 setInterval data() { return { pollInterval: null }…

vue 实现拖拉

vue 实现拖拉

Vue 实现拖拽功能的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue nexttick实现

vue nexttick实现

Vue 中 nextTick 的实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它的核心实现依赖于 JavaScript 的事件循环机制。…

实现vue框架

实现vue框架

Vue框架的基本实现 Vue是一个渐进式JavaScript框架,用于构建用户界面。以下是实现Vue框架的基本步骤: 安装Vue 通过CDN引入Vue是最简单的方式: <script src…