首页 > 其他分享 >iView Table分页 多选分页选中回显

iView Table分页 多选分页选中回显

时间:2024-09-27 11:53:05浏览次数:15  
标签:el 分页 回显 item 选中 Table data ID selectedData

iView的Table组件

前端在多选时如果点击下一页则丢失了上一页Table的多选数据(由于采用的后端分页,每次翻页会直接刷新为新数据)

定义变量

      loading: false,
      columnsData: [], //表格表头
      talbeData: [], //表格数据
      params: {
        total: 0,
        page: 1,
        limit: 10
      },//请求参数
      selectedData: [],//选中的数据
      defSelectData: [] // 去重数据    

页面实现

<Table border stripe ref="table" :loading="loading" :columns="columnsData" :data="talbeData" @on-select="onSelectAll" @on-select-cancel='onSelectCancel' @on-select-all="onSelectAll" @on-select-all-cancel='onSelectAllCancel'></Table>
<Page :total="params.total" :current="params.page" :page-size="limit" @on-change="changePage" @on-page-size-change="changeSize" show-elevator show-sizer show-total></Page>

表格点击触发

    // 全选 触发
    onSelectAll(selection) {
      // 去重之前的 选中后合并的数组
      this.defSelectData = [...selection, ...this.defSelectData]
      for (let val of this.defSelectData) {
        if (!this.selectedData.some(item => item.ID === val.ID)) {
          this.selectedData.push(val)
        }
      }
    },
    // 取消选中 时触发
    onSelectCancel(selection, row) {
      let result = this.selectedData.findIndex((el) => {
        return el.ID === row.ID
      })
      this.selectedData.splice(result, 1)
    },
    // 取消全选 触发
    onSelectAllCancel() {
      this.selectedData = this.selectedData.filter(item => {
        return this.talbeData.every(el => {
          return item.ID !== el.ID
        })
      })
    },

点击分页,取到新一页的数据,进行选中回显

    // 获取数据
    getTableData() {
      this.loading = true
      getDepUserList(this.params).then(res => {
        this.loading = false
        let data = res.data
        data.list.forEach(item => {
          //选中数据回显
          this.$set(item, '_checked', this.selectedData.some(el => el.ID === item.ID));
        });
        this.params.total = data.count
        this.talbeData = data.list
      })
    },
    changePage(page) {
      this.params.page = page
      this.getTableData()
    },
    changeSizeMember(size) {
      this.params.limit = size
      this.getTableData()
    },

标签:el,分页,回显,item,选中,Table,data,ID,selectedData
From: https://www.cnblogs.com/yj-ang3141/p/18435371

相关文章

  • 一篇文章教你用python玩转数据透视表PivotTable
    目录建数据透视表 配置行列字段添加列字段配置“值字段” 关闭分类汇总设置表格形式显示读取数据来透视表内容读取rowfield的内容读取valuefield的内容筛选透视表添加行标签筛选添加筛选标签(Pagefield)排序透视表 本文主要介绍excel的数据透视表常见的操......
  • hibernate 自定义表名与列名 - 增删改查分页 - 兼容Mysql和Oracle
    1.新增service,先组装SQLimportlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.data.domain.Page;importorg.springframework.stereo......
  • 比较好用的调节Table表格的表头和内容的宽度的方法
    因为大部分的Table组件的表头宽度不太适合我们所使用的,我们可以通过封装函数来适应表头的宽度。getColumnWidth(label,prop,tableData){   //label表头名称   //prop对应的内容   //tableData表格数据   constminWidth=150;//最小宽度......
  • CompletableFuture优雅处理并发最佳实践
    1、supplyAsync方法需要一个Supplier函数接口,通常用于执行异步计算CompletableFuture<String>future=CompletableFuture.supplyAsync(()->{dosomething("处理事务");return"结果";});2、runAsync接受一个Runnable函数接口,不关心异步任务的结果CompletableF......
  • SD(Stable Diffusion)模型的基本工作数据流
    SD(StableDiffusion)模型的基本工作数据流主要涉及图像生成过程,它建立在深度学习的基础上,利用神经网络对图像和文本进行建模和学习。以下是SD模型基本工作数据流的详细步骤:1.数据预处理收集数据:首先,需要收集大量的图像数据和相应的文本描述作为训练数据。这些数据需要满足......