使用vue的element做一个表格,用键盘方向键可以选中行
时间: 2024-02-14 12:13:09 浏览: 81
详解vue-cli+element-ui树形表格(多级表格折腾小计)
好的,您可以参考下面的代码实现:
```html
<template>
<el-table
:data="tableData"
ref="table"
@keydown.up.native.prevent="handleUp"
@keydown.down.native.prevent="handleDown"
>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, address: '北京市' },
{ name: '李四', age: 22, address: '上海市' },
{ name: '王五', age: 30, address: '广州市' },
{ name: '赵六', age: 25, address: '深圳市' }
],
currentRow: null
}
},
methods: {
handleUp() {
const table = this.$refs.table
const currentIndex = table.store.states.currentRow
? table.store.states.currentRow.index
: -1
const newIndex = currentIndex === 0 ? this.tableData.length - 1 : currentIndex - 1
table.setCurrentRow(this.tableData[newIndex])
},
handleDown() {
const table = this.$refs.table
const currentIndex = table.store.states.currentRow
? table.store.states.currentRow.index
: -1
const newIndex = currentIndex === this.tableData.length - 1 ? 0 : currentIndex + 1
table.setCurrentRow(this.tableData[newIndex])
}
}
}
</script>
```
在上面的代码中,我们通过监听 `keydown.up` 和 `keydown.down` 事件来实现按方向键选中表格行。在 `handleUp` 和 `handleDown` 方法中,我们通过 `table.setCurrentRow` 方法来设置当前选中的行,从而实现按方向键选中行的功能。
阅读全文