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 相关文章推荐
Vue组件生命周期运行原理解析
Nov 25 Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
vue element实现表格合并行数据
Nov 30 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 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
PHP生成便于打印的网页
2006/10/09 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python 多线程应用介绍
2012/12/19 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python 可视化神器Plotly详解
2020/12/26 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
Internet体系结构
2014/12/21 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
企业文化建设实施方案
2014/03/22 职场文书
初中班级口号
2014/06/09 职场文书
任命书标准格式
2015/03/02 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
Ajax实现异步加载数据
2021/11/17 Javascript
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android