自定义el-tree数据的图标,修改三角图标的颜色
1.项目中有一份数据是文件夹里面包含文件夹再包含问件的格式,有个需求是需要将文件夹和文件的图标区别处理.
tree ref="dataRef" :accordion="false" show-checkbox :node-key="defaultProps.value" :data="resourceData" :props="defaultProps" @check="handleCheckChange" @check-change="change" > class="custom-tree-node" slot-scope="{ data }"> "data.icon" />{{ data.aliaName }} export default{ data(){ resourceData: [], defaultProps: { value: 'id', // ID字段名 label: 'aliaName', // 显示名称 children: 'children' // 子级字段名 }, }, methods:{ // 数据添加图标 addIcon(data) { data.map((item) => { item.icon = require('../../../assets/pack.png'); if (item.children && item.children.length > 0) { this.addIcon(item.children); } else { item.icon = require('../../../assets/layer.png'); } }); } }, created(){ this.addIcon(this.resourceData) } }
最后的效果如下:
2.修改el-tree树结构自带的三角图标的颜色.
修改三角图标的颜色比较简单,加上下面的代码即可
.el-tree .el-tree-node__expand-icon {
color: #ccc;
}
但是加上了之后会出现一个问题,会将叶子节点(没有子节点的)也给添加了三角图标,审查元素发现所有节点的图标都带有一样的类名,只要修改样式就会更改所有图标,不管是否是叶子节点.所以还要加上下面的代码,隐藏叶子节点的三角图标才能行.
.el-tree-node__expand-icon.is-leaf::before { display: none; }