日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

el-table-column重構expand的樣式

作者:ChangYan. 更新時間: 2023-07-08 編程語言

看官方給的文檔,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
      }],

原文鏈接:https://blog.csdn.net/changyana/article/details/130429532

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新