【ElementUI】el-table中复选框禁用处理

前言

Vue 项目开发过程中,尤其是后台管理开发,经常会用到 ElementUI 中的表格和表单,有时候我们需要在表格中添加复选框,来实现全选和单选当前行的操作,而这时如果有条件要限制选框是否禁用该如何处理呢?这就需要展开来说了,因为表头全选和表格行中的单个选择处理是不同的。

一、处理body中的复选框禁用

在这里插入图片描述

1.1 概述

在官方文档 Table-column 中有一回调函数 selectable 用于返回值用来决定这一行的 CheckBox 是否可以勾选,它仅对 type=selection 的列有效。函数有两个参数 Function(row, index):

  • row 当前行相关信息参数
  • index 当前行索引值

1.2 设置复选框的 column

代码如下:

<el-table-column
   type="selection"
   width="60"
   slign="center"
   :selectable="enableSelect">
</el-table-column>

定义这个函数,并添加相关条件
当前是查看详情页面,或者编辑页面的当前行被禁用时不可操作
返回值为 false 不可操作,默认为 true 可操作

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以通过设置v-model的值为一个包含所有项value值的数组来实现框的全。具体操作如下: 1. 在表头添加一个全框,绑定一个全的事件。 2. 在表格的每一行添加一个框,绑定一个事件。 3. 在全事件,将所有行的状态改为与全框相同的状态,并将的数据存入一个数组。 4. 在事件,将的数据存入数组。 以下是示例代码: ```html <template> <div> <vxe-table ref="table" :data="tableData" :columns="columns" @checkbox-all="handleCheckAll" @checkbox-change="handleCheckChange" show-checkbox checkbox-config="{highlight:true}" ></vxe-table> </div> </template> <script> export default { data() { return { tableData: [ { id: 1, name: '张三', age: 18 }, { id: 2, name: '李四', age: 22 }, { id: 3, name: '王五', age: 25 } ], columns: [ { type: 'selection', width: 50, align: 'center' }, { field: 'id', title: 'ID' }, { field: 'name', title: '姓名', sortable: true }, { field: 'age', title: '年龄', sortable: true } ], selectedRows: [] } }, methods: { handleCheckAll(checked) { this.selectedRows = checked ? this.tableData : [] }, handleCheckChange(selectedRows) { this.selectedRows = selectedRows } }, watch: { selectedRows(val) { this.$emit('update:selectedRows', val) } } } </script> ``` 在上面的代码,我们通过设置`show-checkbox`和`checkbox-config`属性来显示框,并且可以设置时是否高亮显示。`handleCheckAll`方法,如果全,我们将所有行的状态改为,并将数据存入`selectedRows`数组;如果全框取消,我们将所有行的状态改为未,并将`selectedRows`数组清空。在`handleCheckChange`方法,我们只需要将的数据存入`selectedRows`数组即可。在`watch`,我们将`selectedRows`数组的数据通过`update:selectedRows`事件发送出去,这样父组件就可以获取到的数据了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MagnumHou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值