Ant Design Vue 嵌套表格每次仅展开一行

Posted format2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ant Design Vue 嵌套表格每次仅展开一行相关的知识,希望对你有一定的参考价值。

具体操作

参考来源:https://codesandbox.io/embed/...

Ant Design Vue 嵌套表格是没有展开一行收起另外一行,这样会导致数据的污染。官方demo也没涉及到该点。

1、在table三个重要属性
:rowKey="(record) => record.key"
:expandIcon="expandIcon"
:expandedRowKeys="curExpandedRowKeys"

<a-table
      :rowKey="(record) => record.key"
      :expandIcon="expandIcon"
      :expandedRowKeys="curExpandedRowKeys"
      :columns="columns"
      :data-source="data"
      :pagination="false"
      size="small"
      class="components-table-demo-nested"
      bordered
    >
    ....
</a-table>

2、data处初始化

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

3、我用的是expandIcon更换了展开与收起图标

expandIcon(props) {
  if (props.expanded) {
    return <a-icon type=\'down\' style="color:#bfbfbf" onClick={e => {
      props.onExpand(props.record, e);
      let index = this.curExpandedRowKeys.indexOf(props.record.key);
      this.curExpandedRowKeys.splice(index, 1);
    }} />;
  } else {
    return <a-icon type=\'right\' style="color:#bfbfbf" onClick={e => {
      props.onExpand(props.record, e);
      if (this.curExpandedRowKeys.length > 0) {
        let index = this.curExpandedRowKeys.indexOf(props.record.key);
        if (index > -1) {
          this.curExpandedRowKeys.splice(index, 1);
        } else {
          this.curExpandedRowKeys.splice(0, this.curExpandedRowKeys.length);
          this.curExpandedRowKeys.push(props.record.key);
        }
      } else {
        this.curExpandedRowKeys.push(props.record.key);
      }
    }} />;
  }
},

总结

curExpandedRowKeys: [], //属性很关键    

像我们做嵌套表格上面一般还有配有查询条件,查询的时候一定记得执行一下curExpandedRowKeys置空。不然用户展开嵌套表浏览后再去查询,嵌套表格是展开的。没有收起的效果。

this.curExpandedRowKeys=[]

以上是关于Ant Design Vue 嵌套表格每次仅展开一行的主要内容,如果未能解决你的问题,请参考以下文章

基于Ant Design Vue创建的vue项目中表格组件的使用

Ant Design Pro 4.5嵌套表格使用,以及string转图标显示(typescript版)

Ant Design of Vue之表格中合并单元格

进阶Ant-Design-Vue你知道table多级表头嵌套展开写法吗?

进阶Ant-Design-Vue你知道table多级表头嵌套展开写法吗?

Ant Design of Vue —— Table表格组件 —— 设置动态表头