实现el-table两列多选框且不可同时勾选

1、效果图如下,功能:必修和选修不可同时勾选

2、代码如下

bash 复制代码
<template>
      <el-table :data="addTableData" style="width: 100%">
        <el-table-column label="必修" width="55px" align="center">
          <template slot-scope="scope">
            <el-checkbox v-model="checked1" :label="scope.row.id" @change="checkboxChange($event,scope.row.id,'checked2')"><span></span></el-checkbox>
          </template>
        </el-table-column>
        <el-table-column label="选修" width="55px" align="center">
          <template slot-scope="scope">
            <el-checkbox v-model="checked2" :label="scope.row.id" @change="checkboxChange($event,scope.row.id,'checked1')"><span></span></el-checkbox>
          </template>
        </el-table-column>
        <el-table-column prop="id" label="编号" width="60px" align="center"></el-table-column>
        <el-table-column prop="name" label="名称" align="center"></el-table-column>
        <el-table-column prop="name" label="学时" width="60px"  align="center"></el-table-column>
      </el-table>
</template>


  export default {
    data() {
      return {
        checked1:[],//必修已选
        checked2:[],//选修已选
      }
    }

    methods: {
      checkboxChange(val,id,type) {
        if(val === true) {
          this[type] = this[type].filter(function(item) {
            return item !== id;  // 过滤出值不为2的元素
          });
        }
      },
    },
  }
相关推荐
梦6502 天前
VUE树形表格组件如何自定义展开箭头以及箭头位置
javascript·vue.js·elementui
我叫张小白。2 天前
Vue3 v-model:组件通信的语法糖
开发语言·前端·javascript·vue.js·elementui·前端框架·vue
阿奇__2 天前
element二次封装组件套餐 搜索组件 表格组件 弹窗组件
javascript·vue.js·elementui
J总裁的小芒果3 天前
el-table 假数据合并
javascript·vue.js·elementui
黄团团3 天前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron
小杨快跑~5 天前
Vue 3 + Element Plus 表单校验
前端·javascript·vue.js·elementui
周不凢10 天前
elementui el-date-picker分页选择弹出框样式及分页样式
elementui
周不凢10 天前
elementui el-date-picker时间区间选择弹出框样式
elementui
桧***攮11 天前
DockerGraphQLAPI
elementui·rust·visual studio
滿12 天前
vue3 elementplus el-table toggleRowSelection使用方法
javascript·vue.js·elementui