当前位置:   article > 正文

element-ui中el-tree组件节点全展开与全收缩功能实现_element tree 展开

element tree 展开
  1. <template>
  2. <div class="tree-container">
  3. <el-button type="primary" @click="onShrinkUnfold">
  4. {{this.expandAll ? '收缩' : '展开'}}所有节点
  5. </el-button>
  6. <el-tree :data="dataOptions" ref="tree"></el-tree>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. expandAll: false,
  14. dataOptions: [{
  15. label: '一级 1',
  16. children: [{
  17. label: '二级 1-1',
  18. children: [{
  19. label: '三级 1-1-1'
  20. }]
  21. }]
  22. }, {
  23. label: '一级 2',
  24. children: [{
  25. label: '二级 2-1',
  26. children: [{
  27. label: '三级 2-1-1'
  28. }]
  29. }, {
  30. label: '二级 2-2',
  31. children: [{
  32. label: '三级 2-2-1'
  33. }]
  34. }]
  35. }]
  36. };
  37. },
  38. methods: {
  39. // 节点展开
  40. async onShrinkUnfold() {
  41. try {
  42. await this.$confirm('确认要展开所有节点?', '提示', {
  43. confirmButtonText: '确定',
  44. cancelButtonText: '取消',
  45. type: 'warning'
  46. })
  47. this.expandAll = !this.expandAll
  48. // 改变每个节点的状态
  49. this.changeTreeNodeStatus(this.$refs.tree.store.root)
  50. } catch (e) {
  51. this.$message({
  52. type: 'info',
  53. message: e === 'cancel' ? '取消操作' : '操作失败'
  54. })
  55. }
  56. },
  57. // 改变节点的状态
  58. changeTreeNodeStatus (node) {
  59. node.expanded = this.expandAll
  60. for (let i = 0; i < node.childNodes.length; i++) {
  61. // 改变节点的自身expanded状态
  62. node.childNodes[i].expanded = this.expandAll
  63. // 遍历子节点
  64. if (node.childNodes[i].childNodes.length > 0) {
  65. this.changeTreeNodeStatus(node.childNodes[i])
  66. }
  67. }
  68. }
  69. }
  70. };
  71. </script>

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

闽ICP备14008679号