el-table手动操作行间上下排序
时间: 2023-07-01 15:08:07 浏览: 134
你可以通过以下步骤手动操作行间上下排序:
1. 首先在 el-table 的配置项中设置 :row-key 属性,这个属性的值需要是每一行数据中的唯一标识符。
2. 在 el-table-column 中添加一个操作列,通过该列的按钮来手动控制行间的上下排序。
3. 在该操作列中,添加两个按钮,分别表示上移和下移操作。
4. 给每一个按钮绑定一个点击事件,当用户点击按钮时,获取该行数据的索引值,并将其与上一行或下一行数据进行交换。
示例代码如下:
```
<el-table :data="tableData" :row-key="row => row.id">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button v-if="scope.$index > 0" @click="moveUp(scope.$index)">上移</el-button>
<el-button v-if="scope.$index < tableData.length - 1" @click="moveDown(scope.$index)">下移</el-button>
</template>
</el-table-column>
</el-table>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: '张三', age: 18 },
{ id: 2, name: '李四', age: 20 },
{ id: 3, name: '王五', age: 22 }
]
}
},
methods: {
moveUp(index) {
const temp = this.tableData[index]
this.tableData.splice(index, 1)
this.tableData.splice(index - 1, 0, temp)
},
moveDown(index) {
const temp = this.tableData[index]
this.tableData.splice(index, 1)
this.tableData.splice(index + 1, 0, temp)
}
}
}
</script>
```
在上面的代码中,我们通过 el-table-column 添加了一个操作列,其中包含了上移和下移两个按钮。在点击这两个按钮时,我们调用了 moveUp 和 moveDown 方法来交换行数据的位置。这里使用了 splice 方法来实现交换,splice 方法可以删除数组中的某一项,并在指定位置插入一项新的数据。
阅读全文