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中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
vue数据字典取键值项目的字典问题
Apr 12 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
解决vue中provide inject的响应式监听
Apr 19 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 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使用exec shell命令注入的方法讲解
2013/11/12 PHP
PHP Session机制简介及用法
2014/08/19 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
最简单的js图片切换效果实现代码
2011/09/24 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
database面试题
2013/03/28 面试题
大学生军训自我评价分享
2013/11/09 职场文书
国际贸易专业求职信
2014/06/04 职场文书
常务副总经理任命书
2014/06/05 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
护士心得体会范文
2016/01/25 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python