vue中,使用element ui的彈窗與echarts之間的問題


今天項目中有個需求,就是在頁面中點擊一個圖標,彈出一個抽屜式的彈窗(彈窗是element UI的抽屜),彈窗里邊是echarts呈現的數據,當我直接用echarts的時候,報錯dom沒有獲取到;

這就陷入疑惑,平時都是這樣獲取的,怎么今天就不行了呢,搜索了很多答案之后才知道,在剛進入頁面的時候抽屜是關閉的,那echarts不進行獲取dom,當點擊抽屜出來的時候,有個opened事件,在這個事件里邊進行echarts的初始化,執行數據;

 1  <el-drawer
 2       title="分析圖表"
 3       :modal="false"
 4       :close-on-click-modal="false"
 5       :modal-append-to-body="false"
 6       size="600px"
 7       :visible.sync="dataVisible"
 8       @opened="opens"
 9     >
10     <div ref="main" style="width: 100%;height:100%;"></div>
11 </el-drawer>
12 
13 export default {
14   data() {
15     return {
16       isColor: true,
17       option1: {
18         title: {
19           text: '總資產占比分析',
20           x: 'left'
21         },
22         tooltip: {
23           trigger: 'item',
24           formatter: '{a} <br/>{b} : {c} ({d}%)'
25         },
26         legend: {
27           orient: 'vertical',
28           right: '10%',
29           top: '35%',
30           data: ['A', 'B', 'C', 'D']
31         },
32         series: [
33           {
34             name: '訪問來源',
35             type: 'pie',
36             radius: '70%',
37             center: ['25%', '60%'],
38             data: [
39               { value: 335, name: 'A' },
40               { value: 310, name: 'B' },
41               { value: 234, name: 'C' },
42               { value: 135, name: 'D' }
43             ],
44             label: {
45               normal: {
46                 show: false,
47                 position: 'center'
48               }
49             }
50           }
51         ]
52       },
53 }}
54 }
55 method:{
56     opens(){
57          this.$nextTick(() => {
58             this.pie1()
59       })
60     },
61     pie1(){
62        this.$echarts.init(this.$refs.main).setOption(this.option1)
63     }
64 }
65 
66     

這樣防止dom沒有渲染之前,數據先加載,主要是用了element ui彈窗的open方法,具體的為啥用這個方法,還需要研究下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM