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

数据需确保弹窗已打开

<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)
          }
        })
      });
    },
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<el-table ref="singleTable" :data="configs" border class="wraper-table" element-loading-text="Loading" fit highlight-current-row size="mini" style="margin: 0px 0 20px 0"> <el-table-column :label="$t('table.select')" width="50" align="center"> <template slot-scope="scope"> <el-radio v-model="radio" :label="scope.row.id" @change="chooseOne(scope.row)">{{ '' }}</el-radio> </template> </el-table-column> <el-table-column :label="$t('table.id')" align="center" width="50"> <template v-slot="scope"> {{ initTableIndex('page', scope.$index) }} </template> </el-table-column> <el-table-column :label="$t('i18nView.pdCode')" align="center" prop="pdCode"></el-table-column> <el-table-column :label="$t('i18nView.pdName')" align="center" prop="pdName"></el-table-column> <el-table-column :label="$t('customComponents.pdEdition')" align="center" prop="pdEdition"></el-table-column> <el-table-column :label="$t('pdtempPdInfoView.pdApplDate')" align="center" prop="pdApplDate" sortable></el-table-column> <el-table-column :label="$t('pdtempPdInfoView.updateTime')" align="center" prop="changeDate" sortable> <template v-slot="scope"><span v-if="scope.row.defType!=1">{{ scope.row.changeDate }}</span></template> </el-table-column> <el-table-column :label="$t('pdtempPdInfoView.definitionType')" align="center" prop="defType"> <template v-slot="scope">{{ scope.row.defType | filterDefType }}</template> </el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList1" :label="$t('pdtempPdInfoView.attributeDefinitionState')" align="center" prop="attrDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList2" :label="$t('pdtempPdInfoView.structureDefinitionState')" align="center" prop="structDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList3" :label="$t('pdtempPdInfoView.currentPriceDefinitionState')" align="center" prop="priceDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList4" :label="$t('pdtempPdInfoView.superviseDefinitionState')" align="center" prop="superviseDefState"></el-table-column> </el-table> <!-- 分页 --> <cus-pagination ref="page" v-model="configs" :pageSize="10" :params="params" url="/pdtemp-pd-info/list"/>以上代码如何实现数据渲染
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值