关于Ant Design Pro Vue引入Viser图表不响应或超出的问题!

问题1:Viser在响应式布局中,会导致图表超出的问题,或者跟随导航栏伸缩导致图表过窄或过长。

可能出现的原因!1.由于图表是Canvas画布,在他加载时只确定栅格布局的宽度,当导航栏再次伸缩,就出超出,溢出。

解决办法:先render其他父级标签,确定父级宽高,在图表外层包裹的DIV上加v-if ,先让栅格布局加载完成,使用nextTick方法调用状态再让他显示出来!

<template>
    <a-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
		<div style="background: #fff; margin: 10px;" v-if='showChart'>
			<bar></bar>
		</div>
    </a-col>
</template>
<script>
  import bar from '@/components/chart/bar'
  
  export default{
  	name:'Monitor',
  	data(){
  		return{
  			showChart:false,
  		}
  	},
  	mounted(){
  		this.$nextTick(()=>{this.showChart=true})
  	},
  	components:{
  		bar,
  	}
  }
</script>

问题2:图表因为导航栏伸缩的原因导致图表不自动适应!

/**
 * 触发 window.resize
 */
function triggerWindowResizeEvent() {
  const event = document.createEvent('HTMLEvents')
  event.initEvent('resize', true, true)
  event.eventType = 'message'
  window.dispatchEvent(event)
}

将这个方法绑定到点击伸缩导航栏的按钮上,每次伸缩会触发resize让图表自动适应

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值