实现element-ui中table点击一行展开

在运用element-ui的表格展开行组件时,默认的是点击左边的小箭头才能展开,但是实际的需求却是点击一整行展开,实现方法如下:

<el-table
                        :data="entdatas"
                        style="width: 100%" row-key="id" :expand-row-keys="entexpands" @row-click="rowExpand">
                  <el-table-column type="expand">
                    <template scope="props">
                      <el-form label-position="left" inline class="demo-table-expand">
                        <el-form-item label="名称:">
                          <span style="cursor:pointer;color:#4AA6FF;" @click="_goEntDetail(props.row.ENTNAME)">{{props.row.ENTNAME}}</span>
                        </el-form-item>
                        <el-form-item label="类型:">
                          <span>{{props.row.ENTTYPE}}</span>
                        </el-form-item>
                        <el-form-item label="状态:">
                          <span>{{props.row.ENTSTATUS}}</span>
                        </el-form-item>
                        <el-form-item label="日期:">
                          <span>{{props.row.ESDATE}}</span>
                        </el-form-item>
                      </el-form>
                    </template>
                  </el-table-column>
                  <el-table-column
                          label="名称"
                          prop="ENTNAME">
                  </el-table-column>
                  <el-table-column
                          label="状态"
                          prop="ENTSTATUS">
                  </el-table-column>
                  <el-table-column
                          label="日期"
                          prop="ESDATE">
                  </el-table-column>
                </el-table>

export default {
  data() {
       return {
           entdatas:[],  
           entexpands: []
       }
 },
rowExpand(row, event, column) {
     Array.prototype.remove = function (val) {
         let index = this.indexOf(val);
         if (index > -1) {
             this.splice(index, 1);
         }
     };
     if (this.entexpands.indexOf(row.id) < 0) {
         this.entexpands= [];
         row.id = this.generateUUID();
         this.entexpands.push(row.id);
     } else {
         this.entexpands.remove(row.id);
     }
 },
 其中我们是把行id作为唯一标识,但是有时候我们的数据中并没有唯一标识,所以可以采用以下方法生成唯一标识:
 generateUUID() {
   var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
},
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值