首页 > 其他分享 >封装一个通用的根据不同数据源渲染不同Echarts效果图的组件

封装一个通用的根据不同数据源渲染不同Echarts效果图的组件

时间:2022-10-18 17:56:14浏览次数:55  
标签:CommonEcharts vue const 数据源 onMounted 效果图 import Echarts echartInstance

CommonEcharts.vue

<!--CommonEcharts.vue -->
<template>
  <div ref="echartsDom" :style="{ width, height }"></div>
</template>

<script lang="ts">
import { ref, toRefs, watch, onMounted, defineComponent } from 'vue';
import { init } from 'echarts';

export default defineComponent({
  name: 'CommonEcharts',
  props: {
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '100%'
    },
    options: {
      type: Object,
      default: () => {
        return {};
      }
    }
  },
  setup(props) {
    const { options } = toRefs(props);
    const echartsDom = ref(null);
    let echartInstance = null;

    const initChart = () => {
      echartInstance = init(echartsDom.value);
      echartInstance.setOption(options.value);
    };

    onMounted(() => {
      initChart();
    });

    watch(
      options,
      (to) => {
        echartInstance.setOption(to);
      },
      { deep: true }
    );

    return { echartsDom };
  }
});
</script>

<style scoped></style>

Test.vue

<template>
  <div class="footer">
    <div class="analysis">
      <Title :title="'能流图'">
        <template v-slot:titleSlot>
          <el-date-picker popper-class="elDatePicker" v-model="dayValue" type="date" placeholder="选择日期" size="small" />
        </template>
      </Title>
      <div class="container">
        <CommonEcharts :options="myOptions" style="width: 100%; height: 160px" />
      </div>
    </div>
  </div>
</template>

<script setup>
import { onMounted, reactive } from 'vue';
import CommonEcharts from '@/components/CommonEcharts.vue';

const myOptions = reactive({});

onMounted(() => {});
</script>

<style lang="less" scoped></style>

 

标签:CommonEcharts,vue,const,数据源,onMounted,效果图,import,Echarts,echartInstance
From: https://www.cnblogs.com/suihung/p/16803491.html

相关文章

  • 在Vue项目中使用Echarts : Echarts中的常用组件--堆叠面积图
    一、安装并全局引入1、通过npm获取echartsnpminstallecharts--save2、在main.js中添加下面两行代码在main.js中引入5.0以下版本 importechartsfrom'echar......
  • vue3引入echarts
    安装npminstallecharts--savemain.tsimport{createApp}from'vue'import'./style.css'import*asechartsfrom'echarts'importAppfrom'./App.vue......
  • echarts折线图 多个
      <template><divref="echartsBox"class="chart":style="{height:height,width:width}"/></template><script>import*asechartsfr......
  • 解决Echarts的toolbox只显示英文的问题
    我们为toolbox中每一个配置项都添加title属性,title属性的值就是你想显示的值,随便写。toolbox的配置代码如下:toolbox:{//工具栏show:true,......
  • echarts实现带光的折线图
    最近开发的项目很频繁使用【echarts】,有个需求是实现带有光点的折现图,光点会沿着折现的路径跑,查找到示例后再者稍微记录一下。 这个光点也是一种折现的series,但是他需......
  • echarts 在IE11上异常不执行代码的问题
    echarts控件在谷歌浏览器一切正常,但是IE11(windows10上的IE)就不行了,调试发现页面直接就整个异常了,在最开始写了个alert(111)都不执行,看样子应该是哪里有语法错误,导致解析的......
  • echarts渲染世界地图+中国省份轮廓|中国地图数据文件解码|世界地图文件
    echarts渲染世界地图+中国省份轮廓|中国地图数据文件解码|世界地图文件近期接到大屏的需求,进入地图时展示世界地图,放大中国区域之后展示中国省份轮廓,然后,就卡住了。也许......
  • Echarts入门教程精简实用系列
    Echarts入门教程精简实用系列引语:echarts.js是百度团队推出的一款用于图表可视化的插件,用于以图表的形式展现数据,功能强大,上手简单1、从官方网站中下载所需的echarts.js......
  • 使用阿里的中国地图的json替换echarts中的china.js中的内容
    使用阿里的中国地图的json替换echarts中的china.js中的内容文末有相关资源这两天公司要求做一个地图展示要求每个省份根据用户量多少展示不同的颜色,且给每个市级单位加......
  • 解决Vue打印带有echarts的pdf问题
    智能中医项目中开发一个打印报告,报告里有患者的基本信息、病况和echarts展示的一些图表,解决了一下午终于解决。彩色打印效果如下:总体效果还是不错,汇总一下处理方法。修......