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>

相关推荐
从文处安22 分钟前
「前端何去何从」混乱到有序的状态管理: Reducer 与 Context
前端·react.js
爱喝铁观音的谷力景辉23 分钟前
在Cesium中实现带箭头方向路线样式的技术详解
javascript·cesium
Qhappy23 分钟前
AI逆向实战:从零还原某航空App的AES加密
javascript·后端
名字都不重要何况昵称28 分钟前
Color Pick 2D(多 Canvas 像素拾取)
前端·canvas
安妮的小熊呢1 小时前
CRMEB开源商城系统 & 标准版系统(PHP)开发规范
开发语言·javascript·php
BY组态1 小时前
Ricon组态系统技术深度解析:打造高性能Web可视化平台
前端·物联网·iot·web组态·组态
山屿落星辰1 小时前
Flutter 高级特性实战:动画、自定义绘制、平台通道与 Web 优化
前端·flutter
弹简特2 小时前
【Vue3速成】01-npm+vue初体验+vite构建vue工程化
vue.js·arcgis·npm
坚定信念,勇往无前2 小时前
electron-vite 安装better-sqlite3
javascript·数据库·electron
@菜菜_达2 小时前
jquery.inputmask插件介绍
前端·javascript·jquery