Element Plus el-table 多级表头固定列问题

829 阅读1分钟

问题场景

1666249319155.jpg 如图 我想固定姓名这一列的数据

<el-table-column label="考核项目" width="80" align="center" fixed>
    <el-table-column label="姓名" width="80" prop="studentName">
      <template #default>888</template>
    </el-table-column>
</el-table-column>

属性设置fixed后 出现如下场景

1666249435967.jpg

只有考核项目固定显示了 姓名的数据没有固定显示

我在网上找了相关解决方法 但是都是只针对Element Ui 有效 在Element Plus中无效

解决思路

首先打开控制台 看看固定那一项的样式

1666249714815.jpg 固定的哪一项 多了两个类 el-table-fixed-column--left is-last-column

解决方法

// 先找到需要固定的元素
let domArr = document.querySelectorAll('body tr > td.el-table__cell:first-child, thead tr > th.el-table__cell:first-child')
// 遍历domArr对象 并为每个元素添加这两个类
// 并且添加样式 left 我是首列需要固定 所以设置0px 如果第二列也需要固定列 那么它的left值为第一列的宽度
for(let i = 0;i < domArr.length;i++){
    domArr[i].classList.add('el-table-fixed-column--left','is-last-column')
    domArr[i].style.left = '0px'
}

设置后的样式如下

1666250462351.jpg