elementPuls 表格反选实现示例代码

 更新时间:2024年07月25日 11:12:26   作者:Oneself_lsl  
这篇文章主要介绍了elementPuls 表格反选实现示例代码,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

真的在网上搜了很多资料发现根本实现不了反选 最下面有示例
然后去看了下官网
发现官网有教你怎么选中某个值的方法 官网中的”多选
官网地址

<template>
  <el-table
    ref="multipleTableRef"
    :data="tableData"
    style="width: 100%"
    @selection-change="handleSelectionChange"
  >
    <el-table-column type="selection" width="55" />
    <el-table-column label="Date" width="120">
      <template #default="scope">{{ scope.row.date }}</template>
    </el-table-column>
    <el-table-column property="name" label="Name" width="120" />
    <el-table-column property="address" label="Address" />
  </el-table>
  <div style="margin-top: 20px">
    <el-button @click="toggleSelection([tableData[1], tableData[2]])">
      Toggle selection status of second and third rows
    </el-button>
    <el-button @click="toggleSelection()">Clear selection</el-button>
  </div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { ElTable } from 'element-plus'
interface User {
  date: string
  name: string
  address: string
}
const multipleTableRef = ref<InstanceType<typeof ElTable>>()
const multipleSelection = ref<User[]>([])
const toggleSelection = (rows?: User[]) => {
  if (rows) {
    rows.forEach((row) => {
      // TODO: improvement typing when refactor table
      // eslint-disable-next-line @typescript-eslint/ban-ts-comment
      // @ts-expect-error
      multipleTableRef.value!.toggleRowSelection(row, undefined)
    })
  } else {
    multipleTableRef.value!.clearSelection()
  }
}
const handleSelectionChange = (val: User[]) => {
  multipleSelection.value = val
}
const tableData: User[] = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-08',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-06',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-07',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
]
</script>

既然官网有办法选中某个值
那反选是不是简单了 很多
以下是个人代码
第一步 获取已选中的值 和未选中的值

<el-table
    ref="multipleTableRef"
    :data="tableData"
    style="width: 100%"
    绑定切换选中时候的数据
    @selection-change="handleSelectionChange"
  >
  </el-table>
  <div @click="invertSelection(state.noCheckList)"
      style="width: 114rem;height: 35rem;border: 1rem solid #9D9D9D;border-radius: 10rem;font-size: 15rem;color: #5C6170;display: flex;align-items: center;margin: 0 20rem;cursor: pointer;">
      <img style="height: 15rem;margin: 0 10rem 0 15rem;" src="../../../assets/选择-反向选择@2x.png"
          alt="" srcset="">
      <span>反向选择</span>
  </div>
<script setup>
let state = reactive({
		peopleList:[],//总数据
	    checkList: [],//选中数据数组
    	noCheckList:[],//未选中数据数组
})
// 重要 获取选中未选中数据
const handleSelectionChange = (val) => {
    console.log(val);
    state.checkList = val
    const notIncludedArray = state.peopleList.filter(item => !val.includes(item));
    state.noCheckList = notIncludedArray
    // console.log(notIncludedArray);
}
const multipleTableRef= ref() // 多选table
const invertSelection = (rows) => {
    // rows  需要选中的数据  直接传进 state.noCheckList 即可
    multipleTableRef.value.clearSelection()  //需要先全部取消选中  再去选中刚刚未选中的数据即可
    if (rows) {
    rows.forEach((row) => {
      multipleTableRef.value.toggleRowSelection(row, undefined)
    })
  } else {
    multipleTableRef.value.clearSelection()
  }
}
</script>

到此这篇关于elementPuls 表格反选实现的文章就介绍到这了,更多相关elementPuls 表格反选内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • element中el-table表头通过header-row-style设置样式

    element中el-table表头通过header-row-style设置样式

    有些时候需要给element-ui表头设置不同样式,本文主要介绍了element中el-table表头通过header-row-style设置样式,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Vue Router深扒实现原理

    Vue Router深扒实现原理

    在看这篇文章的几点要求:需要你先知道Vue-Router是个什么东西,用来解决什么问题,以及它的基本使用。如果你还不懂的话,建议上官网了解下Vue-Router的基本使用后再回来看这篇文章
    2022-09-09
  • Vue调试工具vue-devtools的安装与使用

    Vue调试工具vue-devtools的安装与使用

    vue-devtools是专门调试vue项目的调试工具,安装成功之后,右边会出现一个vue,就可以在线可以调试vue了,下面这篇文章主要给大家介绍了关于Vue调试工具vue-devtools的安装与使用的相关资料,需要的朋友可以参考下
    2022-07-07
  • 浅谈vue的生命周期

    浅谈vue的生命周期

    这篇文章主要为大家介绍了vue的生命周期,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • vue分类筛选filter方法简单实例

    vue分类筛选filter方法简单实例

    这篇文章主要介绍了vue分类筛选filter方法的简单实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 关于vue中api统一管理的那些事

    关于vue中api统一管理的那些事

    最近在学习Vue教程,下面这篇文章主要给大家介绍了关于vue中api统一管理的那些事,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友可以参考下
    2022-04-04
  • 在vue项目中使用element-ui的Upload上传组件的示例

    在vue项目中使用element-ui的Upload上传组件的示例

    本篇文章主要介绍了在vue项目中使用element-ui的Upload上传组件的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • VUE DOM加载后执行自定义事件的方法

    VUE DOM加载后执行自定义事件的方法

    今天小编就为大家分享一篇VUE DOM加载后执行自定义事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入实例代码

    vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入实例代码

    这篇文章主要给大家介绍了关于vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入的相关资料,在Vue 3中可以通过配置vue.config.js文件来进行按需自动引入,需要的朋友可以参考下
    2024-02-02
  • Vue中父子组件通讯之todolist组件功能开发

    Vue中父子组件通讯之todolist组件功能开发

    这篇文章主要介绍了Vue中父子组件通讯——todolist组件功能开发的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05

最新评论