el-table-column重构expand的样式

看官方给的文档,expand就是一个小三角
在这里插入图片描述

而我想用一个自定义的按钮来控制,如图展示,可以自定义展开或关闭的形式。
在这里插入图片描述

看看实现方法:
保留官方的expand的功能,但是将它的小三角隐藏起来,然后用自定义的按钮来控制展开
来看代码:
对于官方的expand代码操作如下:设置width为0,并且设置样式隐藏,在expand里放置展开后想要展示的内容。

  <el-table-column type="expand" width="0">
    <template slot-scope="scope">
      <el-table :data="scope.row.info" :show-header="false">
        <el-table-column prop="file_name" :label="$t('dc.file_name')" align="center" />
        <el-table-column v-if="$CBF(dc_btn.history_download) || $CBF(dc_btn.history_cla)" fixed="right" prop="operation" :label="$t('common.operation')" width="200" align="center" header-align="center">
          <template slot-scope="info_scope">
            <el-button v-permission="dc_btn.history_download" type="text" @click="download_history(info_scope.row.download_addr)">{{ $t('common.download') }}</el-button>
            <el-button v-permission="dc_btn.history_cla" type="text" @click="to_cla(info_scope.row.cla_addr)">{{ $t('dc.detail') }}</el-button>
          </template>
        </el-table-column>
      </el-table>
    </template>
  </el-table-column>

对于css:

  ::v-deep .el-table__expand-icon {
    visibility: hidden;
  }

然后在table里要设置一下展开的内容对应是哪一条数据,row-key是设置一个标记,也就是表示这一条数据是独一无二的,在我的表格数据里,path是独一无二的,也有可能是id或者index,要根据你自己的表格数据来确定。然后expand-row-keys就是设置一个数组,这个数组里存储的就是展开的数据的path
在这里插入图片描述
我在初始化的时候设置为空,也就是默认没有展开的数据。
在这里插入图片描述
然后看操作里,也就是我自定义展开按钮的代码:

  <el-table-column fixed="right" prop="operation" :label="$t('common.operation')" width="200" align="center" header-align="center">
    <template slot-scope="scope">
      <div>
        <span v-if="!scope.row.expand" class="more-show" @click="expandRow(scope.row)">{{ $t('common.expand') }}<i class="el-icon-arrow-down" /></span>
        <span v-if="scope.row.expand" class="more-show" @click="collapseRow(scope.row)">{{ $t('common.collapse') }}<i class="el-icon-arrow-up" /></span>
      </div>
    </template>
  </el-table-column>

我给table里的数据多加了一个expand属性,来控制当前这条数据是否展开。
看看控制的代码:

    expandRow(row) {
      row.expand = true
      if (this.expands.indexOf(row.path) < 0) {
        this.expands.push(row.path)
      }
    },
    collapseRow(row) {
      row.expand = false
      this.expands.splice(this.expands.indexOf(row.path), 1)
    },

然后就可以进行实现自定义控制啦!

最后可以看看我的表格数据,更有利于理解如何进行自定义设置:

      history_table_list: [{
        path: 'TradeCode 90',
        type: 'DSSAD',
        fdi_type: 'DFDI',
        start_time: '2023-04-23 12:32:00',
        end_time: '2023-04-23 12:33:00',
        info: [{
          file_name: '123',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }],
        expand: false
      }, {
        path: 'TradeCode 91',
        type: 'DSSAD',
        fdi_type: 'DFDI',
        start_time: '2023-04-23 12:32:00',
        end_time: '2023-04-23 12:33:00',
        info: [{
          file_name: '123',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }, {
          file_name: '321',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }],
        expand: false
      }, {
        path: 'TradeCode 93',
        type: 'DSSAD',
        fdi_type: 'DFDI',
        start_time: '2023-04-23 12:32:00',
        end_time: '2023-04-23 12:33:00',
        info: [{
          file_name: '123',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }],
        expand: false
      }, {
        path: 'TradeCode 94',
        type: 'DSSAD',
        fdi_type: 'DFDI',
        start_time: '2023-04-23 12:32:00',
        end_time: '2023-04-23 12:33:00',
        info: [{
          file_name: '123',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }, {
          file_name: '321',
          cla_addr: 'http://www.baidu.com',
          download_addr: ''
        }],
        expand: false
      }],
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: b'el-table-column type=expand' 是基于 Element UI 的表格组件中的一个列类型,用于展开行的详细信息。在表格中添加该列类型后,用户可以点击某一行上的展开按钮,展开该行的详细信息,通常用于显示子表格或更多的数据。 ### 回答2: el-table-columntype=expand 选项可以使表格的某一列变为展开列。展开列是一列内嵌表格,可以显示与主表格行相关的详细信息。当用户点击展开列的时候,被展开的内嵌表格会出现,并且该行的高度也会随着展开或收回而自动调整。 在 el-table-column 中使用 type=expand,需要同时定义一个名为 scopedSlots 的属性,并且指定一个名为 'expand' 的插槽。在这个插槽中可以进行具体布局和展示的操作,例如创建一个基本表格,嵌套数据绑定,定义具体表格列的属性等等。 除此之外,用户还可以在 el-table-column 中定义其他属性来控制展开列的功能。例如,可以设置 expand-priority 属性,用于指定展开列相对于其他列的优先级;也可以设置 expand-hovered,用于指定鼠标 hover 到展开列时是否显示对应的展开按钮;还可以设置 expand-icon,用于指定展开按钮的图标等等。 总的来说,使用 el-table-columntype=expand 选项可以方便地实现表格的行内展开功能,提高了表格的交互性和信息呈现效果,适用于需要展示具有层次关系的数据时。 ### 回答3: el-table-column type=expand是基于Element-UI框架中的el-table组件的一个子组件,是用来生成可折叠行的组件。该组件可以让我们在表格数据展示的时候,通过点击表格行的展开图标,查看该行的详细信息,提高数据的可读性和表格的交互性。 在使用el-table-column type=expand时,我们需要配置一个插槽,用来渲染展开行的内容。插槽可以包含任何我们想展示的信息,比如图片、图表、表格等等。插槽的作用类似于一个“子表格”,可以显示更多的相关数据,让用户更方便地查看和理解表格数据。 另外,我们还可以通过设置expandRowKeys属性,来控制哪些行需要默认展开。这是非常有用的,尤其在数据量较大,用户需要了解某些“重点”行的详细信息时,可以通过该属性在加载表格时就默认展开这些行,从而提升用户的体验和效率。 总的来说,el-table-column type=expand是一个非常实用的组件,可以有效提高表格数据的可读性和交互性。在使用过程中,我们需要注意合理设置展开行的内容和展开行的默认状态,以达到最佳的用户体验效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值