使用vue3和element-plus的table表格如何设置选中禁用

<el-table
 ref="tableRef"
 :data="tableData"
 :show-header="false" 
 @select="selectRow"
 @selection-change="handleSelectionChange">
  <el-table-column
                type="selection"
                width="55"
                :selectable="selectable"
                >

data.rows.forEach((row) => {
 if(row.choose) {
 		// 给表格数据赋值的时候 设置表格已选中的数据
 		// toggleRowSelection 这个属性是element-ui的详细查手册
         tableRef.value.toggleRowSelection(row, true)
     }
 })
 
// 这个方法主要是为了设置表格当前行是禁用状态可以可选择状态
const selectable = (row, index) => {
  return row.choose ? false : true
}

需要三部分配合使用才能完成

在这里插入图片描述
效果贴图 因为涉及业务代码不太方便贴图后期 写个小demo完善一下.

还有一种情况是要支持多选选中的数量。我这里是最大上限选中10条。当已经选中10条后其他的禁用选择,如果是9条又要开放选择。

// html
<el-table-column type="selection" width="55" :selectable="selectable">
// 当前已经选中的数据 通过computed计算出来
const selectIds = computed(() => {
    return topics.value.map((item) => item.id)
 })

const selectable = (row, index) => {
            if (selectIds.value.length < 10) {
                return true
            } else {
                if (selectIds.value.includes(row.id)) {
                    return true
                }else {
                    return false
                }
            }
        }

在这里插入图片描述
如图 当勾选数据到10的时候其他数据会被禁用 禁止勾选。
如果当前是9条 禁用条件会放开~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值