当前位置:   article > 正文

vue中使用el-tree组件,判断是节点还是叶子,添加图片_el-tree slot-scope

el-tree slot-scope

感谢我的同学来自小米的前端工程师-----冯昕

这个需求的要求是这样的,有一个树形结构的数据,我们需要在叶子前方添加一张图片,如果是节点,那么就没有这个图片,

现在的样子是这样的

现在我们需要将部门前面的图片去掉,只有设备才有这个图片

具体代码如下,el-tree组件有个插槽, slot-scope,插槽中可以自定义树节点的内容,参数为 { node, data },data就是当前节点的所有数据信息,是个对象{},接下来我们就可以通过部门和设备的不同点来控制前方图片的显示和隐藏,用了这个tree组件还是非常方便的,如果是自己封装的tree还需要用到递归

  1. <el-tree
  2. class="elTree"
  3. :data="data"
  4. :filter-node-method="filterNode"
  5. node-key="id"
  6. ref="tree"
  7. @node-click="handleNodeClick"
  8. :expand-on-click-node="false"
  9. :default-expand-all="false"
  10. accordion
  11. >
  12. <span class="custom-tree-node" slot-scope="{ node, data }">
  13. //图片显示,判断是设备还是部门
  14. <img
  15. src="../../../assets/images/dianLog2.png"
  16. alt=""
  17. v-if="!data.children && !data.canClick"
  18. />
  19. <span>{{ data.label }}</span>
  20. <span>
  21. <el-button
  22. style="margin-left: 2px; width: 19px; padding: 0px"
  23. circle
  24. type="text"
  25. size="medium"
  26. :disabled="false"
  27. @click="() => edit(data)"
  28. ><img src="../../../assets/images/修改.png" alt="" />
  29. </el-button>
  30. <el-button
  31. style="margin-left: 2px; width: 19px; padding: 0px"
  32. circle
  33. type="text"
  34. size="medium"
  35. :disabled="false"
  36. @click="() => append(data)"
  37. ><img src="../../../assets/images/添加 (1).png" alt="" />
  38. </el-button>
  39. <el-button
  40. type="text"
  41. circle
  42. size="mini"
  43. style="padding: 1px; width: 1px; margin-left: 2px"
  44. @click="() => remove(node, data)"
  45. >
  46. <img src="../../../assets/images/删除2.png" alt="" />
  47. </el-button>
  48. </span>
  49. </span>
  50. </el-tree>

完成以后,实现效果如下

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/259243
推荐阅读
相关标签
  

闽ICP备14008679号