vue通過(guò)element樹(shù)形控件實(shí)現(xiàn)樹(shù)形表格
在vue中通過(guò)element樹(shù)形控件來(lái)實(shí)現(xiàn)樹(shù)形表格的效果
通過(guò)縮進(jìn)來(lái)實(shí)現(xiàn)近似樹(shù)形表格的效果
實(shí)現(xiàn)效果圖

安裝依賴
$ npm install element-plus --save
自定義樹(shù)形控件

分析圖中控件分布,每個(gè)參數(shù)都有固定的width,通過(guò)width讓數(shù)值達(dá)到對(duì)齊的效果
代碼主要通過(guò)renderContent函數(shù)來(lái)自定義樹(shù)形控件
<template>
<div class="mytree">
<el-tree
:data="tree_data"
:props="defaultProps"
@node-click="handleNodeClick"
indent="0"
:render-content="renderContent"
></el-tree>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
components: {},
data() {
return {
tree_data: [
{
// type:1,
label: 'notice-id1',
children: [
{
label: ['衛(wèi)星名稱代號(hào)','ZOHREH-2'],
},
{
label: ['組織機(jī)構(gòu)','IRN'],
},
{
label: ['頻率范圍','10950-1450'],
},
{
label: '[上行]beam名稱',
children: [
{
label:['name','RS49'],
},
{
label:['freq_min','10950'],
},
{
label:['freq_max','14500'],
},
{
label:[]'group('+'3'+')','']
children:[
{
label:['10600361','10950','11200','0']
},
{
label:['10600361','10950','11200','0']
},
{
label:['10600361','10950','11200','0']
}
]
}
]
},
],
},
],
defaultProps: {
children: 'children',
label: 'label',
},
}
},
method:{
// 自定義樹(shù)形控件函數(shù) node代表每個(gè)節(jié)點(diǎn)
renderContent(h,{node,data,store}){
// div代表樹(shù)形控件的一行,div中包含三個(gè)span標(biāo)簽
// 判斷節(jié)點(diǎn)的label數(shù)組數(shù)量,通過(guò)三目運(yùn)算來(lái)選擇class
// 設(shè)置class來(lái)控制樹(shù)形控件進(jìn)行對(duì)齊
return h('div',[
h('span', {class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label[0]),
h('span', {class:'groupStyle'},node.label[1]),
h('span',{class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label.length === 2 ? '':node.label[2])
]);
},
}
})
</script>
<style lang="scss" scoped>
.nodeStyle{
width:110px;
display:inline-block;
text-align:left;
}
.groupStyle{
width:150px;
display:inline-block;
text-align:left;
}
</style>
其他實(shí)現(xiàn)
Element-ui實(shí)現(xiàn)樹(shù)形控件節(jié)點(diǎn)添加圖標(biāo)
總結(jié)
樹(shù)形表格主要通過(guò)element的樹(shù)形控件的自定義函數(shù)renderContent結(jié)合css來(lái)實(shí)現(xiàn)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
關(guān)于element-ui resetFields重置方法無(wú)效問(wèn)題及解決
這篇文章主要介紹了關(guān)于element-ui resetFields重置方法無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue Echarts實(shí)現(xiàn)圖表輪播圖以及圖表組件封裝和節(jié)流函數(shù)優(yōu)化講解
這篇文章主要介紹了在Vue中優(yōu)雅的使用Echarts實(shí)現(xiàn)圖表輪播圖、Echarts圖表組件封裝、節(jié)流函數(shù)優(yōu)化圖表性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
vue中根據(jù)時(shí)間戳判斷對(duì)應(yīng)的時(shí)間(今天 昨天 前天)
這篇文章主要介紹了vue中 根據(jù)時(shí)間戳 判斷對(duì)應(yīng)的時(shí)間(今天 昨天 前天),需要的朋友可以參考下2019-12-12
Vue3中按需引入ECharts詳細(xì)步驟(一看就會(huì))
新項(xiàng)目采用Vue3作為前端項(xiàng)目框架,避免不了要使用echarts,這篇文章主要給大家介紹了關(guān)于Vue3中按需引入ECharts的相關(guān)資料,需要的朋友可以參考下2023-09-09
vue中如何給多個(gè)按鈕動(dòng)態(tài)添加類(lèi)名
這篇文章主要介紹了vue中如何給多個(gè)按鈕動(dòng)態(tài)添加類(lèi)名問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
vue使用數(shù)組splice方法失效,且總刪除最后一項(xiàng)的問(wèn)題及解決
這篇文章主要介紹了vue使用數(shù)組splice方法失效,且總刪除最后一項(xiàng)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue實(shí)現(xiàn)點(diǎn)擊關(guān)注后及時(shí)更新列表功能
這篇文章主要介紹了vue實(shí)現(xiàn)點(diǎn)擊關(guān)注后及時(shí)更新列表功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
vue-router中的鉤子函數(shù)和執(zhí)行順序說(shuō)明
這篇文章主要介紹了vue-router中的鉤子函數(shù)和執(zhí)行順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

