【vue+element-ui】前端实现表格checkbox单选

【vue+element-ui】前端实现表格checkbox单选


需求:每次只能选中一条数据进行操作,如果同时选中多条,需弹出提示:请选择一条数据
那我就直接让它只能选中一条,不允许多选,上代码:
--------分割线---------
el-table组件中

<el-table  ref="multipleTable"  :data="tableData"  @select="select"  @select-all="selectAll">

写在methods中

   select(selection, row) {
      this.tableData.id = row.id
      this.$refs.multipleTable.clearSelection();
      if (selection.length == 0) return;
      this.$refs.multipleTable.toggleRowSelection(row, true);
    }

禁止全选

    selectAll() {
      this.$refs.multipleTable.clearSelection();
    },

-------------------手动分割线-------------------------------------------------------------------------------------------------------
测试出bug:选择一项后,再选择一项时,提示没有只选择一条数据
console.log两次选择的selection.length,发现上一次点击的数据并没有被消除,改进如下:

<el-table  ref="multipleTable"  :data="tableData"  @selection-change="handleSelectionChange" @select-all="selectAll">
handleSelectionChange(val) {
      if (val.length === 0) {
        return
      } else if (val.length > 1) {
        this.$refs.multipleTable.cleanSelected();
        this.$refs.multipleTable.rowSelection(val[val.length - 1], true);
        this.selectArr = []
        this.selectArr.push(val[val.length - 1])
      } else {
        this.selectArr = val
      }
    },

当val.length为0 时,也就是没有选择数据,return
当val.length大于1时,也就是选择了多于1条数据,清除内容,将最近一条数据的值赋给selectArr,作为弹框的默认值
当val.length等于1时,也就是只选择1条数据,将val赋值给selectArr,作为弹框的默认值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值