Vue el-table表格第一列序号与复选框hover切换方式
更新时间:2024年07月24日 10:37:08 作者:李泽举
这篇文章主要介绍了Vue el-table表格第一列序号与复选框hover切换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
前言
项目中用vue element el-table
表格的第一列为鼠标经过时切换显示序号与复选框
不影响当前行的点击事件 , 如跳转详情等操作
老规矩,先上效果图
HTML
<el-table ref="table" :data="tableData" style="width: 100%" border stripe @cell-mouse-enter="cellEnter" @cell-mouse-leave="cellLeave" @selection-change="handleSelectionChange" @row-click="toDeatils" > <el-table-column type="selection" width="50" align="left"> <template #default="{ row, $index }"> <div v-if="columnCheckedId == row.id || checkedList[$index]" @click.stop > <el-checkbox v-model="checkedList[$index]" @change="cellCheckbox(row, $index)" ></el-checkbox> </div> <span v-else>{{ $index + 1 }}</span> </template> </el-table-column> <!-- 如有操作列 ↓--> </el-table>
JS
data() { return { columnCheckedId: '', tableData: [], //table数据 multipleSelection: [], //table多选数据 checkedList: [], //table多选选中数据 } }, methods:{ handleSelectionChange(val) { this.multipleSelection = val if (this.multipleSelection.length == this.tableData.length) { this.multipleSelection.forEach((item, index) => { this.checkedList[index] = true }) } if (this.multipleSelection.length == 0) { this.checkedList = [] } this.$emit('selectList', this.multipleSelection) }, //鼠标移入表格当前行 cellEnter(row, column, cell, event) { this.columnCheckedId = row.id }, // 鼠标移出表格当前行 cellLeave(row, column, cell, event) { this.columnCheckedId = '' }, // 选中与否塞数据 cellCheckbox(row, index) { if (this.checkedList[index]) { this.$refs.table.toggleRowSelection(row, true) } else { this.$refs.table.toggleRowSelection(row, false) } }, }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
基于Vue + Axios实现全局Loading自动显示关闭效果
在vue项目中,我们通常会使用Axios来与后台进行数据交互,而当我们发起请求时,常常需要在页面上显示一个加载框(Loading),然后等数据返回后自动将其隐藏,本文介绍了基于Vue + Axios实现全局Loading自动显示关闭效果,需要的朋友可以参考下2024-03-03vue3.0运行npm run dev报错Cannot find module&
本文主要介绍了vue3.0运行npm run dev报错Cannot find module node:url,因为使用的node版本是14.15.1低于15.0.0导致,具有一定的参考价值,感兴趣的可以了解一下2023-10-10
最新评论