element plus tabel 全选 保持数据

 

 

<div class="allcheckbox">

            <el-checkbox
              label="全选"
              name="type"
              @change="getSelectAll"
              v-model="selectAll"
            />

</div>
 tabelAllTabel: [],
 selectAll = false
     <el-table
            :data="data.setatellite"
            height="320"
            class="orb-form"
            size="small"
            :row-class-name="tableRowClassName"
            @selection-change="getFacTable"
            ref="TabeleRef"
            :row-key="getRowKeys"
            @select="handGetTabel"
          >
            <el-table-column
              type="selection"
              width="50"
              :reserve-selection="true"
            />
     </el-table>

1 方法   reserve-selection  可以保存数据更新前选中的值,这个属性还需要指定row-key.

2  方法 row-key    这里的row-key设置的是id,如果重新请求中包含相同的id的数据时候会默认选中

 

// 全选
const getSelectAll = (val) => {
  //判断是否选中
  if (val) {
   //这里data.setatellite  是表格的data  利用toggleRowSelection
   //用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 
   //  为 true 则选中)
    data.setatellite.forEach((row) => {
      TabeleRef.value.toggleRowSelection(row, true);
    });
     

    //赋值给准备全选全部的一个数组
    data.tabelAllTabel = JSON.parse(JSON.stringify(data.setatellite));
  } else {
    //如果全选状态为false 清空
    TabeleRef.value.clearSelection();
    data.tabelAllTabel = [];
  }
};
   //给唯一的id
const getRowKeys = (row) => {
  return row.id;
};
//手动表格勾选按钮
const handGetTabel = (selection, row) => {
  const selected = selection.length && selection.indexOf(row) !== -1;
  //判断手动勾选的里面有这个id 
  if (!selected) {
    const res = data.tabelAllTabel.findIndex((item) => item.id === row.id);
    data.tabelAllTabel.splice(res, 1);
  } else {
    data.tabelAllTabel.push(row);
  }
  console.log(data.tabelAllTabel, "data.tabelAllTabel");
};

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值