el-table已经选中的项,通过selectable属性不可以再次选择

示例:

1、表格当前行状态已完成时,不可选择

javascript 复制代码
<el-table-column type="selection" width="55" :selectable="isRowSelectable"></el-table-column>


// 表格行是否可选
isRowSelectable (row, index) {
   // 根据row的disable属性决定是否禁用选择
   // console.log(row)
   // 返回 true 则可以选择,返回 false 则禁止选择
   if (row.status === 0) { // 0 待审核可选择
      return true
   } else {
      return false
   }
},

2、根据已选中的项,不可再次选中

父组件:

子组件:

javascript 复制代码
<el-table
    :data="tableData"
    @selection-change="selectionChange"
    ref="multipleTable"
    :selectable="isRowSelectable"
  >
    <el-table-column type="selection" width="55" :selectable="isRowSelectable"></el-table-column>
    ......
</el-table>


// 表格行是否可选
isRowSelectable (row, index) {
   // 根据row的disable属性决定是否禁用选择
   // storeDetails来自父组件中已经选中的数组项
   // 检查行是否已在 storeDetails 中,如果在则返回 false,否则返回 true
   return !this.storeDetails.some(item=> item.goodsId === row.id) // 使用相同的 key 来比较行是否已选择
},
// 批量操作选中按钮
selectionChange (data) {
   // console.log(data)
   // 修改属性名id改为goodsId
   let arr = JSON.parse(JSON.stringify(data).replace(/id/g, 'goodsId'))
   // console.log(arr)
   // selectItems传递给父组件的数组项
   this.selectItems.splice(0, this.selectItems.length, ...arr)
   // console.log(this.selectItems)
},
相关推荐
嘉琪001几秒前
Day8 完整学习包(Vue 基础 & 响应式)——2026 0320
前端·vue.js·学习
FlyWIHTSKY2 分钟前
Vue3 单文件中不同的组件
前端·javascript·vue.js
FlyWIHTSKY31 分钟前
Vue 3 onMounted 中控制同步与异步执行策略
前端·javascript·vue.js
PascalMing34 分钟前
告别 Nginx!ASP.NET Core 实现多域名 Vue 静态服务与代理转发
vue.js·nginx·asp.net
蜗牛攻城狮35 分钟前
【Vue3实战】El-Table实现“超过3行省略,悬停显示全文”的完美方案(附性能优化)
前端·vue.js·性能优化·element-plus
隔壁小邓38 分钟前
vue的组件化的理解之单独拆分的组件&组件的封装
前端·javascript·vue.js
Ivanqhz39 分钟前
图着色寄存器分配算法(Graph Coloring)
开发语言·javascript·python·算法·蓝桥杯·rust
我命由我1234540 分钟前
Element Plus 问题:选择框表单校验没有触发
开发语言·前端·javascript·html·ecmascript·html5·js
optimistic_chen1 小时前
【Vue3入门】vue-router 路由管理
前端·javascript·vue.js·路由·router
捕捉一只前端小白1 小时前
cpolar内网穿透以及微信小程序域名设置
前端·vue.js·微信小程序·小程序