element-ui的tree树形组件怎么控制全部展开和全部折叠啊?

element-ui的tree树形组件怎么控制全部展开和全部折叠啊?有一个default-expand-all 是否默认展开所有节点的属性,只在第一次初始化tree的时候有效,改变这个属性的值好像不能控制展开折叠,请问有什么方法吗

回答:

for(var i=0;i<this.$refs.treeX.store._getAllNodes().length;i++){
           this.$refs.treeX.store._getAllNodes()[i].expanded=this.isexpand;
        }


this.$refs.treeX是树对象,通过树对象获取所有的树节点,遍历树节点设置expand属性为true则全部展开,设置为false则全部收起

回答:

貌似目前这个 store 对象已经修改过了。目前的对象包含的属性如下截图:
clipboard.png

可以通过设置 this.$refs.attrList.store.defaultExpandAll = true; 解决,已亲测

回答:

我的做法就是 v-if=false 延时一会 v-if=true

回答:

上面没有一个能用的

expandAllStatus: 是控制展开与折叠的状态(true/false)
myTree: 自己的Tree ref名

onExpandAll() {
  // 遍历tree结构修改展开与折叠是个异步行为,会耗时间,所以要写promise
  let task = new Promise((resolve, reject) => {
    this.expandAllStatus = !this.expandAllStatus;
    resolve();
  }).then(() => {
    this.treeNodeExpand(this.expandAllStatus)
  })
},
treeNodeExpand(status) {
  // 这是个耗时操作
  for(var i=0;i<this.$refs.myTree.store._getAllNodes().length;i++){
    this.$refs.myTree.store._getAllNodes()[i].expanded = status;
  }
},

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注