eachars 自适应

目录

  1. 案例:

  2. 原因:

  3. 解决: 


1. 案例:

默认是正常宽度(如图1),当再次跳转会该页面时,eachars图发生变化(如图2)。

图1
图1
图2

2. 原因:

没有给eachars添加自适应。

3. 解决: 

在父组件中:

第一步:给包eachars的div 添加  ref="refName",引用依赖,如图3所示;

第二步:监听div大小的变化,从而实时计算后的宽、高(看下面的代码),并把值传给子组件(IndexEcharts1.vue)

在子组件中:直接看代码 (子组件相当于一个封装的组件)

图3

父组件:

mounted(){this.GetEqOutView();};
methods:{
GetEqOutView() {var elementResizeDetectorMaker = detectors// 创建实例,无参数var erd = elementResizeDetectorMaker();// 创建实例带参数var erdUltraFast = elementResizeDetectorMaker({strategy: "scroll",callOnAdd: true,debug: true});//监听id为test的元素 大小变化erd.listenTo(this.$refs.IndexEcharts1Div, (element) => {this.widthAndheight = {width: element.offsetWidth + "px",height: element.offsetHeight + "px",}// debuggerconsole.log('实时计算后的宽、高 :::', this.widthAndheight.width, '------', this.widthAndheight.height, '-----------------');this.EQINDEX1 = {backgroundColor: "transparent",tooltip: {trigger: "axis",axisPointer: {type: "cross",label: {backgroundColor: "#6a7985",},},},// 调整位置grid: {top: "0%",left: "4%",right: "4%",bottom: "4%",containLabel: true,},textStyle: {color: "#ffffff",},xAxis: [{type: "category",boundaryGap: false,axisTick: {inside: true,lineStyle: {color: "#1868a9",},},axisLine: {lineStyle: {color: "#1868a9",},},data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",],},],yAxis: [{type: "value",splitLine: {lineStyle: {color: "#1868a9",},},axisLabel: {inside: true,verticalAlign: "bottom",formatter: function (value) {return value + "次";},},},],lineStyle: {normal: {color: "#31ad6b", // 线条颜色},},};this.EQINDEX1_SERIES = {series: [{name: "本年度",type: "line",smooth: true,lineStyle: {normal: {color: "#31ad6b", // 线条颜色},},areaStyle: {//区域填充样式normal: {//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。color: new this.$echarts.graphic.LinearGradient(0,0,0,1,[{ offset: 0, color: "#58ce8f" },{ offset: 0.7, color: "rgba(61,234,255, 0)" },],false),shadowColor: "rgba(53,142,215, 0.9)", //阴影颜色shadowBlur: 20, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。},},symbol: "none",data: [120, 132, 101, 134, 90, 230, 210, 155, 201, 185, 135, 160],},],}});},
}

 子组件:

<template>
<div ref="init" id="left_top" :style="{'width': `${width}`,'height': '100%'}"></div>
</template>
<script>export default {data() {return {m2R2Data: [],width: '',height: '',main: '',};},//父组件传过来的数据props: {seriesOpeion: [Array, Object],baseOption: [Array, Object],widthAndheight: [Array, Object]},computed: {changeData() {const { baseOption, seriesOpeion, widthAndheight } = this;return { baseOption, seriesOpeion, widthAndheight };},},created() {},mounted() {},watch: {changeData(val) {// debuggerthis.width = val.widthAndheight.widththis.height = val.widthAndheight.heightconsole.log('父级传递宽度', val.widthAndheight.width, '------', val.widthAndheight.height)this.main = this.$refs.init;this.myChars = this.$echarts.init(this.main); //markRaw(this.$echarts.init(this.main)); //this.$echarts.init(this.main);this.SetEchars(val.baseOption, val.seriesOpeion);this.$nextTick(() => {this.myChars.resize()})},},methods: {//#region 旧init() {let _this = this;let res = {code: "200",msg: "查询成功",m2R2Data: [{value: 20,legendname: "油箱",name: "油箱",itemStyle: { color: "#ff5252" },},{value: 20,legendname: "油滤",name: "油滤",itemStyle: { color: "#ffac52" },},{value: 20,legendname: " 发动机",name: "发动机",itemStyle: { color: "#21b8ff" },},],};// console.log("饼图数据=", res);_this.m2R2Data = res.m2R2Data;this.initData();},initData() {this.main = this.$refs.init//document.getElementById("left_top");this.myChars = this.$echarts.init(this.main);var option;option = {backgroundColor: "transparent",tooltip: {trigger: "axis",axisPointer: {type: "cross",label: {backgroundColor: "#6a7985",},},},// 调整位置grid: {top: "0%",left: "4%",right: "4%",bottom: "4%",containLabel: true,},textStyle: {color: "#ffffff",},xAxis: [{type: "category",boundaryGap: false,axisTick: {inside: true,lineStyle: {color: "#1868a9",},},axisLine: {lineStyle: {color: "#1868a9",},},data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",],},],yAxis: [{type: "value",splitLine: {lineStyle: {color: "#1868a9",},},axisLabel: {inside: true,verticalAlign: "bottom",formatter: function (value) {return value + "次";},},},],lineStyle: {normal: {color: "#31ad6b", // 线条颜色},},series: [{name: "本年度",type: "line",smooth: true,lineStyle: {normal: {color: "#31ad6b", // 线条颜色},},areaStyle: {//区域填充样式normal: {//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。color: new this.$echarts.graphic.LinearGradient(0,0,0,1,[{ offset: 0, color: "#58ce8f" },{ offset: 0.7, color: "rgba(61,234,255, 0)" },],false),shadowColor: "rgba(53,142,215, 0.9)", //阴影颜色shadowBlur: 20, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。},},symbol: "none",data: [120, 132, 101, 134, 90, 230, 210, 155, 201, 185, 135, 160],},],};option && this.myChars.setOption(option, true);// window.addEventListener("resize", function () {//   _this.myChars.resize(); //图表自适应的一个方法// });},//#endregionSetEchars(bOp, sOp) {console.log("进入SetEchars方法");this.options = Object.assign(bOp, sOp);this.myChars.setOption(this.options, true);},},};
</script>
<style scoped>
.eachar01 {height: 100%;
}
</style>

ps:这些值是要在先定义的:

EQINDEX1: {},   //相当于option中除series 以外的内容

EQINDEX1_SERIES: {},  //相当于 series 

widthAndheight: {}, //宽高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/69824.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitlab-第四天-CD到k8s集群的坑

一、.gitlab-ci.yml #CD到k8s集群的 stages: - deploy-test build-image-deploy-test: stage: deploy-test image: bitnami/kubectl:latest # 使用一个包含 kubectl 工具的镜像 tags: - k8s script: - ls -al - kubectl apply -f deployment.yaml # 根据实际情况替换…

Redis持久化——RDB和AOF

Redis数据库是内存数据库&#xff0c;一旦出现服务宕机&#xff0c;那么内存中的数据就容易丢失。所以需要进行redis的持久化动作。 Redis持久化是指将Redis内存数据持存储到磁盘中&#xff0c;若出现了Redis服务宕机后&#xff0c;能够从硬盘中再恢复到Redis内存中。 Redis的持…

公司电脑三维图纸加密、机械图挡加密软件

机械图纸加密软件的问世&#xff0c;让很多的网络公司都大受其带来的工作中的便利。在安装了机械图纸加密软件后&#xff0c;不仅可以很好的管理员工在工作时的上网娱乐&#xff0c;在对整个公司员工的工作效率上也有着明显的提高&#xff0c;那么对于机械图纸加密软件的具体特…

Docker一键部署项目,无需登录XShell

文章目录 一键部署项目Docker手动部署SpringBoot项目编写docker部署的脚本文件script.sh 脚本内容 特别注意&#xff01;编写dockerfiledockerfile 文件内容 上传后端服务的jar包到服务器中执行 script 脚本部署后端服务 自动部署SpringBoot项目引入jsch依赖编写jsch工具类执行…

【T+】畅捷通T+修改数据精度小数点,提示小数位数只能改大。

【问题描述】 使用畅捷通T软件过程中&#xff0c; 修改数据精度过程中&#xff0c;由于误操作&#xff0c;误将数量小数位数改大&#xff0c;并且保存了。 但是看软件的说明以及提示&#xff0c; 软件提示&#xff1a;数量小数位只能改大。 软件说明&#xff1a;建账后位数只能…

Vue+SpringBoot后台管理系统:Vue3+TypeScript项目搭建(一)

写在开始:一个搬砖程序员的随缘记录文章目录 一、Node安装二、Vue CLI安装三、相关的版本四、创建Vue3TypeScript项目五、Vue项目初始化六、项目启动 一、Node安装 查看Note版本 node -v查看npm版本 npm -v然后将npm升级至最新版本 npm -g install npm将npm下载源换至http:…

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…

Spring的三种异常处理方式

1.SpringMVC 异常的处理流程 异常分为编译时异常和运行时异常&#xff0c;编译时异常我们 try-cache 进行捕获&#xff0c;捕获后自行处理&#xff0c;而运行时异常是不 可预期的&#xff0c;就需要规范编码来避免&#xff0c;在SpringMVC 中&#xff0c;不管是编译异常还是运行…

mac安装vscode 配置git

1、安装vscode 官网地址 下载mac稳定版安装很慢的解决办法 (转自) mac电脑如何解决下载vscode慢的问题 选择谷歌浏览器右上角的3个点&#xff0c;选择下载内容&#xff0c;右键选择复制链接地址&#xff0c;在新窗口粘贴地址&#xff0c; 把地址中的一段替换成下面的vscode.cd…

goland插件推荐Rider UI Theme Pack

推荐一个goland配色插件Rider UI Theme Pack&#xff0c;里面自带visual assist配色&#xff0c;配色截图如下&#xff1a; 直接在plugins里面进行搜索或者在插件home page下载后进行安装&#xff0c; 然后按照下图进行设置即可。 此插件还适用于Jetbrains旗下的Clion和Pycharm…

【嵌入式学习笔记】嵌入式入门7——IIC总线协议

1.IIC简介 IIC即Inter Integrated Circuit&#xff0c;集成电路总线&#xff0c;是一种同步&#xff0c;串行&#xff0c;半双工通信总线。 IIC总线协议——总线就是传输数据通道&#xff0c;协议就是传输数据的规则&#xff0c;有以下特点&#xff1a; 由时钟线SCL和数据线S…

数学建模之“TOPSIS数学模型”原理和代码详解

一、简介 TOPSIS&#xff08;Technique for Order Preference by Similarity to Ideal Solution&#xff09;是一种多准则决策分析方法&#xff0c;用于解决多个候选方案之间的排序和选择问题。它基于一种数学模型&#xff0c;通过比较每个候选方案与理想解和负理想解之间的相…