vue彈窗里面使用echarts不顯示的問題及解決
前言
彈出層中插入echarts圖表,沒有報(bào)錯(cuò),但是圖表加載不出來
此彈出層沒有用element 的dialog 對(duì)話框,用的自己封裝的組件,但是出現(xiàn)的問題是一樣的
原因分析
彈出層 的內(nèi)容是懶渲染的,即在第一次被打開之前,傳入的默認(rèn) slot 不會(huì)被渲染到 DOM 上。
彈出層組件會(huì)監(jiān)聽 visible 的狀態(tài),當(dāng)狀態(tài)為 true 時(shí),立刻觸發(fā) open 事件,但這個(gè)時(shí)候 彈出層 的內(nèi)容還沒有渲染。
因?yàn)?Vue 組件通過 $emit 觸發(fā)的事件并不是異步執(zhí)行的,而是同步執(zhí)行。
解決方式
一、nextTick
? ? ? this.$nextTick(() => {
? ? ? // ?執(zhí)行echarts方法
? ? ? ? this.initEcharts()
? ? ? })二、setInterval
?setInterval(() => {
? ? ? ? // ?執(zhí)行echarts方法
? ? ? ? this.initEcharts()
? ? ? }, 500);彈出層組件和畫圖方法:
? ? <popup :tClick="retreatFromSave" :tBoot="organizationUp" tWidth='1080px'> ? ? ? ? <div slot="main" class="teamwork-text-nr"> ? ? ? ? <div class="line">實(shí)景圖</div> ?? ? ? ? ? ?<!-- 圖表 --> ?? ? ? ? ? ?<div id="sCharts" style="height: 500px;"></div> ? ? ? ?? ?</div> ? ? ? <div slot="footer" style="text-align: right;padding-right: 30px;"> ? ? ? ? <jurisbtn tFloat="none" :tClick="retreatFromSave" tName="關(guān)閉" type="primary"></jurisbtn> ? ? ? </div> ? ? </popup>
? ? // ? 圖表
? ? initEcharts() {
? ? ? const myChart = this.$echarts.init(document.getElementById('sCharts'))
? ? ? const option = {
? ? ? ? tooltip: {
? ? ? ? ? trigger: 'axis',
? ? ? ? ? axisPointer: {
? ? ? ? ? ? type: 'cross'
? ? ? ? ? }
? ? ? ? },
? ? ? ? xAxis: [
? ? ? ? ? {
? ? ? ? ? ? type: 'category',
? ? ? ? ? ? data: [
? ? ? ? ? ? ? '1月',
? ? ? ? ? ? ? '2月',
? ? ? ? ? ? ? '3月',
? ? ? ? ? ? ? '4月',
? ? ? ? ? ? ? '5月',
? ? ? ? ? ? ? '6月',
? ? ? ? ? ? ? '7月',
? ? ? ? ? ? ? '8月',
? ? ? ? ? ? ? '9月',
? ? ? ? ? ? ? '10月',
? ? ? ? ? ? ? '11月',
? ? ? ? ? ? ? '12月'
? ? ? ? ? ? ],
? ? ? ? ? ? axisPointer: {
? ? ? ? ? ? ? type: 'shadow'
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ],
? ? ? ? yAxis: [
? ? ? ? ? {
? ? ? ? ? ? type: 'value',
? ? ? ? ? ? name: '總體積',
? ? ? ? ? ? min: 0,
? ? ? ? ? ? max: 10,
? ? ? ? ? ? interval: 1,
? ? ? ? ? ? axisLabel: {
? ? ? ? ? ? ? formatter: '{value} m3'
? ? ? ? ? ? }
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? type: 'value',
? ? ? ? ? ? name: '使用負(fù)荷',
? ? ? ? ? ? min: 0,
? ? ? ? ? ? max: 100,
? ? ? ? ? ? interval: 10,
? ? ? ? ? ? axisLabel: {
? ? ? ? ? ? ? formatter: '{value} %'
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ],
? ? ? ? series: [
? ? ? ? ? {
? ? ? ? ? ? name: '總體積',
? ? ? ? ? ? type: 'bar',
? ? ? ? ? ? data: [2.0, 4.9, 5.5, 2.2, 4.6, 6.7, 5.6, 6.2, 3.6, 2.0, 6.4, 3.3],
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? color: '#d0e17d'
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? name: '使用負(fù)荷',
? ? ? ? ? ? type: 'line',
? ? ? ? ? ? yAxisIndex: 1,
? ? ? ? ? ? data: [100, 22, 33, 45, 63, 80, 20, 23, 23, 65, 12, 6.2],
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? color: '#898989'
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ]
? ? ? }
? ? ? myChart.setOption(option);
? ? },總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Vue中嵌入可浮動(dòng)的第三方網(wǎng)頁窗口的示例詳解
本文介紹了在Vue2項(xiàng)目中嵌入可浮動(dòng)的第三方網(wǎng)頁窗口的實(shí)現(xiàn)方法,包括使用iframe、div+script和dialog元素等方式,并提供了一個(gè)實(shí)戰(zhàn)Demo,展示了如何在Vue組件中動(dòng)態(tài)加載和控制浮窗的顯示,需要的朋友可以參考下2025-02-02
Vue3中實(shí)現(xiàn)歌詞滾動(dòng)顯示效果
本文分享如何在Vue 3中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的歌詞滾動(dòng)效果,我將從歌詞數(shù)據(jù)的處理開始,一步步介紹布局的搭建和事件的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2024-02-02
Vue.directive 實(shí)現(xiàn)元素scroll邏輯復(fù)用
這篇文章主要介紹了Vue.directive 實(shí)現(xiàn)元素scroll邏輯復(fù)用功能,文中給大家提到元素實(shí)現(xiàn)滾動(dòng)的條件有兩個(gè),具體內(nèi)容詳情大家參考下本文2019-11-11
關(guān)于怎么在vue項(xiàng)目里寫react詳情
本篇文章是在vue項(xiàng)目里寫tsx的一篇介紹。其實(shí)vue里面寫jsx也挺有意思的,接下來小編九給大家詳細(xì)介紹吧,感興趣的小伙伴請(qǐng)參考下面的文章內(nèi)容2021-09-09
vue2.* element tabs tab-pane 動(dòng)態(tài)加載組件操作
這篇文章主要介紹了vue2.* element tabs tab-pane 動(dòng)態(tài)加載組件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Vue + OpenLayers 快速入門學(xué)習(xí)教程
大家都知道使用 Openlayers可以很靈活自由的做出各種地圖和空間數(shù)據(jù)的展示。而且這個(gè)框架是完全免費(fèi)和開源的,本文記錄下 Vue 使用 OpenLayers 入門,使用 OpenLayers 創(chuàng)建地圖組件的相關(guān)知識(shí),需要的朋友一起學(xué)習(xí)下吧2021-09-09
Vite打包優(yōu)化之縮小打包體積實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了使用Vite縮小打包體積如何實(shí)現(xiàn)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

