elementui表格多选实现单选的效果

  • ts写法
  • 着重点
// 全选
on-select-all={this.onSelectAll}
// 选择多选触发
on-selection-change={this.selectItem}
// 模板,页面显示多选框
<el-table-column type="selection" reserve-selection={false} />
ref="multipleTable"
  • 解释
  // 清空所有选中
  onSelectAll(): void {
    const self: any = this;
    self.$refs.multipleTable.clearSelection();
  }

  // 反选。只保留一个选中
  selectItem(rows: any): void {
    const self: any = this;
    if (rows.length > 1) {
      const newRows = rows.filter((it: any, index: number) => {
        if (index == rows.length - 1) {
          self.$refs.multipleTable.toggleRowSelection(it, true);
          return true;
        }
        self.$refs.multipleTable.toggleRowSelection(it, false);
        return false;
      });
      this.selectlist = newRows;
    } else {
      this.selectlist = rows;
    }
  }
  • 完整代码
<el-card shadow="hover">
  <el-table
    height="400"
    data={this.tableData}
    ref="multipleTable"
    style="width: 100%"
    on-select-all={this.onSelectAll}
    on-selection-change={this.selectItem}
  >
    <el-table-column type="selection" reserve-selection={false} />
    <el-table-column
      prop="creater"
      label="创建人"
      width="100px"
    />
    <el-table-column
      label="详情"
      {...{
        scopedSlots: {
          default: (sdata: any): any => {
            return (
              <el-button
                type="primary"
                size="mini"
                on-click={this.queryDesc.bind(this, sdata.row)}
              >
                查 看
              </el-button>
            );
          }
        }
      }}
    />
  </el-table>
</el-card>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值