Vue3使用echarts tree高度自適應(yīng)支持滾動(dòng)查看功能
最近使用echarts tree寫(xiě)了一個(gè)組件,寫(xiě)了固定的高,發(fā)現(xiàn)當(dāng)展開(kāi)的節(jié)點(diǎn)特別多的時(shí)候,節(jié)點(diǎn)就會(huì)重疊在一起(如下圖),顯示效果不好,就做了一些展示優(yōu)化。

思路
一開(kāi)始tree的高度是固定寫(xiě)死的,現(xiàn)在根據(jù)節(jié)點(diǎn)的數(shù)量高度自適應(yīng),節(jié)點(diǎn)就不會(huì)重疊到一起。支持滾動(dòng)查看。
實(shí)現(xiàn)(主要代碼)
<template>
<div style="overflow: auto; height: calc(80vh)">
<div id="treechart" style="height: 800px"></div>
</div>
</template>
<script setup lang="ts">
import * as Echarts from "echarts";
import { ref,onMounted } from "vue";
onMounted(()=>{
let chartDom = Echarts.init(document.getElementById("treechart"));
let option={
....
};
chartDom.setOption(option);
chartDom.on("click",function(event){
let treeDom = document.getElementById("treechart");//獲取元素
if(event.componentType === "series"){
let nodeList = Array.from(new Set(chartDom._chartsViews[0]._data._graphicEls));//計(jì)算節(jié)點(diǎn)數(shù)量
let height = 800;//默認(rèn)高度
let currentHeight = 30*(nodeList.length-1)||100;//動(dòng)態(tài)高度
let newHeight = Math.max(currentHeight,height);
treeDom.style.height= newHeight+"px";
chartDom.resize();
}
});
})
</script>
實(shí)現(xiàn)效果

到此這篇關(guān)于Vue3使用echarts tree高度自適應(yīng)支持滾動(dòng)查看功能的文章就介紹到這了,更多相關(guān)Vue3 echarts tree滾動(dòng)查看內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue開(kāi)發(fā)chrome插件,實(shí)現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫(kù)功能
這篇文章主要介紹了vue開(kāi)發(fā)chrome插件,實(shí)現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫(kù)功能的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-12-12
Vue和React中diff算法的區(qū)別及說(shuō)明
React和Vue都使用虛擬DOM和diff算法來(lái)更新DOM,但它們?cè)趯?shí)現(xiàn)上有所不同,React采用基于索引的比較,Vue采用雙端比較算法,React在比較時(shí)不復(fù)用不同類(lèi)型的節(jié)點(diǎn),而Vue會(huì)優(yōu)先復(fù)用兩端相同的節(jié)點(diǎn),React對(duì)key的依賴(lài)較高,而Vue在沒(méi)有key時(shí)也能通過(guò)雙端比較優(yōu)化2025-03-03
nuxt中刷新頁(yè)面后防止store值丟失問(wèn)題
這篇文章主要介紹了nuxt中刷新頁(yè)面后防止store值丟失問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
使用vue腳手架(vue-cli)搭建一個(gè)項(xiàng)目詳解
這篇文章主要介紹了vue腳手架(vue-cli)搭建項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
vue實(shí)現(xiàn)在一個(gè)方法執(zhí)行完后執(zhí)行另一個(gè)方法的示例
今天小編就為大家分享一篇vue實(shí)現(xiàn)在一個(gè)方法執(zhí)行完后執(zhí)行另一個(gè)方法的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Delete `,` 如何解決(vue eslint與prettier沖突)
這篇文章主要介紹了Delete `,` 如何解決(vue eslint與prettier沖突)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Vue3中實(shí)現(xiàn)網(wǎng)頁(yè)時(shí)鐘功能(顯示當(dāng)前時(shí)間并每秒更新一次)
本文將詳細(xì)介紹如何在Vue3中實(shí)現(xiàn)一個(gè)每秒鐘自動(dòng)更新的網(wǎng)頁(yè)時(shí)鐘,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07

