Vue通过Element-ui树形控件实现树形表格
在vue中通过element树形控件来实现树形表格的效果通过缩进来实现近似树形表格的效果实现效果图安装依赖$ npm install element-plus --saveElement官网自定义树形控件分析图中控件分布,每个参数都有固定的width,通过width让数值达到对齐的效果代码主要通过renderContent函数来自定义树形控件<template><div clas
·
在vue中通过element树形控件来实现树形表格的效果
通过缩进来实现近似树形表格的效果
实现效果图
安装依赖
$ npm install element-plus --save
自定义树形控件
分析图中控件分布,每个参数都有固定的width
,通过width
让数值达到对齐的效果
代码主要通过renderContent
函数来自定义树形控件
<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: ['卫星名称代号','ZOHREH-2'],
},
{
label: ['组织机构','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:{
// 自定义树形控件函数 node代表每个节点
renderContent(h,{node,data,store}){
// div代表树形控件的一行,div中包含三个span标签
// 判断节点的label数组数量,通过三目运算来选择class
// 设置class来控制树形控件进行对齐
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>
总结
树形表格主要通过element的树形控件的自定义函数renderContent
结合css来实现
其他实现
更多推荐
已为社区贡献4条内容
所有评论(0)