当前位置: 首页 > news >正文

elementui中 表格使用树形数据且固定一列时展开子集移入时背景色不全问题(父级和子级所展示的字段是不一样的时候)

原来的效果
在这里插入图片描述

修改后实现效果
在这里插入图片描述
解决- 需要修改elementui的依赖包中lib/element-ui.common.js中的源码
将js中此处代码改完下面的代码

watch: {// don't trigger getter of currentRow in getCellClass. see https://jsfiddle.net/oe2b4hqt/// update DOM manually. see https://github.com/ElemeFE/element/pull/13954/files#diff-9b450c00d0a9dec0ffad5a3176972e40// 修改 包含子集的树形数据的table 中 移入子集背景色问题  _this3.$parent.$parent.$parent.$el -和页面元素有关 如果包了很多层div的话 要精准寻找'store.states.hoverRow': function storeStatesHoverRow(newVal, oldVal) {var _this3 = this;let expandedRow = _this3.$parent.$parent.$parent.$el.querySelectorAll('.expanded')if (expandedRow.length) {// this.store.states.isComplex 为true说明当前移入的是父级 tr 为false当前移入的是子级tr 当子级table展开后又移入父级tr 时不做处理 (解决子级table展开时 且又移入父级tr后 出现子级tr背景高亮bug)if (this.store.states.isComplex||this.$isServer) return;// 如果dom元素包含类名expanded 说明有子集var raf = window.requestAnimationFrame;if (!raf) {raf = function raf(fn) {return setTimeout(fn, 16);};}raf(function () {// 查找到子集中同时包含.el-table__body-wrapper(左边tr所在的dom) .el-table__fixed-right(右边定位table所在的dom) 然后获取这两个dom中的所有的.el-table__row (只要表格使用了固定 则会有两套dom显示 所以要获取两套dom中移入触发的tr)var rows1 = _this3.$parent.$parent.$parent.$el.querySelectorAll('.el-table__body-wrapper .childrenTable .el-table__row');var rows2 = _this3.$parent.$parent.$parent.$el.querySelectorAll('.el-table__fixed-right .childrenTable .el-table__row');if (rows1) {var oldRow = rows1[oldVal];var newRow = rows1[newVal];if (oldRow) {Object(dom_["removeClass"])(oldRow, 'hover-row');}if (newRow) {Object(dom_["addClass"])(newRow, 'hover-row');}}if (rows2) {var oldRow = rows2[oldVal];var newRow = rows2[newVal];if (oldRow) {Object(dom_["removeClass"])(oldRow, 'hover-row');}if (newRow) {Object(dom_["addClass"])(newRow, 'hover-row');}}});} else {// this.store.states.isComplex 父级table是否包含固定列if (!this.store.states.isComplex || this.$isServer) return;var raf = window.requestAnimationFrame;if (!raf) {raf = function raf(fn) {return setTimeout(fn, 16);};}raf(function () {var rows = _this3.$el.querySelectorAll('.el-table__row');var oldRow = rows[oldVal];var newRow = rows[newVal];if (oldRow) {Object(dom_["removeClass"])(oldRow, 'hover-row');}if (newRow) {Object(dom_["addClass"])(newRow, 'hover-row');}});}},},

.childrenTable是子级table类名 ==>
在这里插入图片描述

注 当父级和子级所显示的字段名称是不一样的时候 会出现这个问题 ,如果父级和子级所显示的数据是一样的 则直接使用elementui中的源码 不会出现此类问题
在这里插入图片描述

相关文章:

  • Rust后台管理系统Salvo-admin源码编译
  • 基于Fluent和深度学习算法驱动的流体力学计算与应用
  • 5.27周报
  • 【MySQL精通之路】数据类型
  • [转载]同一台电脑同时使用GitHub和GitLab
  • C++:vector基础讲解
  • 【ARMv8/v9 异常模型入门及渐进 10 -- WFI 与 WFE 使用详细介绍 1】
  • linux网卡MAC地址
  • 浅谈,Java当中普通类与抽象类的区别
  • Day47 打家劫舍123
  • 【MySQL精通之路】全文搜索(3)-带查询扩展的全文搜索
  • .DFS.
  • Docker安装MySQL的详细教程
  • 机器学习笔记——K近邻算法、手写数字识别
  • 【网络协议】【OSI】一次HTTP请求OSI工作过程详细解析
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • C# 免费离线人脸识别 2.0 Demo
  • css布局,左右固定中间自适应实现
  • java正则表式的使用
  • Redis 懒删除(lazy free)简史
  • spring + angular 实现导出excel
  • vue2.0项目引入element-ui
  • 构建工具 - 收藏集 - 掘金
  • 后端_ThinkPHP5
  • 记录:CentOS7.2配置LNMP环境记录
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端相关框架总和
  • 用简单代码看卷积组块发展
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​iOS安全加固方法及实现
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • (13)Hive调优——动态分区导致的小文件问题
  • (八)Flink Join 连接
  • (笔记自用)LeetCode:快乐数
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)大型网站的系统架构
  • (转)四层和七层负载均衡的区别
  • **python多态
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core 中插件式开发实现
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • ?php echo ?,?php echo Hello world!;?
  • @PreAuthorize注解
  • [ C++ ] STL---string类的模拟实现
  • [Angular 基础] - 表单:响应式表单