element-UI中table表格的@row-click事件和@selection-change耦合了

<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @row-click="openDetails" @selection-change="handleSelectionChange">
    <el-table-column type="selection" width="38"></el-table-column>
    <el-table-column label="订单编号" width="170" fixed>
      <template scope="scope">{{ scope.row.orderNo }}</template>
    </el-table-column>
    <el-table-column prop="payNo" label="支付单号" width="170"></el-table-column>
    <el-table-column prop="wName" label="商户公众号名称" width="130"></el-table-column>
    <el-table-column prop="wID" label="商户公众号ID" width="120"></el-table-column>
    <el-table-column prop="payer" label="支付人" width="120"></el-table-column>
    <el-table-column prop="payment" label="支付方式" width="100"></el-table-column>
    <el-table-column prop="business" label="所属业务" width="100" show-overflow-tooltip></el-table-column>
    <el-table-column prop="amount" label="支付金额" width="120" class-name="sum-color"></el-table-column>
    <el-table-column prop="fee" label="手续费" width="120" class-name="sum-color"></el-table-column>
    <el-table-column prop="refund" label="退款金额" width="120" class-name="sum-color"></el-table-column>
    <el-table-column prop="actual" label="实际金额" width="120" class-name="sum-color"></el-table-column>
    <el-table-column prop="status" label="到账状态" width="100"></el-table-column>
    <el-table-column prop="payDate" label="支付时间" width="150"></el-table-column>
    <el-table-column prop="arrivalDate" label="到账时间" width="150"></el-table-column>
</el-table>

注意@row-click@selection-change

export default {
    data () {
        return {
            tableData: [
                {
                  id: 123,
                  orderNo: '6881234567890123456',
                  payNo: '2331234567890123456',
                  wName: 'xxx公众号',
                  wID: 'zjfiawsf',
                  payer: '张三张四张五',
                  payment: '微信支付',
                  business: '微餐饮',
                  amount: '14614.00',   // 支付金额
                  fee: '322.00',        // 手续费
                  refund: '322.00',     // 退款金额
                  actual: '322.00',     // 实际金额
                  status: '已到账',    // 到账状态
                  payDate: '2017-9-27 10:31:37',        // 支付时间
                  arrivalDate: '2017-9-27 10:31:44',        // 到账日期
                }
            ],
            multipleSelection: [],
        }
    },
    watch: {
        multipleSelection: function () {
            let arr = [];
            for (let i in this.multipleSelection) {
              arr.push(this.multipleSelection[i].id);
            }
            console.log('勾中的id为:' + arr.join());
        }
    },
    methods: {
        //打开详情页弹窗
        openDetails(row) {
            alert(row.id);
        },
        // 获取多选参数
        handleSelectionChange(val) {
            this.multipleSelection = val;
        },
    }
}

checkbox勾选的时候,alert会被触发两次。我猜测是@row-click@selection-change耦合了,但是element-UI的文档很简洁,不知道@row-click@selection-change怎么解耦。
正常效果应该是点击一行数据alert出数据的id,点击checkbox把id存起来。

解决方法:

openDetails(row,event,column) {
    if(event.target.nodeName!="INPUT"){
          alert(row.id);
        }     
     }

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
element-ui是一套基于Vue.js的UI框架,其table表格组件提供了许多强大的功能和骚操作。 首先,element-uitable表格支持对数据进行排序操作。只需设置column的sortable属性为true,即可实现对某一列数据的升降序排列,方便用户快速找到所需的信息。 其次,table表格还支持对数据进行筛选操作。通过设置filters属性,可以在表头显示可选的筛选项,用户可以选择自己需要的筛选条件,从而快速过滤数据,提高表格的可读性和实用性。 此外,element-uitable表格还支持分页功能。通过设置pagination属性,可以实现表格数据的分页展示,方便用户浏览大量数据,同时也可以通过自定义分页器的样式和布局,满足不同项目的需求。 另外,table表格还提供了自定义列模板的功能。通过设置scoped slot,可以自定义表格每一列的展示方式,包括渲染不同的DOM元素、添加操作按钮等,非常灵活。 此外,element-uitable表格还提供了可编辑的功能。通过设置column的editable属性为true,可以实现编辑表格数据的功能,用户可以直接在表格进行数据的修改,提高数据的编辑效率。 最后,element-uitable表格还支持表格数据的导出和导入。通过设置导出按钮和导入事件,可以方便地将表格数据导出为Excel或导入Excel数据到表格,提高了数据的共享和交互性。 综上所述,element-ui关于table表格的这些骚操作,使得我们可以更方便地对表格数据进行排序、筛选、分页、自定义列模板、编辑、导出和导入等操作,提高了表格的可读性、编辑效率和交互性,满足了不同项目的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值