vue3中使用element-plus表格多选进行回显,分页勾选保存

// 获取分页数据,第一页
  td.value = [
    {id: 10}, {id: 30}, {id: 70}, {id: 80}, {id: 90}
  ]
// 根据接口获取会显得数据
  const temp2 = [
    {id: 196, deviceId: 1, isDelete: false},
    {id: 197, deviceId: 3, isDelete: false},
    {id: 221, deviceId: 7, isDelete: false},
  ]
  
  if (temp1 === null) {
    // temp1 === null 初始化记录
       temp1 = temp2.reduce((temp1, item) => {
       temp1[item.deviceId] = item
    // 选中表格
       tdRef.value.toggleRowSelection(item.deviceId)
      return temp1
  }, {})
  } else {
      // temp1 !== null
      Object.keys(temp1).forEach(item => {
      tdRef.value.toggleRowSelection(item)
  })
  }

// 记录存储
// let temp1 = null
let temp1 = {
  1: {id: 196, deviceId: 1, isDelete: false},
  3: {id: 197, deviceId: 3, isDelete: false},
  7: {id: 221, deviceId: 7, isDelete: false},
  8: {deviceId: 8, isDelete: false},
  10: { deviceId: 10, isDelete: false},
} as any
// 表格数据
const td = ref([])
// tdRef row-key = 'id'
const tdRef = ref()

// 多选是对数据进行存储
function handleSelectionChange (selection) {
  Object.values(temp1 ).forEach((item) => {
    item.isDelete = true
  })
  selection.forEach((item) => {
    if (temp1 [item.id]) {
      temp1 [item.id].isDelete = false
    } else {
      temp1 [item.id] = {
        deviceId: item.id,
        isDelete: false,
        deviceName: item.deviceName,
        parent: pagevalList.value.id,
        deviceType: pagevalList.value.currencyOrSpecial
      }
    }
  })
}
// 保存 对数据进行转换
  const keys = Object.keys(temp1)
  keys.forEach(key => {
    const item = temp1[key]
    !item.id && item.isDelete && delete temp1[key]
  })
  const arr = Object.values(temp1)

html中 设置:reserve-selection="true" row-key设置唯一值

 根据接口获取表格数据和回显数据

// data 是接口返回的的表格数据
// bind 是获取回显的数据
const tableDic = data.reduce((tableDic, item) => {
        tableDic[item.id] = item
        return tableDic
      }, {})
      pages.value.total = rdata.payload.total
      nextTick(() => {
        if (tabularData === null) {
          tabularData = bind.reduce((tabularData, item) => {
            tabularData[item.deviceId] = item
            return tabularData
          }, {})
        }
        Object.keys(tabularData).forEach(key => {
          tableDic[key] && multipleTableRef.value.toggleRowSelection(tableDic[key], !tableDic[key].isDelete)
        })
      })

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值