vue element <el-table> 实现分页多选

文章介绍了如何在Vue项目中使用ElementUI构建一个带有分页和多选功能的数据表格,包括表格列选择、弹窗操作和数据提交接口的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据需确保弹窗已打开

<el-table
      stripe border
      ref="multipleTable"
      :data="setList" //表格数据
      tooltip-effect="dark"
      style="width: 100%"
      :row-key="getRowKeys"
      @selection-change="handleSelectionChange">
>
<el-table-column
	  type="selection"
	  :reserve-selection="true" //为true时可以夸分页多选
	  width="55">
</el-table-column>
</el-table>
<pagination //分页组件
     :total="total"
     :page.sync="listQuery.page"
     :limit.sync="listQuery.limit"
      @pagination="getlistSet"
/>


methods: {
    getRowKeys(row) { 
      return row.id
    },
    handleDialogClose() { //设置弹窗关闭事件
      this.$refs.multipleTable.clearSelection(); //关闭弹窗时清空选表所选项
    },
    handleSelectionChange(val) { //获取所选数据
      this.foodList = val
    },
    submitSet() {
      let newArr = []
      for (let i = 0; i < this.foodList.length; i++) {
        newArr.push(this.foodList[i].id)
      }
      newArr = [...new Set(newArr)]
      let resultString = newArr.join(','); //用逗号拼接所选数据id
      let obj = {
        week_id: this.weekId,
        food_id: resultString,
        type: 1
      }
      if (obj.food_id == '') {
        this.$message({
          message: "请选择",
          type: "error",
        });
        return
      }
     //调保存接口。。。。。
    },
    getlistSet() { //获取数据
      this.listLoading = true;
      getFood(this.listQuery).then((res) => {
        this.listLoading = false;
        if (res.errcode != 0) return;
        this.setList = res.data.list;//表格数据
        res.data.list.forEach((row) => {
          if (row.is_choose == 1) {//已选中项回显
            this.$refs.multipleTable.toggleRowSelection(row)
          }
        })
      });
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值