Element table 分页多选-取消保存

首先在el-table绑定方法myselect:

            <el-table
              v-loading="tableLoading"
              ref="multipleTable"
              :data="tableData"
              header-cell-class-name="custom-table"
              @select="mySelect"
              @selection-change="handleSelectionChange">
              <el-table-column
                type="selection"
                width="30"
                align="center"
                fixed
              />
              <el-table-column
                type="index"
                prop="id"
                label="序号"
                width="50"
                align="center"/>
              <el-table-column
                prop="name"
                label="别名"
                width="150"
                show-overflow-tooltip
                align="center"/>
           </el-table>

在methods里面定义方法:

    mySelect(selection, row) {
      // selection 当前页面所有选中的项
      // row 当前点击操作的项
      if (selection.indexOf(row) >= 0) { // 新增(勾选上)
        selection.map(el => {
          if (this.allSelects.indexOf(el.id) === -1) {
          // 新添加(allSelects是后端返回已经被选择的id数组)
            this.allSelects.push(el.id)
          }
        })
        console.log('所有选中的', this.allSelects)
      } else { // 取消勾选
        this.allSelects.map((el2, index) => {
          if (el2 === row.id) {
            this.allSelects.splice(index, 1)
          }
        })
        console.log('删除后的数组', this.allSelects)
      }
    },

然后在获取分页数据时,勾选已经选中的项(this.tableData是分页数据列表)

    checkedSelected() {
      this.$nextTick(() => {
        this.tableData.forEach(row => {
          if (this.allSelects.indexOf(row.id) >= 0) {
            this.$refs.multipleTable.toggleRowSelection(row, true)
          }
        })
      })
    },

最后保存时把this.allSelects的值传给后端就OK了,有不合理的地方欢迎大家指出

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值