element 表格分页 限制多选条数

效果图:

官方方法解释:

row-key

行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function
selection-change当选择项发生变化时会触发该事件
selectable仅对 type=selection 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选
reserve-selection仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key
  

案例:

<template>
  <div>
    <el-table
        ref="multipleTable"
        :data="tableData"
        tooltip-effect="dark"
        style="width: 100%"
        @selection-change="handleSelectionChange">
      <el-table-column
          align="center"
          type="selection"
          :selectable="selectable"
          :reserve-selection="true"
          width="55">
      </el-table-column>
      <el-table-column min-width="200" prop="id" label="商品信息"></el-table-column>
    </el-table>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [
          {id: 1},
          {id: 2},
          {id: 3},
          {id: 4},
          {id: 5},
          {id: 6},
          {id: 7},
          {id: 8},
          {id: 9},
        ],
        multipleSelectionList: [],
        limitNum: 2, //限制数量
      }
    },
    methods: {
      // 限制数量方法
      limitFn (list) {
        this.$refs.multipleTable.clearSelection();
        for (let i = 0; i < this.limitNum; i++) {
          this.$refs.multipleTable.toggleRowSelection(list[i]);
        }
      },
      // 判断复选框是否可以选择
      selectable (row) {
        let index = this.multipleSelectionList.findIndex(v => v.id === row.id)
        if (this.multipleSelectionList.length >= this.limitNum) {
          if (index !== -1) {
            return true
          } else {
            return false
          }
        } else {
          return true
        }
      },
      // 绑定表格key,用于翻页后也不会丢失表格状态
      getRowKey (row) {
        return row.id
      },
      // 回调表格选择的数据
      handleSelectionChange (list) {
        if (list.length > this.limitNum) {
          this.limitFn(list)
          return
        }
        this.multipleSelectionList = [...list];
      },
    }
  }
</script>

limitNum 就是需要限制的数量

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值