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>

相关推荐
研來如此6 分钟前
C++ 接口设计 && Doxygen 注释
前端·javascript·c++
野槐1 小时前
Electron开发
前端·javascript·electron
#做一个清醒的人1 小时前
【Electron】开发两年Electron项目评估报告
前端·electron
lizhongxuan7 小时前
Claude Code 防上下文爆炸:源码级深度解析
前端·后端
天真萌泪8 小时前
JS逆向自用
开发语言·javascript·ecmascript
柳杉8 小时前
震惊!字符串还能这么玩!
前端·javascript
是上好佳佳佳呀9 小时前
【前端(五)】CSS 知识梳理:浮动与定位
前端·css
仍然.9 小时前
算法题目---模拟
java·javascript·算法
wefly201710 小时前
纯前端架构深度解析:jsontop.cn,JSON 格式化与全栈开发效率平台
java·前端·python·架构·正则表达式·json·php
我命由我1234511 小时前
React - 类组件 setState 的 2 种写法、LazyLoad、useState
前端·javascript·react.js·html·ecmascript·html5·js