ElementUI表格错位修复技巧

问题 如图

点击勾选右侧字段 显示/隐藏,会导致左侧出现表格样式错乱问题

分析

分析问题:列显示/隐藏后,Element UI 表格未重新计算布局,导致样式错乱。修复 CRUD.operation.vue 中的 updateColumnVisible ,在列变更后强制表格重新布局。

解决方法

关键代码

javascript 复制代码
   // 强制表格重新计算布局,修复列显示/隐藏后的样式错乱问题
        this.$nextTick(() => {
          if (table && typeof table.doLayout === 'function') {
            table.doLayout();
          }
        });
      

使用了doLayout方法之后,基本就可以解决常见的错位问题了,如果情况特殊$nextTick不起作用,用setTimeout试一下即可。

修改后直接更新,让现场人员测试,结果! 发现了一个很奇葩的问题

奇葩错位

在el-tabs里已经doLayout处理过的table,在右边勾选 字段显示/隐藏,当表格只剩下2-3个字段的时候,又错位了。

现象

库位这一列,数据一行展示的时候,左侧会出现错位现象

库位这一列,数据多行展示的时候,不会出现错位现象

思考

在动态控制字段显示/隐藏的监听事件里再执行一次doLayout不就完了么,现实是,无效果。还是没有解决问题

经过多方面的测试,最终发现罪魁祸首就是

html 复制代码
<el-table-column 
prop="posName" 
:sortable="true" 
:label="$t('NeoLight.storageNo')" 
width="100" />

里边的这个**width**值!

解决el-table里所有错位问题的方法,其实就是,使用min-width ,根据label值的长度调整min-width,min-width过小就会导致各种奇葩的错位,例如上边这个库位的label,width="100"就会出现错位现象,设为min-width:100就没有问题了。

html 复制代码
<el-table-column 
prop="posName" 
:sortable="true" 
:label="$t('NeoLight.storageNo')"
 min-width="100" />

总结

根据表头文字长度、给有min-width的列设置合适的值,错位问题就解决了。

相关推荐
Chrischaan4 小时前
做 AI 塔罗小程序时,我为什么不让大模型自己抽牌:一次上线复盘
前端
骑着蜗牛撵大象3275 小时前
LangChain 工具调用从声明到闭环:给智能体接上真实的手脚
前端
数据掘金5 小时前
百度统计后台页面数据异常?从手动调用时机开始排查
前端
hunteritself5 小时前
10 层 4K 实时剪辑,国产工作站进入广电制作核心
大数据·前端·人工智能·深度学习·transformer
踩着两条虫5 小时前
我在浏览器里“盖”了一个村:Vue + Three.js 大屏开发踩坑记
前端·vue.js·three.js
mbshqqb5 小时前
TypeScript基础教程之同步生成器
前端·javascript·typescript
嘟嘟同学和妮妮同学5 小时前
【升级】一个中国历史可视化站:皇帝时间线梳理、古代思想流派、诗词鉴赏 (2)
前端·html
暗夜行者之光6 小时前
LangGraph + MCP 实战:构建"自然语言查数据"的 ChatBI Agent
前端·后端
一tiao咸鱼6 小时前
还在手动海投?我做了个 AI 求职助手,自动筛选 BOSS 职位再精准投递
前端·后端·面试
尤水就下6 小时前
🔥预热:在线文档的 block 架构是如何实现的(未完待续...)
前端·javascript·架构