el-table 合计放入首行和固定列以及表格拖动 都会产生错行的问题

这里就不写合计的方式了

首先将合计列放入首行

 mounted () {
    this.showSummariesPosition()
  },  
 destroyed () {
    //进行销毁
    this.showSummariesPosition()
  },
  methods: {
    showSummariesPosition () {
      const table = document.querySelector('.table-self') // customTable这个是在el-    table定义的类名
      const footer = document.querySelector('.table-self .el-table__footer-wrapper')
      const body = document.querySelector('.table-self .el-table__body-wrapper')
      table.removeChild(footer) // 移除表格最下方的合计行
      table.insertBefore(footer, body) // 把合计行插入到表格body的上面
      this.$nextTick(() => {
        //固定列的也进行一下位置调换
        const left = document.querySelector('.el-table__fixed')
        const leftfooter = document.querySelector('.el-table__fixed .el-table__fixed-footer-wrapper')
        const leftbody = document.querySelector('.el-table__fixed .el-table__fixed-body-wrapper')
        leftbody.style.top = '0px'
        console.log(leftbody);
        left.removeChild(leftfooter) // 移除表格最下方的合计行
        left.insertBefore(leftfooter, leftbody) // 把合计行插入到表格body的上面
      })
}
}

此时看着还有点覆盖问题 加入样式

.el-table__footer-wrapper {
  position: sticky;
  bottom: 0;
  z-index: 1; /* 可选,确保合计行在表格中的最上层 */
}

那么此时就放入第一行了

那么此时添加表格列宽拖动事件

//table添加拖动事件
<el-talbe @header-dragend="handleDragend"> </el-table>  


handleDragend (newWidth, oldWidth, column, event) {
      this.$nextTick(() => {
        this.$refs.table.doLayout()
      })

    },

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 你可以通过 `el-table-column` 的 `label` 属性配置表头的内容,然后在对应的上绑定 `header-click` 事件。例如: ```html <el-table :data="tableData"> <el-table-column label="姓名" prop="name" header-click="handleHeaderClick"></el-table-column> <el-table-column label="年龄" prop="age"></el-table-column> <el-table-column label="地址" prop="address"></el-table-column> </el-table> ``` 在上面的代码中,我们在第一的 `el-table-column` 上绑定了 `header-click` 事件,并将处理函数设置为 `handleHeaderClick`。接下来在 Vue 实例中定义这个方法: ```js methods: { handleHeaderClick(column, event) { console.log('点击了表头', column.label, event) } } ``` 在方法中,`column` 参数表示当前点击的的配置对象,`event` 参数表示原生的 `click` 事件对象。你可以在方法中编写处理表头点击事件的逻辑,例如向后端发送请求重新排序数据等。 ### 回答2: 在使用 Element UI 的 el-table 组件时,如果想要为表头添加点击事件,可以使用表头插槽和自定义方法来实现。 首先,在 el-table 中添加 scoped-slot 来定义表头的内容,例如: ```html <el-table> <template v-slot:header="{ column }"> <th @click="handleHeaderClick(column)"> {{ column.label }} </th> </template> <!-- 表格内容 --> </el-table> ``` 在这个示例中,我们使用 `v-slot:header="{ column }"` 来获取每个表头的信息,并在 th 标签上绑定了点击事件 `@click` 来调用 `handleHeaderClick` 方法。 然后,在 Vue 实例中定义 `handleHeaderClick` 方法来处理点击事件,例如: ```javascript methods: { handleHeaderClick(column) { console.log('表头点击事件', column); // 执行其他逻辑操作 } } ``` 在这个方法中,我们可以对点击事件进行一些处理逻辑,例如打印表头的信息(column)或执行其他操作。 这样,当我们点击表头时,就触发 `handleHeaderClick` 方法,并可以在控制台中看到输出的信息。 通过以上方法,我们可以为 el-table 的表头添加点击事件,并能够自定义处理逻辑。 ### 回答3: el-tableElement组件库中的表格组件,可以用于展示大量的数据。如果需要给el-table的表头添加点击事件,可以通过以下几个步骤实现: 1. 首先,在el-table的<el-table-column>标签中添加slot="header"属性,用于设置表头的自定义内容。例如: ``` <el-table> <el-table-column prop="name"> <template slot="header" slot-scope="scope"> <div @click="headerClickHandler">姓名</div> </template> </el-table-column> </el-table> ``` 在上述代码中,表头的内容被放置在了一个<div>标签中,并绑定了@click事件。 2. 在Vue实例中定义headerClickHandler方法,用于处理点击事件的逻辑。例如: ``` methods: { headerClickHandler() { // 点击事件的处理逻辑 console.log("表头被点击了"); } } ``` 在上述代码中,headerClickHandler方法在表头被点击时触发。 通过以上步骤,便可以实现el-table表头的点击事件。当表头被点击时,headerClickHandler方法被调用,并执行相应的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值