如何使用el-table的多选框

对el-table再次封装,使得功能更加强大!

本人在使用el-table时,因为用到分页,导致上一页勾选的数据在再次返回时,没有选中,故在原有el-table组件的基础之上再次进行了封装。

1.首先让某些不需要勾选的列表进行多选框禁用

:selectable="isRowSelectable"

const isRowSelectable = (row) => {

return row.balance !== 0

}

2.通过select这个api来实现选择框的勾选

复制代码
const selectAssessRow = (selection, val) => {
  // checked.value = selection
  console.log('selection',selection)
  console.log('val',val)
  // console.log('是否',assessIds.value.includes(val.id));
  const index = checkedReward.value?.findIndex((item) => item.id === val.id)
  if (index !== -1) {
    checkedReward.value.splice(index, 1)
  } else {
    checkedReward.value.push(val)
  }
  console.log('checkedReward',checkedReward.value);
  assessmentUnits.value = checkedReward.value?.map((item) => item.id)
  // Assessment.value = checkedReward.value
}

3.实现全选功能

复制代码
const selectAssessRowAll = (selection) => { 
  if (!selection.length) {
    noticeList.value.forEach((item) => {
      const index = checkedReward.value?.findIndex((val) => val.id === item.id)
      if (index !== -1) {
        checkedReward.value.splice(index, 1)
      }
    })
  } else {
    selection.forEach((item) => {
      const index = checkedReward.value?.findIndex((val) => val.id === item.id)
      if (index !== -1) {
        checkedReward.value.splice(index, 1)
      }
      checkedReward.value.push(item)
    })
  }
  
}

3.勾选后的数据可进行回显

4.在打开弹窗前要进行选中的数据取消勾选

相关推荐
alicema111127 分钟前
matlab+opencv车道线识别
前端·opencv·matlab
caihuayuan51 小时前
使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
java·大数据·vue.js·spring boot·课程设计
火星牛1 小时前
SPA模式下的es6如何加快宿主页的显示速度
前端·ecmascript·es6
疏狂难除1 小时前
【Tauri2】046—— tauri_plugin_clipboard_manager(一)
前端·clipboard·tauri2
污斑兔1 小时前
VMWare清理后,残留服务删除方案详解
前端
gong191723169672 小时前
非受控组件在React中的使用场景有哪些?
前端·javascript·react.js
TE-茶叶蛋2 小时前
React 常见的陷阱之(如异步访问事件对象)
前端·javascript·react.js
zhangpeng4555479402 小时前
C++编程起步项目
开发语言·前端·c++
whyfail2 小时前
[特殊字符] React Fiber架构与Vue设计哲学撕逼实录
vue.js·react.js·架构
秋田君3 小时前
构建安全的Vue前后端分离架构:利用长Token与短Token实现单点登录(SSO)策略
前端·javascript·vue.js·elementui·前端框架·mock·sso单点登录客户端