如何使 table 行可点击并展开该行 - vue.js - element-ui

How to make a table row clickable and expand the row - vue.js - element-ui

我正在使用具有可扩展行功能的 table。单击展开图标时该行展开,您可以查看示例HERE。但是,我想要做的是,整行 可点击和切换展开和折叠行就像点击展开图标时一样。

请帮忙。

这是我的标记:

<template lang="pug">
  el-table(:data="tableData")
    el-table-column(label="Employee Name", prop="userName")
    el-table-column(label="Company Name", prop="companyName")
    el-table-column(type="expand", align="right" )
      template(slot-scope="props")
        p User Name: {{ props.row.userName }}
        p Company Name: {{ props.row.companyName }}
</template>

好的,我找到了解决方案并回答了我自己的问题:)

标记:

<template lang="pug">
  el-table(:data="tableData", @row-click="rowClicked", ref="tableData").clickable-rows
    el-table-column(label="Employee Name", prop="userName")
    el-table-column(label="Company Name", prop="companyName")
    el-table-column(type="expand", align="right" )
      template(slot-scope="props")
        p User Name: {{ props.row.userName }}
        p Company Name: {{ props.row.companyName }}
</template>

脚本:

<script>
  export default {
    methods: {
      rowClicked(row) {
        this.$refs.tableData.toggleRowExpansion(row);
      }
    }
  }
</script>

样式 - scss

// click-able rows
.clickable-rows {
  tbody tr td {
    cursor: pointer;
  }

  .el-table__expanded-cell {
    cursor: default;
  }
}

我认为有更好的方法 我们在 el-table 中有 row-key,并且展开-row-keys 因此,每次单击时,您都可以更改当前展开的行,甚至可以创建“expan-one-at-a-time”的行为 比如::expand-row-keys="[currentExpandedRow]"