成果

最开始时点行就能够开展(row-click),后果甲方说不喜爱点行非要点箭头,我真是醉了!白瞎了用户体验,放着那么宽的行不点非要点击箭头那几个像素。

参考:
https://blog.csdn.net/weixin_...

应用办法:

@expand-change="open" //办法名随便取

全副代码HelloWorld.vue

 <template>  <div>    <el-table      :data="tableData"      :row-key="getRowKeys"      :expand-row-keys="expands"      @expand-change="open"      style="width: 100%"      border    >      <el-table-column type="expand">        <template> <SubPage :subData="message" /> </template>      </el-table-column>      <el-table-column prop="date" label="日期"> </el-table-column>      <el-table-column prop="name" label="姓名"> </el-table-column>      <el-table-column prop="address" label="地址"> </el-table-column>    </el-table>  </div></template><script>import SubPage from './SubPage.vue'export default {  name: "test",  components: {    SubPage  },  data() {    return {      // 要开展的行,数值的元素是row的key值      expands: [],      getRowKeys(row) {        return row.id;      },      message: "",      tableData: [{        id: 0,        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄',        phone: "11111",      }, {        id: 1,        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄',        phone: "11111",      }, {        id: 2,        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄',        phone: "11111",      }, {        id: 3,        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄',        phone: "11111",      }]    }  },  methods: {    open(row) {      console.log(row.id);      if (this.expands.includes(row.id)) {        this.expands = this.expands.filter(val => val !== row.id);      } else {        if (this.expands.length != 0) {          this.expands.splice(0, this.expands.length);          this.expands.push(row.id);        } else {          this.expands.push(row.id);        }      }      this.message = "子组件数据" + row.id    }  }}</script>

子页面SubPage.vue
数据传子组件就不必多说了

<template>  <div>{{ message }}</div></template><script>export default {  name: "test3",  props: {    subData: String,  },  data() {    return {      message: this.subData    }  }}</script>