使用vue3实现echarts漏斗图表以及实现echarts全屏放大效果

 1.首先安装echarts

安装命令:npm install echarts --save

2.页面引入 echarts

import * as echarts from 'echarts';

3.代码

<template>
<div id="main" :style="{ width: '400px', height: '500px' }"></div>
</template>
<script setup>
let Chart = echarts.init(document.getElementById('main'));
    // 绘制图表
    let options = {
      title: {
        text: 'Funnel'
      },
      toolbox: {
        feature: {
          restore: { show: true }, // 重置
          myFull: {
            // 全屏
            show: true,
            title: '全屏',
            icon: 'path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891',
            onclick: (e) => {
              // let fullFlag = true;
              let element = document.getElementById('main');
              // 一些浏览器的兼容性
              if (element.requestFullScreen) {
                // HTML W3C 提议
                element.requestFullScreen();
              } else if (element.msRequestFullscreen) {
                // IE11
                element.msRequestFullScreen();
              } else if (element.webkitRequestFullScreen) {
                // Webkit (works in Safari5.1 and Chrome 15)
                element.webkitRequestFullScreen();
              } else if (element.mozRequestFullScreen) {
                // Firefox (works in nightly)
                element.mozRequestFullScreen();
              }

              // 退出全屏
              if (element.requestFullScreen) {
                document.exitFullscreen();
              } else if (element.msRequestFullScreen) {
                document.msExitFullscreen();
              } else if (element.webkitRequestFullScreen) {
                document.webkitCancelFullScreen();
              } else if (element.mozRequestFullScreen) {
                document.mozCancelFullScreen();
              }
            },
          },
        },
      },
      tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b} : {c}%',
      },
      legend: {
        orient: 'vertical',
        left: 'left',
        top: '40',
        bottom: '50',
        data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order']
      },
      series: [
        {
          name: 'Expected',
          type: 'funnel',
          left: '22%',
          top: 80,
          bottom: 100,
          width: '80%',
          min: 0,
          max: 100,
          minSize: '0%',
          maxSize: '100%',
          sort: 'descending',
          gap: 2,
          labelLine: {
            show: false,
          },
          label: {
            show: true,
            position: 'inside',
          },
          data: [],
        },
        {
          name: '订单',
          type: 'funnel',
          left: '20%',
          width: '80%',
          maxSize: '100%',
          label: {
            position: 'inside',
            formatter: '{c}单',
            color: '#fff',
          },
          emphasis: {
            label: {
              position: 'inside',
              formatter: '{b}: {c}单',
            },
          },
          data: [
             { value: 60, name: 'Visit' },
        { value: 40, name: 'Inquiry' },
        { value: 20, name: 'Order' },
        { value: 80, name: 'Click' },
        { value: 100, name: 'Show' }
          ],
        },
      ],
    };
    // 渲染图表
    Chart.setOption(options);
    const onresize = function () {
      //自适应大小
      Chart.resize();
    };
    window.addEventListener('resize', onresize);
</script>

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue使用echarts实现图表放大缩小是可以实现的。首先,需要在vue组件中引入echarts,并绑定图表数据。 接着,在html页面中添加一个echarts容器div,通过echarts初始化,将数据绑定到echarts上。具体代码如下: // 引入echarts import echarts from 'echarts' // 绑定图表数据 data() { return { chartData: [] } } // 添加echarts容器div <div ref="chart" style="width: 100%; height: 100%;"></div> // 初始化echarts并绑定数据 mounted() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption(this.chartData) } 为了实现图表放大缩小效果,可以使用echarts自带的toolbox组件。在echarts初始化时,添加toolbox配置项,并设置tool属性的值为: { feature: { dataZoom: { xAxisIndex: 'none' }, restore: {}, saveAsImage: {} } } 通过设置dataZoom属性可以实现图表放大缩小效果,xAxisIndex属性表示只对x轴进行缩放操作。restore属性表示重置图表,saveAsImage属性表示下载图表为图片。 完整代码如下: // 引入echarts import echarts from 'echarts' // 绑定图表数据 data() { return { chartData: { // 图表配置项 // ... toolbox: { feature: { dataZoom: { xAxisIndex: 'none' }, restore: {}, saveAsImage: {} } } } } } // 添加echarts容器div <div ref="chart" style="width: 100%; height: 100%;"></div> // 初始化echarts并绑定数据 mounted() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption(this.chartData) } 通过以上代码,即可在vue使用echarts实现图表放大缩小效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值