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项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
Vue router安装及使用方法解析
Dec 02 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
vue脚手架项目创建步骤详解
Mar 02 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue实现登陆页面开发实践
May 30 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
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
在Python的Django框架中创建和使用模版
2015/07/15 Python
python实现TF-IDF算法解析
2018/01/02 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python中的tcp示例详解
2018/12/09 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python魔术方法专题
2020/06/19 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
初中生散播谣言检讨书
2014/11/17 职场文书
陕西导游词
2015/02/04 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
经销商会议开幕词
2016/03/04 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技