el-tree组件只有一级节点显示图片,并默认是一张图片,展开时是另外一张图片

<el-tree :data="treeData" :props="defaultProps" show-checkbox :render-content="renderContent"

@check-change="handleCheckChange" >

</el-tree>

data数据:

treeData: [{

id: 1,

label: "一级节点 1",

children: [{

id: 2,

label: "二级节点 1-1"

},

{

id: 3,

label: "二级节点 1-2"

}

]

},

{

id: 4,

label: "一级节点 2",

children: [{

id: 5,

label: "二级节点 2-1"

},

{

id: 5,

label: "二级节点 2-1"

},

{

id: 5,

label: "二级节点 2-1"

}

]

}

],

defaultProps: {

children: "children",

label: "label"

},

方法:

renderContent(h, {

node,

data,

store

}) {

const isTopLevel = node.level === 1;

return ( <

span class = "custom-tree-node" > {

isTopLevel && ( <

img src = {

node.checked ? require('@/assets/33.png') : require('@/assets/32.png')

}

alt = "Node Image"

style = "width: 16px; height: 16px; vertical-align: middle; margin-right: 5px;" /

>

)

} {

node.label

} <

/span>

);

},

handleCheckChange(data, checked, indeterminate) {

this.$refs.tree.updateKeyChildren(data.id);

},

如果都需要图片:去掉isTopLevel即可,

如果是图标:在el-tree中添加插槽(也是父节点有图标,反之去掉判断)

<span slot-scope="{ node, data }" class="slot-t-node">

<template>

<i v-if="node.level === 1" :class="{

'el-icon-folder': !node.expanded, // 节点收缩时的图标

'el-icon-folder-opened': node.expanded, // 节点展开时的图标

'el-icon-user-solid': data.type === 2 // data.type是后端配合提供的识别字段,最后一级

}" style="color: #409eff;" />

<span>{{ node.label }}</span>

</template>

</span>

相关推荐
533_18 小时前
[element-plus] el-tree 动态增加节点,删除节点
前端·javascript·vue.js
禁止摆烂_才浅18 小时前
前端开发小技巧-【JavaScript】- 获取元素距离 document 顶部的距离
前端·javascript·react.js
wshzd18 小时前
LLM之Agent(二十九)|LangChain 1.0核心组件介绍
前端·javascript·langchain
程序猿_极客18 小时前
Vue 2脚手架从入门到实战核心知识点全解析(day6):从工程结构到高级通信(附代码讲解)
前端·javascript·vue.js·vue2学习笔记
q***718518 小时前
海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)
java·前端·spring boot
一只小阿乐18 小时前
vue3 使用v-model开发弹窗组件
javascript·vue.js·elementui
web加加18 小时前
vue3 +vite项目页面防f12,防打开控制台
前端·javascript·vue.js
A尘埃19 小时前
大模型应用python+Java后端+Vue前端的整合
java·前端·python
遥遥晚风点点20 小时前
Spark导出数据文件到HDFS
前端·javascript·ajax
克里斯蒂亚L20 小时前
开发一个计时器组件
前端·浏览器