element-ui表格table中复选框只能选中一个

element-ui表格table中复选框只能选中一个

方法一:

<el-table stripe v-loading="loading" :data="tableData.list" class="table-box-tab table_type_five" style="padding-left:15px;padding-right:15px;" :style="{'padding-right': this.paddingRight == false? '14px':'15px'}" @selection-change="handleSelectionChange" ref="multipleTable" @select="select"> <el-table-column type="selection" width="40"></el-table-column> </el-table>
handleSelectionChange(e) {
      let bfTmpUserSelectArr = this.userSelectArr;// 上一次用户选择的数据
      this.userSelectArr = e;
      if (this.userSelectArr.length > 1) {
        if (bfTmpUserSelectArr.length == 1) {
          let del_row = this.userSelectArr.shift()
          this.$refs.multipleTable.toggleRowSelection(del_row, false)
        } else {
          this.$message({
            message: '一次只能操作一条',
            type: 'warning'
          });
          this.handleSelectionClear();
        }
        return
      }
      if (this.userSelectArr.length == 1 && this.userSelectArr[0].backStatus == 1) {
        this.$message({
          type: 'info',
          message: '无需'
        });
        this.handleSelectionClear();
        return
      }
    }

方法二:

<el-table
          ref="multipleTable"
          :data="updatetableData"
          style="width: 100%"
          @selection-change="updatehandleSelectionChange"
          @select="select"
          @select-all="selectAll"
        >
          <el-table-column type="selection"></el-table-column>
          <el-table-column prop="id" label="ID"></el-table-column>
          <el-table-column prop="name" label="精品名称"></el-table-column>
          <el-table-column prop="tag" label="排序">
            <template slot-scope="scope">
              <el-input v-model="scope.row.sort" />
            </template>
          </el-table-column>
        </el-table>
select(selection, row) {
      if (selection.length > 1) {
        let del_row = selection.shift()
        this.$refs.multipleTable.toggleRowSelection(del_row, false)
      }
    },
selectAll(selection){
      if (selection.length > 1) {
        selection.length = 1
      }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值