• 首页
  • 栏目
  • CRM
  • element踩坑记录之 element table 获取所点击行数据

element踩坑记录之 element table 获取所点击行数据

  • 2021-11-02
  • Admin

在做项目时自定义一个element table,想要获取点击行的数据传给别的页面,一开始百度到一个笨方法,在标签上添加一个@row-click方法来获取点击行数据,但是会覆盖你这一行别的按钮事件,查看文档发现更简单的方法。

实现方法为:通过 Scoped slot 可以获取到 row, column, $index 和 store(table 内部的状态管理)的数据

例子:

  1. <template>
  2. <el-table
  3. :data="tableData"
  4. style="width: 100%">
  5. <el-table-column
  6. label="日期"
  7. width="180">
  8. <template slot-scope="scope">
  9. <i class="el-icon-time">i>
  10. <span style="margin-left: 10px">{{ scope.row.date }}span>
  11. template>
  12. el-table-column>
  13. <el-table-column
  14. label="姓名"
  15. width="180">
  16. <template slot-scope="scope">
  17. <el-popover trigger="hover" placement="top">
  18. <p>姓名: {{ scope.row.name }}p>
  19. <p>住址: {{ scope.row.address }}p>
  20. <div slot="reference" class="name-wrapper">
  21. <el-tag size="medium">{{ scope.row.name }}el-tag>
  22. div>
  23. el-popover>
  24. template>
  25. el-table-column>
  26. <el-table-column label="操作">
  27. <template slot-scope="scope">
  28. <el-button
  29. size="mini"
  30. @click="handleEdit(scope.$index, scope.row)">编辑el-button>
  31. <el-button
  32. size="mini"
  33. type="danger"
  34. @click="handleDelete(scope.$index, scope.row)">删除el-button>
  35. template>
  36. el-table-column>
  37. el-table>
  38. template>
  39. <script>
  40. export default {
  41. data() {
  42. return {
  43. tableData: [{
  44. date: '2016-05-02',
  45. name: '王小虎',
  46. address: '上海市普陀区金沙江路 1518 弄'
  47. }, {
  48. date: '2016-05-04',
  49. name: '王小虎',
  50. address: '上海市普陀区金沙江路 1517 弄'
  51. }, {
  52. date: '2016-05-01',
  53. name: '王小虎',
  54. address: '上海市普陀区金沙江路 1519 弄'
  55. }, {
  56. date: '2016-05-03',
  57. name: '王小虎',
  58. address: '上海市普陀区金沙江路 1516 弄'
  59. }]
  60. }
  61. },
  62. methods: {
  63. handleEdit(index, row) {
  64. console.log(index, row);
  65. },
  66. handleDelete(index, row) {
  67. console.log(index, row);
  68. }
  69. }
  70. }
  71. script>

注意需要在标签外边包裹一个