日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

完美解決vue 中多個echarts圖表自適應的問題

瀏覽:256日期:2023-01-04 08:31:15

看代碼吧~

<div class='echarts'><IEcharts :option='bar' ref='echarts'></IEcharts> </div>mounted () { this.selfAdaption () }, methods: { //echarts自適應 selfAdaption () { const self = this; setTimeout(() => { window.onresize = function () { self.$refs.echarts.resize() } }, 10) }}

上面這段代碼在出現多個echarts圖表時只有一個圖表自適應,修改了一下

<div class='echarts'><IEcharts :option='bar' ref='echarts'></IEcharts></div> mounted () { this.selfAdaption ();},methods: { //echarts自適應 selfAdaption () { let _this = this; setTimeout(() => { window.addEventListener(’resize’, function () { _this.$refs.echarts.resize(); }) }, 10) } }

------------------------------------------------------------------------------------------------------------------------------------

在vue中引入多個echart圖表時

<div class='linebox'> <div : ref='Echart'></div> </div>methods: { init(){ const self = this;//因為箭頭函數會改變this指向,指向windows。所以先把this保存 setTimeout(() => { window.addEventListener(’resize’, function() { self.chart = self.$echarts.init(self.$refs.Echart); self.chart.resize(); }) },10) }}

補充知識:vue項目在同一頁面中引入多個echarts圖表 ,并實現封裝,自適應和動態數據改變

vue-Echarts

公司最近做項目需要用到圖表,以前是使用echarts,現在也是用這個,沒什么好糾結的! 但是最近發現以前每次做圖表之類的都沒有封裝,每次做圖表都要從新去配置之類的,寫了好多重復代碼,感覺很累啊,所以自己把圖表封裝成子組件使用,代碼工作量減輕了很多,而且子組件使用了數據進行監聽和圖表自適應屏幕大小,這樣以后會方便很多了!

當然公司的項目肯定不能發出來了,我會做個簡單的demo出來

先截個圖吧!

完美解決vue 中多個echarts圖表自適應的問題

其實我也未作什么太復雜的工作,以前工作中,頁面中要2個圖表,我在methods:{}中寫兩個方法配置之類的,類似這樣子:

完美解決vue 中多個echarts圖表自適應的問題

好了,首先第一步,使用echarts當然要引用了

1. vue 項目中 引用echarts

cnpm install echarts -S

執行完畢后再 main.js中引入

完美解決vue 中多個echarts圖表自適應的問題

因為是pc端的項目,用了element ui (不重要),引入之后就可以在全局使用了,之前對這個不是很懂,每個要圖表頁面都引入echarts,就像這個樣子:

完美解決vue 中多個echarts圖表自適應的問題

使代碼寫的亂七八糟的,現在在全局引用了,就不需要在每個用圖表的頁面中引入了

2. 父子組件中使用圖表,現在我做的這個頁面把他分成兩個部分,這個頁面整體為父,兩個圖表為子組件,這樣子

完美解決vue 中多個echarts圖表自適應的問題

1.先看下父組件代碼,樣式類的請忽視

完美解決vue 中多個echarts圖表自適應的問題

import linegraph from ’@/components/linegraph.vue’export default {data(){return{notAccess:false,ChartLineGraph2:null,option:{ title: { text: ’全年產量趨勢圖’, left: ’center’ }, tooltip: { trigger: ’item’, formatter: ’{a} <br/> : {c}’ }, legend: { left: ’center’, data: [’本年’, ’上年’], bottom:0 }, xAxis: { type: ’category’, name: ’x’, splitLine: {show: false}, data: [’一月’, ’二月’, ’三月’, ’四月’, ’五月’, ’六月’, ’七月’, ’八月’, ’九月’, ’十月’, ’十一月’, ’十二月’] }, grid: { left: ’1%’, right: ’2%’, bottom: ’8%’, containLabel: true }, yAxis: { type: ’category’, name: ’y’, splitLine: {show: true}, data:[’10%’,’20%’,’30%’,’40%’,’50%’,’60%’,’70%’,’80%’,’90%’,’100%’] }, series: [ { name: ’本年’, type: ’line’, data: [0.8, 0.98, 0.96, 0.27, 0.81, 0.47, 0.74, 0.23, .69, 0.25, 0.36, 0.56] }, { name: ’上年’, type: ’line’, data: [1, 0.2, 0.4, 0.8, 0.16, 0.32, 0.64, 1.28, 5.6, 0.25, 0.63, 0.65, 0.12] }, ]},option2:{ title: { text: ’全年設備產量對比圖’, left: ’center’ }, xAxis: { type: ’category’, data: [’檢品機1’, ’檢品機2’, ’檢品機3’, ’檢品機4’, ’檢品機5’, ’檢品機6’, ’檢品機7’] }, yAxis: { type: ’value’ }, legend: { left: ’center’, data: [’本年’, ’上年’], bottom:0 }, grid: { left: ’1%’, right: ’2%’, bottom: ’8%’, containLabel: true }, series: [ { name: ’本年’, data: [120, 200, 150, 80, 70, 110, 130], type: ’bar’, barWidth:30, }, { name: ’上年’, data: [120, 200, 150, 80, 70, 110, 130], type: ’bar’, barWidth:30, }]} }},mounted(){},components:{ErrorTip,linegraph,}}

這是父組件代碼,兩個圖表不管是折線圖還是柱狀圖都是使用 linegraph.vue這個子組件來進行的,因為我把echarts圖表生成的配置項都放在了父組件里面,然后通過父組件給子組件傳值實現圖表生成,

3.父組件我們看完了,現在我們看下是如何封裝的圖表類linegraph.vue子組件,我先截圖一下,然后解釋:

完美解決vue 中多個echarts圖表自適應的問題

這里需要注意一下這幾個問題,

第一個: 父子組件傳值問題 ,父組件需要傳id值和配置項的值給子組件生成圖表,通過vue的prop傳過來的id和data(配置項) ,具體怎么傳值可看父子組件傳值代碼或百度;

第二點: 我們首先設想這樣一個場景: 當父組件的傳值 option或者option2 (圖表配置項),剛開始在data()里面是設置為option:null,或者是一個空的對象,或者配置項缺少數據這部分,在methods中通過ajax調用接口獲取到數據然后賦值給option,例如:this.option = 一個對象,可以成圖表之類的,當option值未改變時就把option=null的值傳遞給了子組件,這樣圖表生成不了,像這樣

完美解決vue 中多個echarts圖表自適應的問題

完美解決vue 中多個echarts圖表自適應的問題

數據不能動態傳值 ,數據不能動態傳值! 要解決這個問題,必須用到vue watch的對象深度監聽,我之前寫了一篇watch,正好用上了

完美解決vue 中多個echarts圖表自適應的問題

對子組件接受到的data(配置項)進行深度監聽,當父組件通過ajax改變了傳過來的data的值,圖表將會重新渲染。

3.第三個問題

圖表自適應,當屏幕大小改變時,圖表也需要進行自適應,本來挺簡單的東西,被我頭腦轉不過來,搞了一個小時,總算搞好了啊,其實之前寫的就是在 子組件的 drawLineGraph()方法里面寫入一個方法,這個方法

window.onresize =this.ChartLineGraph.resize;

還是出問題了,這個頁面兩個圖表,結果只有后面的圖表會自適應,前面的那個沒反應???,我就蒙了,還以為自己方法寫錯了,真是蛋疼, 改成這樣,那個this一定要注意,我就是搞錯對象了,然后兩個圖表都可以自適應

完美解決vue 中多個echarts圖表自適應的問題

好吧,這是我封裝的echarts組件,沒有進行ajax的對接操作,如果有問題,歡迎留言!

以上這篇完美解決vue 中多個echarts圖表自適應的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美va亚洲va日韩∨a综合色| 久久精品99久久久| 日韩中文字幕区一区有砖一区| 欧美91在线| 日韩国产欧美一区二区三区| 久久国产66| 日韩精彩视频在线观看| 久久国产精品久久w女人spa| 久久精品不卡| 伊人影院久久| 国产亚洲福利| 午夜一级久久| 日韩极品在线观看| 好看的av在线不卡观看| 亚洲免费观看| 日韩 欧美一区二区三区| 久久精品999| 久久精品色播| 久久精品欧美一区| 国产激情一区| 韩国精品主播一区二区在线观看| www成人在线视频| 美女久久一区| 国产日韩高清一区二区三区在线| 日韩av在线免费观看不卡| 欧美在线不卡| 国产精选在线| 亚洲少妇在线| 青青国产精品| 91综合网人人| 一区二区三区四区日韩| 国产精品白丝久久av网站| 亚洲欧洲美洲av| 亚洲精品国模| 女生影院久久| 亚洲乱码视频| 久久青青视频| 视频一区中文字幕精品| 精品高清久久| 香蕉成人久久| 水蜜桃久久夜色精品一区| 老鸭窝毛片一区二区三区| 美女性感视频久久| 蜜臀av免费一区二区三区| 欧美日本久久| 日韩一区二区免费看| 国内一区二区三区| 97精品久久| 在线亚洲激情| www.九色在线| 国产乱码精品一区二区三区亚洲人| 日本欧美不卡| 国产91在线精品| 日韩精品亚洲aⅴ在线影院| 欧美sm一区| 国产精区一区二区| 综合激情在线| 日韩亚洲国产欧美| 久久精品91| 麻豆免费精品视频| 精品少妇av| 日本综合精品一区| 亚洲一区亚洲| 亚洲第一区色| 久久国产亚洲| 成人久久一区| 成人一二三区| 国产成人久久精品一区二区三区| 国产精品一区二区美女视频免费看| 蜜桃久久精品一区二区| 久久亚洲风情| 蜜桃久久精品一区二区| 蜜臀va亚洲va欧美va天堂 | 日韩动漫一区| 热三久草你在线| 国产精品任我爽爆在线播放 | 国产96在线亚洲| 精品视频在线你懂得| 精品欠久久久中文字幕加勒比| 国产精品蜜月aⅴ在线| 美女国产精品久久久| www.九色在线| 日韩久久视频| 国产精品二区不卡| 高潮一区二区| 中文在线不卡| 国产欧美一区二区精品久久久 | 精品久久美女| 国产成人精品亚洲日本在线观看| 亚洲伦乱视频| 国产美女一区| 国产日韩欧美一区| 电影天堂国产精品| 综合激情在线| 91av亚洲| 亚洲精品高潮| 蜜桃av.网站在线观看| 午夜亚洲福利在线老司机| 国产精品一国产精品| 日韩欧美一区二区三区免费看| 欧美日韩免费观看一区=区三区| 日韩高清三区| 美女少妇全过程你懂的久久| 国产麻豆一区二区三区 | 美女性感视频久久| 日韩视频一区二区三区在线播放免费观看| 日韩精品一区二区三区av| 国产亚洲一区二区手机在线观看| 亚洲影院天堂中文av色| 日本在线啊啊| 国产亚洲欧美日韩精品一区二区三区 | 国产一区清纯| 国产精品一区二区中文字幕| 欧美日韩国产免费观看视频| 久久精品99国产国产精| 亚洲专区在线| 精品一区亚洲| 精品视频在线一区二区在线| 日本一不卡视频| 好吊一区二区三区| 欧美sm一区| 亚洲欧洲高清| 国产福利电影在线播放| 国产精品第一| 欧美亚洲tv| 亚洲天堂av资源在线观看| 999久久久免费精品国产| 激情久久一区二区| 国产精品久久国产愉拍| 青青草国产成人99久久| 蜜臀av一区二区在线免费观看| 偷拍欧美精品| 欧美一区三区| 欧美在线亚洲综合一区| 亚洲婷婷在线| 亚洲国产不卡| 亚洲欧美视频一区二区三区| 国产一区日韩欧美| 在线亚洲观看| 亚洲精品成人一区| 中文字幕日韩欧美精品高清在线| 亚洲综合二区| 午夜性色一区二区三区免费视频| 日韩欧美2区| 国产精品sm| 福利一区视频| 亚洲午夜视频| 亚洲精品美女| 美女精品视频在线| 三上悠亚国产精品一区二区三区| 欧美手机在线| 色婷婷成人网| 精品深夜福利视频| 精品欧美激情在线观看| 亚欧洲精品视频在线观看| 日韩1区2区日韩1区2区| 精品国产三区在线| 久久大逼视频| 精品三级在线| 黄色精品网站| 国产精品久久久久77777丨| 欧美精品高清| 日韩精品一页| 久久久国产精品一区二区中文| 午夜日韩在线| 国产极品模特精品一二| 精品一区三区| 国产精品s色| 午夜亚洲一区| 手机在线电影一区| 亚洲一区不卡| 免费观看亚洲| 日韩福利视频一区| 国产精品av久久久久久麻豆网| 欧美日韩亚洲一区在线观看| 欧美va天堂在线| 激情不卡一区二区三区视频在线| 视频一区视频二区在线观看| 久久久久久婷| 国产欧美三级| 蜜臀av亚洲一区中文字幕| 激情黄产视频在线免费观看| 欧美在线首页| 美女91精品| 狠狠色综合网| 久久夜夜操妹子| 国产一区二区三区四区| 奇米色欧美一区二区三区| 亚洲少妇一区| re久久精品视频| 99久精品视频在线观看视频| 国产精品xxx| 国产精品视频一区二区三区综合| 国产精品普通话对白| 亚洲欧美一区在线| 欧美网站在线| jiujiure精品视频播放| 激情久久久久久| 久久精品青草| 亚洲精品中文字幕乱码|