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+iview实现分页及查询功能
Nov 17 Vue.js
vue+iview实现文件上传
Nov 17 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
在vue项目中封装echarts的步骤
Dec 25 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
解读Vue组件注册方式
May 15 Vue.js
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 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函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
招商经理岗位职责
2013/11/16 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
喝酒检查书范文
2014/02/23 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
给校长的建议书
2014/03/12 职场文书
北京奥运会主题口号
2014/06/13 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
Python+Tkinter制作专属图形化界面
2022/04/01 Python