当前位置:   article > 正文

vue elementUI实现el-table点击行单选, 点击行多选,点击复选框单选效果_el-table 单选和点击行单选

el-table 单选和点击行单选


❤️ 以下分别介绍这四种效果的实现方式,非常简单!

首先:table绑定点击行事件 @row-click="rowClick"
           绑定复选框勾选事件 @select="handleSelectionChange"

  1.  <el-table
  2.         ref="Table"
  3.         :data="tableData"
  4.         style="width: 100%"
  5.         :select-on-indeterminate="false"
  6.         @select="handleSelectionChange"
  7.         @row-click="rowClick"
  8.       >
  9.     //......


 

1、点击行多选

  1. rowClick(row, column, event) {  // 点击行多选
  2.         // console.log(row)
  3.         // 从已选中数据中 判断当前点击的是否被选中
  4.         const selected = this.multipleSelection.some(item => item.id === row.id)  // 是取消选择还是选中
  5.         if (!selected) { // 不包含   代表选择
  6.           this.multipleSelection.push(row)
  7.           this.$refs['multipleTable'].toggleRowSelection(row, true);
  8.         } else { // 取消选择
  9.           var finalArr = this.multipleSelection.filter((item) => {
  10.             return item.id !== row.id
  11.           })
  12.           this.multipleSelection = finalArr  // 取消后剩余选中的
  13.           this.$refs['multipleTable'].toggleRowSelection(row, false);
  14.         }
  15.         console.log('更改选择后', this.multipleSelection)
  16.     },

2、点击行单选

 

  1. rowClick(row, column, event) {
  2.       // console.log(row)
  3.       //   选已选中数据中判断当前点击的是否被选中
  4.       if (this.multipleSelection[0] == row) {  // 选中的是已有的 取消选中
  5.         this.multipleSelection = [];
  6.         this.$refs['Table'].clearSelection();
  7.       } else {
  8.         this.multipleSelection = [row];
  9.         this.$refs['Table'].clearSelection();
  10.         this.$refs['Table'].toggleRowSelection(row, true);
  11.       }
  12.     },


 
 

3、table复选框单选     点击复选框单选效果    记录选中数据

  1. handleSelectionChange(selection, row) {
  2.       if (this.multipleSelection[0] == row) {
  3.         this.multipleSelection = [];
  4.         this.$refs['Table'].clearSelection();
  5.       } else {
  6.         this.multipleSelection = [row];
  7.         this.$refs['Table'].clearSelection();
  8.         this.$refs['Table'].toggleRowSelection(row, true);
  9.       }
  10.     },

4、table复选框多选       点击复选框多选效果       记录选中数据

  1. selectChange(selection, row) {
  2.       // console.log('手动勾选数据行', selection, row)
  3.       // 判断当前行是否选中
  4.       const selected = selection.some(item => item === row)  // 是取消选择还是选中
  5.       if (selected) { // 选择
  6.         this.multipleSelection.push(row)
  7.       } else { // 取消选择
  8.         var finalArr = this.multipleSelection.filter((item) =>
  9.           return item.id !== row.id
  10.         })
  11.         this.multipleSelection = finalArr
  12.       }
  13.       console.log('更改选择后', this.multipleSelection)
  14.     },

如果还涉及到复选框默认勾选,默认禁用等效果。
可查看我的上篇笔记~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/460568
推荐阅读