el-table-column 内容不自动换行的解决方法


Posted in Vue.js onAugust 14, 2022

场景

使用ElementUI中的Table 表格时,如果列内容超过列宽,会默认换行,如下

el-table-column 内容不自动换行的解决方法

这样看起来不美观,还有可能引起其它样式问题。那么如何解决呢?

方式一

使用Table组件自带的show-overflow-tooltip属性

参数说明类型可选值默认值show-overflow-tooltip当内容过长被隐藏时显示 tooltipBoolean—false

添加该属性之后,如果内容超出列宽,超长部分会默认省略。当鼠标滑过该内容时,会弹出Tip提示

<!--示例-->
<el-table-column
     prop="departName"
     label="部门"
     show-overflow-tooltip
       >
</el-table-column>

el-table-column 内容不自动换行的解决方法

注:该属性谨慎使用,如果多列使用且内容较多时,会影响页面性能

方式二

计算每列最大宽度,使内容不换行;配合设置最大字符长度,可以解决大多数场景问题。接下来展示最基础的列宽计算方式

示例如下

/**
 * 使用span标签包裹内容,然后计算span的宽度 width: px
 * @param valArr
 */
 function getTextWidth(str) {
    let padding = 0;//单元格左右padding距离
    let width = 0;
    let span = document.createElement('span');
    span.innerText = str;
    span.className = 'getwidth';
    document.querySelector('body').appendChild(span);
    // 这里可以获取当前单元格的font-size 以及 内容的中英文、字母等  做更精确的计算
    width = document.querySelector('.getwidth').offsetWidth+padding;
    document.querySelector('.getwidth').remove();
    return width;
}

/**
* 遍历列的所有内容,获取最宽一列的宽度
* @param {Array} arr 需要计算的数据
* @param {Number} minwidth 列最小宽度
*/
function getMaxLength (arr,minwidth=60) {
    return arr.reduce((acc, item) => {
        if (item) {
            let calcLen = getTextWidth(item);
            if (acc < calcLen) {
                acc = calcLen;
            }
        }
        return acc<minwidth?minwidth:acc;
    }, 0)
}

/**
* @description 计算列表列宽(把内容撑开)
* @param {Array} columns 列的数组
* @param {Array} tableArr 列表的数组
* */
function calcColumnsWidth(columns, tableArr) {
    columns.forEach((item) => {
        const arr = tableArr.map((x) => x[item.props]);
        item.width = getMaxLength(arr);
        arr.push(item.label); // 把每列的表头也加进去算
    });
    return columns;
}

<!--获取列表数据之后,计算每列最大宽度-->
let res = await this.axios.post('/api/xxx/xxxx'); 
if(res.data.data.length > 0){
    const columns = calcColumnsWidth(this.tableHead, res.data.data);
    this.tableHead = columns;
}

效果如下:列宽自动撑开,列表宽度不够时,底部会出现滚动轴。

el-table-column 内容不自动换行的解决方法

 到此这篇关于el-table-column 内容不自动换行的解决方法的文章就介绍到这了,更多相关el-table-column 不自动换行内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
如何管理Vue中的缓存页面
Feb 06 Vue.js
Vue接口封装的完整步骤记录
May 14 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 #Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 #Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 #Vue.js
Vue深入理解插槽slot的使用
Aug 05 #Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 #Vue.js
vue递归实现树形组件
Jul 15 #Vue.js
VUE递归树形实现多级列表
Jul 15 #Vue.js
You might like
FCKeditor添加自定义按钮
2008/03/27 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
jQuery事件详解
2017/02/23 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
Python中多线程及程序锁浅析
2015/01/21 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
python关闭占用端口方式
2019/12/17 Python
Python如何合并多个字典或映射
2020/07/24 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
北京申奥口号
2014/06/19 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
成绩单评语
2015/01/04 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js