el-table按钮获取当前行元素
vue2
html
<el-table-column label="操作" width="240px">
<template slot-scope="scope">
<el-button size="mini" @click="toItem(scope.row)">用户详情</el-button>
<el-button size="mini" @click="toUpdate(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
el-table-column标签内部使用了 Vue 的插槽功能(slot),具体来说是使用了作用域插槽(scoped slot),通过 slot-scope="scope" 来声明作用域,然后在插槽内容中可以使用 scope 对象来获取当前行的数据对象。
vue3
html
<template>
<div>
<el-table :data="tableData" style="border-radius: 5px;" :header-cell-style="{ 'text-align': 'center' }"
:cell-style="{ 'text-align': 'center' }">
<el-table-column prop="date" label="Date" width="120" />
<el-table-column prop="name" label="Name" width="120" />
<el-table-column prop="address" label="Address" />
<el-table-column label="操作" width="200px">
<template #default="{ row }">
<el-button type="danger" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import { ref } from 'vue'
const tableData = ref([])
const handleDelete = (row) => {
console.log(row)
}
</script>
该组件中通过 Vue 的插槽功能和事件处理函数来获取和处理表格中每一行的数据对象。当用户点击编辑或删除按钮时,会触发相应的事件处理函数,并且可以在函数内部获取到相应行的数据对象进行进一步的处理。