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 相关文章推荐
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
vue实现简易音乐播放器
Aug 14 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 实现多服务器共享 SESSION 数据
2009/08/15 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php while循环得到循环次数
2013/10/26 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php之可变函数的实例详解
2017/09/13 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
python生成词云的实现方法(推荐)
2017/06/13 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
谈谈python垃圾回收机制
2020/09/27 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
联强国际笔试题面试题
2013/07/10 面试题
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
土木工程毕业生自荐信
2013/09/21 职场文书
电钳专业个人求职信
2014/01/04 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
中秋晚会活动方案
2014/08/31 职场文书
争先创优心得体会
2014/09/12 职场文书
二审代理词范文
2015/05/25 职场文书
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫