Element table 实现点击任何一处展开行功能

5,628次阅读
没有评论

共计 562 个字符,预计需要花费 2 分钟才能阅读完成。

当行内容过多并且不想显示横向滚动条时,可以使用 Table 展开行功能。

通过设置 type=”expand”和 Scoped slot 可以开启展开行功能,el-table-column 的模板会被渲染成为展开行的内容,展开行可访问的属性与使用自定义列模板时的 Scoped slot 相同。

正常默认是点击行前面的向右箭头展开行,但是从用户体验上好像不是很人性化,产品经理需要点击整行的任何一处,即可展开。

实现也不是不可能,table 组件提供很过的 API 和属性,通过组合即可实现。先设置行的 row-key 属性,然后利用 expand-row-keys 属性来控制当前展开的行,它是一个数组,可控制多行展开。最后通过 row-click 事件 API 来触发更新 expand-row-keys 数组。

代码实现就是


data() {
    return {expands: [],
  },

methods: {clickRowHandle(row, column, event) {if (this.expands.includes(row.id)) {this.expands = this.expands.filter(val => val !== row.id);
        } else {this.expands.push(row.id);
        }
    }
}

好了,既然没有直接的 API 实现,转换思维也是可以做到的。

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计562字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)