Vue + element-ui table fixed列不对齐问题

Vue + element-ui table fixed列不对齐问题

table中的columns fixed列 不会随table对应的行高度变化而变化,导致不对齐;请问有没有什么解决方法,亲测do-layout()方法无效;
例子:某列数据为中文,点击后输入框输入,高度会有变化,但fixed列的对应高度不会有变化;

1 使用table的highlight-current-row属性
这会使当前行高亮,并会触发重新计算表格高度,fixed列高度会变化。
可以在点击行后设置当前行为高亮行,实现fixed列高度同步更新。

2 监听table的height变化,手动同步fixed列高度
在table外层使用一个height监听器,当height变化时,获取fixed列元素并更新其高度。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7600988
  • 你也可以参考下这篇文章:vue3 elementplus table表格高度自适应
  • 除此之外, 这篇博客: Vue + Element-ui 实现table表格 数据相同项合并中的 Vue + Element-ui 实现table表格 数据相同项合并 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象

      data() {
        return {
          tableArr: [],  //定义空数组,作为临时存储每一行已处理的数据
          pos:0, //
          }
        }
    
     :span-method="SpanMethod" //Element-ui  table表格的属性 ,例: <el-table :span-method="SpanMethod" ></el-table>
    
    //获取数据,并对数据进行处理
     for (var i = 0; i < data.length; i++) {
            if (i === 0) {
              this.tableArr.push(1);
              this.pos = 0;
            } else {
              // 判断当前元素与上一个元素是否相同
              if (data[i].DEPT_NAME === data[i - 1].DEPT_NAME) {
              
                this.tableArr[this.pos] += 1;
                //判断当前行与上一行内容相同时 返回0 ,0 意味消除 , 即不显示	
                this.tableArr.push(0);
              } else {
                this.tableArr.push(1);
                this.pos = i;
              }
            }
          }
    

    实现合并相同项,

       objectSpanMethod({ row, column, rowIndex, columnIndex }) {
          if (columnIndex === 0) { //第一列
            const _row = this.tableArr[rowIndex];
            const _col = _row > 0 ? 1 : 0;
            // console.log(`rowspan:${_row} colspan:${_col}`);
            return {
              // [0,0] 表示这一行不显示, [2,1]表示行的合并数
              rowspan: _row,
              colspan: _col,
            };
          }
        },