要自定義tree組件展開折疊圖標,最簡單的辦法莫過於直接改css,無需寫復雜的DOM結構,如下
<el-tree :data="data" icon-class="icon-tree" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
/deep/ .icon-tree {
margin: 0 5px 0 10px;
position: relative;
background: url('../../assets/tree_icon/plus.png');
background-size: 100% 100%;
}
/deep/ .expanded{
background: url('../../assets/tree_icon/minus-portrait.png');
background-size: 100% 100%;
}
/deep/ .is-leaf{
background-image: none;
background-size: 100% 100%;
}
icon-class用於廢掉默認圖標
is-deaf 無子節點的DOM都會有這個class
expanded 展開的節點都會帶有這個屬性
圖標換成自己想要的即可

上面的樣式存在一個過渡的效果,如果是文件夾形式的圖標存在過渡效果不合適,這兩個樣式重寫覆蓋即可
/deep/ .el-tree-node__expand-icon {
transform: initial;
transition: auto;
}
