成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

看代碼吧~

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

上面這段代碼在出現(xiàn)多個echarts圖表時(shí)只有一個圖表自適應(yīng),修改了一下

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

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

在vue中引入多個echart圖表時(shí)

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

補(bǔ)充知識:vue項(xiàng)目在同一頁面中引入多個echarts圖表 ,并實(shí)現(xiàn)封裝,自適應(yīng)和動態(tài)數(shù)據(jù)改變

vue-Echarts

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

當(dāng)然公司的項(xiàng)目肯定不能發(fā)出來了,我會做個簡單的demo出來

先截個圖吧!

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

好了,首先第一步,使用echarts當(dāng)然要引用了

1. vue 項(xiàng)目中 引用echarts

cnpm install echarts -S

執(zhí)行完畢后再 main.js中引入

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

import linegraph from ’@/components/linegraph.vue’export default {data(){return{notAccess:false,ChartLineGraph2:null,option:{ title: { text: ’全年產(chǎn)量趨勢圖’, left: ’center’ }, tooltip: { trigger: ’item’, formatter: ’{a} <br/>{b} : {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: ’全年設(shè)備產(chǎn)量對比圖’, left: ’center’ }, xAxis: { type: ’category’, data: [’檢品機(jī)1’, ’檢品機(jī)2’, ’檢品機(jī)3’, ’檢品機(jī)4’, ’檢品機(jī)5’, ’檢品機(jī)6’, ’檢品機(jī)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這個子組件來進(jìn)行的,因?yàn)槲野裡charts圖表生成的配置項(xiàng)都放在了父組件里面,然后通過父組件給子組件傳值實(shí)現(xiàn)圖表生成,

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

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

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

完美解決vue 中多個echarts圖表自適應(yīng)的問題

數(shù)據(jù)不能動態(tài)傳值 ,數(shù)據(jù)不能動態(tài)傳值! 要解決這個問題,必須用到vue watch的對象深度監(jiān)聽,我之前寫了一篇watch,正好用上了

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

3.第三個問題

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

window.onresize =this.ChartLineGraph.resize;

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

完美解決vue 中多個echarts圖表自適應(yīng)的問題

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

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

標(biāo)簽: Vue
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
99成人在线| 久久爱www久久做| 麻豆精品一区二区av白丝在线 | 亚洲福利av| 亚洲国产成人私人影院tom| 91麻豆国产精品久久| 欧美精品一区二区蜜臀亚洲| 国产成人精品一区二区三区网站观看| 欧美日韩国产一级二级| 毛片av一区二区三区| 看欧美日韩国产| 亚洲不卡av一区二区三区| 国产精品日韩一区二区| 亚洲欧美另类小说| 亚洲激情二区| 一区精品在线播放| 激情国产一区| 一区视频在线播放| 亚洲国产精品久久久久婷婷老年| 一区精品在线播放| 国产精品资源| 三级久久三级久久久| 在线免费观看日本欧美| 极品少妇xxxx精品少妇| 日韩一区二区免费在线观看| 国产 欧美在线| 久久久久久久网| 国产伊人精品| 亚洲精品欧美综合四区| 国产深夜精品| 午夜精品视频在线观看| 在线看一区二区| 国内精品免费**视频| 日韩欧美不卡一区| 欧美在线国产| 亚洲日本一区二区| 久久精品女人| 久久91精品久久久久久秒播| 欧美一区二区三区精品| 91性感美女视频| 中文字幕字幕中文在线中不卡视频| 国产欧美激情| 日本v片在线高清不卡在线观看| 欧美日韩一区二区不卡| 波多野结衣一区二区三区| 中文字幕乱码一区二区免费| 国产精品一国产精品k频道56| 日韩精品久久久久久| 欧美一区二区三级| 欧美久久九九| 亚洲一区二区三区国产| 欧美三区在线观看| 97久久超碰国产精品电影| 亚洲天堂中文字幕| 91国偷自产一区二区三区观看| 国产精品小仙女| 中文字幕不卡的av| 麻豆久久精品| 国产高清精品在线| 国产精品久久久一本精品 | 欧美老肥妇做.爰bbww| 99re成人精品视频| 一区二区三区 在线观看视频| 色中色一区二区| 成人高清视频在线观看| 亚洲欧洲日韩在线| 在线日韩av片| av电影天堂一区二区在线观看| 自拍偷拍欧美精品| 在线精品国精品国产尤物884a| 成人av资源在线观看| 亚洲精品乱码久久久久久| 欧美日韩综合色| 欧美精品自拍| 亚瑟在线精品视频| 日韩一区二区三区观看| 亚洲精品乱码久久久久久蜜桃91| 亚洲午夜成aⅴ人片| 欧美一级久久久| 一本色道久久综合亚洲精品不| 日本欧美一区二区三区乱码| 欧美大白屁股肥臀xxxxxx| 99国内精品| 国产福利一区在线| 亚洲精品成人悠悠色影视| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产综合网| 欧美aaa在线| 国产精品区一区二区三区| 色婷婷一区二区三区四区| 97久久精品人人澡人人爽| 五月激情综合网| 久久夜色精品国产欧美乱极品| 国产精品一区毛片| av动漫一区二区| 婷婷亚洲久悠悠色悠在线播放| 久久伊99综合婷婷久久伊| 久久午夜视频| 欧美视频二区| 国产露脸91国语对白| 亚洲另类中文字| 精品久久久久久久人人人人传媒| 久久国产99| 午夜精品短视频| 麻豆91精品91久久久的内涵| 中文字幕制服丝袜一区二区三区| 51精品国自产在线| 亚洲在线播放电影| hitomi一区二区三区精品| 日本aⅴ免费视频一区二区三区| 国产精品久久久久久久久免费樱桃 | 99麻豆久久久国产精品免费| 日本亚洲视频在线| 中文字幕不卡在线| 欧美一区三区二区| 久久激情一区| 国精品一区二区| 国产成人小视频| 天天综合天天综合色| 国产精品嫩草影院com| 日韩一区二区视频在线观看| 久久午夜精品一区二区| 亚洲特级毛片| www.激情成人| 精品一区二区免费| 亚洲gay无套男同| 国产精品福利电影一区二区三区四区 | 免费看黄裸体一级大秀欧美| 欧美阿v一级看视频| 国产乱码字幕精品高清av| 午夜精品在线视频一区| 综合中文字幕亚洲| 国产午夜精品在线观看| 欧美一区二区在线免费观看| 久久五月天婷婷| 亚洲日本视频| 欧美精品三级| av电影在线观看一区| 国产黄人亚洲片| 麻豆精品国产传媒mv男同| 亚洲综合色在线| 中文字幕永久在线不卡| 久久日韩精品一区二区五区| 欧美一区二区精品久久911| 在线观看亚洲专区| 久久综合伊人| 亚洲在线播放| 在线视频精品一区| 亚洲第一在线| 1000部精品久久久久久久久| 欧美xx69| 欧美成人dvd在线视频| 99久久精品情趣| 成人毛片老司机大片| 国产精品69毛片高清亚洲| 精品亚洲国内自在自线福利| 日韩av一级片| 午夜精品久久久久久久久| 亚洲免费av高清| 亚洲日本在线看| 亚洲丝袜精品丝袜在线| 亚洲视频一区二区在线观看| 国产精品久久夜| 一区视频在线播放| 国产精品久久久久毛片软件| 中文字幕电影一区| 国产精品丝袜久久久久久app| 久久久久久久综合色一本| 精品国产乱码久久久久久久久 | 免费看欧美女人艹b| 天天免费综合色| 性感美女极品91精品| 亚洲福利视频一区| 丝袜诱惑亚洲看片| 日日夜夜精品视频天天综合网| 亚洲aaa精品| 日韩中文字幕1| 日韩国产在线观看| 蜜臀久久99精品久久久久久9| 麻豆91在线播放免费| 久久99最新地址| 国产精品一区二区久久精品爱涩| 国产成人综合亚洲网站| 国产白丝网站精品污在线入口| 成人精品国产福利| 欧美在线免费一级片| 国产精品二区在线| 一区二区国产在线观看| 亚洲影音一区| 在线亚洲欧美专区二区| 欧美日本一区二区在线观看| 日韩欧美一级精品久久| 久久综合色天天久久综合图片| 久久午夜色播影院免费高清| 亚洲国产精品精华液ab| 国产精品乱码妇女bbbb| 亚洲乱码国产乱码精品精可以看| 亚洲一区二区三区四区五区中文 | 亚洲免费观看高清完整| 亚洲国产aⅴ成人精品无吗|