返回顶部
首页 > 资讯 > 精选 >怎么用vue-cli3+echarts实现渐变色仪表盘组件封装
  • 315
分享到

怎么用vue-cli3+echarts实现渐变色仪表盘组件封装

2023-06-29 16:06:30 315人浏览 薄情痞子
摘要

本篇内容主要讲解“怎么用Vue-cli3+echarts实现渐变色仪表盘组件封装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用vue-cli3+echarts实现渐变色仪表盘组件封装”吧!

本篇内容主要讲解“怎么用Vue-cli3+echarts实现渐变色仪表盘组件封装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用vue-cli3+echarts实现渐变色仪表盘组件封装”吧!

效果预览

怎么用vue-cli3+echarts实现渐变色仪表盘组件封装

思路

使用两个仪表盘叠加,起始角度一样,底部仪表盘结束角度固定不变
2、通过props传入数据
3、计算在上层的仪表盘的结束角度并赋值

代码

<template>  <div class="gauge">    <div class="gauge__bottom" ref="bottomGauge"></div>    <div class="gauge__top" ref="topGauge"></div>    <div class="gauge__label">数据占比</div>    <div class="gauge__title">{{ this.gaugeData.gaugeTitle }}</div>  </div></template><script>import echarts from "echarts";export default {  name: "gauge",  props: ["gaugeData"],//传入的数据  data() {    return {      bottomOption: {        series: [          {            name: "",            type: "gauge",            startAngle: "225",            endAngle: "-45",            data: [{ value: 100, name: "" }],            splitNumber: 10,            detail: {              show: false,            },            splitLine: {              show: false,            },            pointer: {              show: false,            },            axisTick: {              show: false,            },            axisLabel: { show: false },            axisLine: {              lineStyle: {                width: 10,                color: [                  [                    1,                    new echarts.graphic.LinearGradient(0, 0, 1, 0, [                      {                        offset: 0,                        // 起始颜色                        color: "#707089",                      },                      {                        offset: 1,                        // 结束颜色                        color: "#707089",                      },                    ]),                  ],                ],              },            },          },        ],      },      topOption: {        series: [          {            name: "业务指标",            type: "gauge",            startAngle: "225",            endAngle: "",            detail: {              fORMatter: "{value}%",              color: "#01F9FF",              fontSize: 18,              fontFamily: "ZhenyanGB-Regular",              offsetCenter: [0, 0],            },            data: [{ value: "", name: "" }],            splitNumber: 10,            splitLine: {              show: false,            },            pointer: {              show: false,            },            axisTick: {              show: false,            },            axisLabel: { show: false },            axisLine: {              lineStyle: {                width: 10,                color: "",              },            },          },        ],      },    };  },  mounted() {    this.getTopGauge();    this.getBottomGauge();  },  methods: {    getTopGauge() {      const chart = this.$refs.topGauge;      if (chart) {        const myChart = this.$echarts.init(chart, null, { renderer: "svg" });        this.$once("hook:beforeDestroy", function () {          echarts.dispose(myChart);        });        this.topOption.series[0].data[0].value = this.gaugeData.gaugePercent;        this.topOption.series[0].axisLine.lineStyle.color = this.gaugeData.guageColor;        let tmp = 225 - 270 * (this.gaugeData.gaugePercent / 100);        this.topOption.series[0].endAngle = tmp;        const option = this.topOption;        myChart.setOption(option);      }    },    getBottomGauge() {      const chart = this.$refs.bottomGauge;      if (chart) {        const myChart = this.$echarts.init(chart, null, { renderer: "svg" });        this.$once("hook:beforeDestroy", function () {          echarts.dispose(myChart);        });        const option = this.bottomOption;        myChart.setOption(option);      }    },  },};</script><style lang="less">.gauge {  width: 150px;  height: 165px;  position: relative;  &__top {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 150px;  }  &__bottom {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 150px;  }  &__label {    position: absolute;    height: 21px;    width: 64px;    background: #0547c9;    border: 1px solid #1e92ff;    border-radius: 11.5px;    border-radius: 11.5px;    bottom: 35px;    left: 50%;    transform: translate(-50%, 0);    font-family: PingFangSC-Regular;    font-size: 8px;    color: #ffffff;    text-align: center;    line-height: 21px;  }  &__title {    font-family: PingFangSC-Medium;    font-size: 14px;    color: #52f9cb;    text-align: center;    position: absolute;    bottom: 5px;    left: 50%;    transform: translate(-50%, 0);  }}</style>

到此,相信大家对“怎么用vue-cli3+echarts实现渐变色仪表盘组件封装”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用vue-cli3+echarts实现渐变色仪表盘组件封装

本文链接: https://lsjlt.com/news/325794.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue-cli3+echarts实现渐变色仪表盘组件封装
    本文实例为大家分享了vue-cli3+echarts实现封装一个渐变色仪表盘组件,供大家参考,具体内容如下 效果预览 思路 1、使用两个仪表盘叠加,起始角度一样,底部仪表盘结束角度...
    99+
    2024-04-02
  • 怎么用vue-cli3+echarts实现渐变色仪表盘组件封装
    本篇内容主要讲解“怎么用vue-cli3+echarts实现渐变色仪表盘组件封装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用vue-cli3+echarts实现渐变色仪表盘组件封装”吧!...
    99+
    2023-06-29
  • vue怎么实现echarts中的仪表盘
    这篇文章主要介绍“vue怎么实现echarts中的仪表盘”,在日常操作中,相信很多人在vue怎么实现echarts中的仪表盘问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现echarts中的仪表盘...
    99+
    2023-06-29
  • vue-echarts如何实现图表组件封装详解
    目录背景:有哪些工具?怎么封装?总结背景: 需要大量使用图表的项目,为了提升开发效率,可以对图表类进行封装成组件,方便页面的搭建,也能进行统一管理维护,即使后面系统风格需要调整,调整...
    99+
    2024-04-02
  • jQuery插件Echarts怎么实现的渐变色柱状图
    这篇文章给大家分享的是有关jQuery插件Echarts怎么实现的渐变色柱状图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:代码如下:<!DOCTYPE ...
    99+
    2024-04-02
  • Vue组件封装怎么实现
    这篇文章主要介绍“Vue组件封装怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue组件封装怎么实现”文章能帮助大家解决问题。一、组件封装的优势复用性:组件封装可以将常用的功能或视图模块抽象...
    99+
    2023-07-05
  • vue中的slot封装组件弹窗怎么实现
    这篇文章主要介绍了vue中的slot封装组件弹窗怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中的slot封装组件弹窗怎么实现文章都会有所收获,下面我们一起来看看吧。slot封装组件弹窗<t...
    99+
    2023-06-30
  • Vue怎么结合Element-Plus封装递归组件实现目录
    这篇“Vue怎么结合Element-Plus封装递归组件实现目录”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue怎么结合...
    99+
    2023-06-30
  • Vue eventBus事件总线封装后再用怎么实现
    今天小编给大家分享一下Vue eventBus事件总线封装后再用怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-02
  • Element怎么使用el-table组件实现二次封装
    这篇文章主要讲解了“Element怎么使用el-table组件实现二次封装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Element怎么使用el-table组件实现二次封装”吧!一、安装引...
    99+
    2023-07-02
  • 怎么在Vue中使用Element实现一个树列表组件
    怎么在Vue中使用Element实现一个树列表组件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、常规树列表控件的使用众所周知,一般界面很多情况涉及到树列表的处理,如类型...
    99+
    2023-06-15
  • vue中怎么利用复合组件实现注册表单功能
    本篇文章给大家分享的是有关vue中怎么利用复合组件实现注册表单功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体内容如下<!doct...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作