VueElement-ui实现树形控件节点添加图标详解
短信预约 -IT技能 免费直播动态提醒
1.效果图
2.树形表格绑定数据加标签
想要在树形控件的树节点加上图片或者element-ui的图标,可以在树形表格绑定数据中加上标签icon
children: [
{
icon:'el-icon-top-right',
label: ['beam名称',''],
children: [
{
label:['name','RS49'],
},
{
icon:'class="lazy" data-src/assets/images/Organization.png',
label:['group('+'3'+')','']
children:[
{
label:['10600361','10950','11200','0']
}
]
}
]
}
],
在树形控件自定义函数中
直接让class等于element-ui的icon标签
img标签需要加上自己图片的地址
renderContent(h,{node,data,store}){
// div代表树形控件的一行,div中包含三个span标签
// 判断节点的label数组数量,通过三目运算来选择class
// 设置class来控制树形控件进行对齐
return h('div',[
// 在树形控件自定义函数中增加icon和图片的标签
// img标签需要加上自己图片的地址
h('span',{class:'top-right'}),
h('img',{class="lazy" data-src:data.icon}),
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])
]);
},
3.所有代码
<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'],
},
{
icon:'el-icon-top-right',
label: ['beam名称',''],
children: [
{
label:['name','RS49'],
},
{
label:['freq_min','10950'],
},
{
label:['freq_max','14500'],
},
{
icon:'class="lazy" data-src/assets/images/Organization.png',
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',[
// 在树形控件自定义函数中增加icon和图片的标签
h('span',{class:[data.icon,data.icon==='el-icon-top-right'? 'top-right':'bottom-left']}),
h('img',{class="lazy" data-src:data.icon === 'class="lazy" data-src/assets/images/Organization.png' ? data.icon:''}),
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>
其他实现
vue通过element树形控件实现树形表格
element树形控件添加虚线
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341