-
业务需求
这个页面展示的是分类,有两个按钮,点击可以全部展开或者收起table表格中的tree结构。 -
需求分析
在一开始的时候,我想用的是elementUI的default-expand-all这个属性,将这个属性设置成flag,然后点击按钮时去改变这个flag的值,但是这样操作没有生效。 -
解决方案
setAllExpand (arr, state) {
const _this = this
arr.forEach(i => {
// toggleRowExpansion(i, isExpand)用于多选表格,切换某一行的选中状态
// 如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
_this.$refs.tableTree.toggleRowExpansion(i, state)
if (i.childlist) {
_this.setAllExpand(i.childlist, state)
}
})
},
// 全部展开
openAll () {
const _this = this
_this.$nextTick(() => {
_this.setAllExpand(_this.table.data, true)
})
},
// 全部收起
closeAll () {
const _this = this
_this.$nextTick(() => {
_this.setAllExpand(_this.table.data, false)
})
},
这个方法主要来自这个文章elementUI中el-table树形与el-tree树形结构的一键折叠与展开