element ui表格内容过长省略显示,点击单元格展开全部内容

element ui表格内容过长省略显示

​ 老板有个需求是希望能够对数据集的内容进行一个展示,当然这种功能用表格轻轻松松就解决啦,但是问题在于数据集中一条数据的内容通常都比较长,这就导致表格的一行特别的高,十分不好看,所以希望能够将表格的内容用省略号显示,当点击当前单元格时候再显示完整的表格内容。

​ 实现上述需求有以下几种思路:1.利用element ui提供的:show-overflow-tooltip="true"属性来折叠,利用tooltip来进行内容的完整展示;2.利用:formatter="stateFormat"来确定显示多少字符。

show-overflow-tooltip

​ Element-ui提供了Table-column Attributes的show-overflow-tooltip属性,使用时只需要在需要设置的列中添加该属性即可。

image-20210928103730396

显示效果如下:

image-20210928103920135

但是这也太丑了吧???哪有这样一大坨直接tooltip显示的啊?若要修改tooltip的样式可以参考 element ui 中table 单列 超出部分显示省略号,这明显不符合我的要求,我希望的是表格内容过长用省略号显示,但是通过点击表格能够实现内容的展开和重新的省略。

formatter

​ Element-ui同时还提供了Table-column Attributes的formatterp属性,它也能够帮助我们隐藏过长的表格内容

image-20210928105601846

比如我的代码是:

<el-table-column prop="content" label="数据内容" align="center" :formatter="stateFormat"></el-table-column>
stateFormat(row, column, cellValue){
  // console.log(row);
  // console.log(column);
  // console.log(cellValue);
  if(row.flag){
    if (!cellValue) return '';
    if (cellValue.length > this.contentLength) {   // 超过contentLength长度的内容隐藏
      return cellValue.slice(0, this.contentLength) + '...';
    }
    return cellValue;
  }else{
    return cellValue;
  }
},

效果如下:

image-20210928110036015

现在考虑的就是如何通过点击展开内容,这时候我注意到了一个方法 cell-click,官方描述的是 当某个单元格被点击时会触发,那么当我们点击数据内容的某个单元格的时候让内容全部展示出来是不是就可以了呢?

image-20210928110209973
clickContent(row, column, cell, event){
  clickContent(row, column, cell, event){
    if(column.label === "数据内容"){  // 只有点击数据内容列时才会展开
      row.flag = !row.flag;  // 这个参数是当时将数据存储到表格中时特意加上控制表格的展开和省略的
    }
  }
}

然后效果就实现啦~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值