vue3 element plus table selection展示数据,默认选中功能方式

 更新时间:2024年07月25日 10:29:53   作者:蜡笔大杺  
这篇文章主要介绍了vue3 element plus table selection展示数据,默认选中功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue3 element plus table selection展示数据,默认选中

当打开表格数据时,可能会根据后台返回的数据,默认选中符合条件的行

这样我们就用到了el-table-column,设 type 属性为 selection

1.表格的第一行,设置为

 <el-table-column type="selection" width="25" />

2.table上定义ref属性,并且定义这个变量

><script setup lang="ts">
const orgidslistRef = ref<InstanceType<typeof ElTable>>();
<script />

3.在事件中配置一下

  //遍历表格的数据,再遍历需要在表格中反显的数据,两者的id一致
  //创建一个空数组用来存放默认数据
  //allprojectsortids指的是存放表格显示数据的数组,和table绑定的data数据来源一致
  //item我这里是存放条件数组
  //假设:item=[1,2,3],我们需要把allprojectsortids数组中id在item中的行默认选中,即可进行 下面的操作,具体判断操作自行修改.
  const listNew = [];//需要注意的是,这个数组中存放的数据要包含allprojectsortids数组中符合条件行全部的数据,不能只存放id,直接把那一行的数据全部存里面.
async  function edititemcondition(){
 await orgidslistRef.value.clearSelection();//清空选中状态
  allprojectsortids.value.forEach(it => {
    if (item.value.projectsortidslist_ext.indexOf(it.value) > -1) {
      // 把判断出来的默认表格数据push到创建的数组中
      listNew.push(it);
    }
  });


  //方法一 一定设置async  
  // await orgidslistRef.value.clearSelection();//清空选中状态
   //使用for循环方法处理复杂字段 推荐使用
   //orgidslistRef.value定义的ref
   // allprojectsortids.value原表格数据
   // listNew选中的数据
   
  for (let i = 0, i <  listNew.length; i++) {
    orgidslistRef.value.toggleRowSelection(
      allprojectsortids.value.find(item => {
        return listNew[i].value === item.value; // 注意这里寻找的字段要唯一,示例仅参考
      }),
      true
    );
  }


  //方法二
  if (listNew.length > 0) {
    //再遍历数组,将数据放入方法中
    listNew.forEach(row => {
      setTimeout(() => {
        orgidslistRef .value.toggleRowSelection(row, true);
      }, 0);
    });
  }  }

修改选中的行,重新赋值

function multipleOrgidslist_ext(val) {
//val选中行的数据
  console.log("%c搜索", "color:red;font-size:30px", val);
  if (val) {
    item.value.orgidslist_ext = [];
    const temp = [];
    for (let i = 0; i < val.length; i++) {
      temp.push(val[i].value);
    }
    item.value.projectsortidslist_ext= temp;
  }
}
//定义的数组
const allprojectsortids = ref(
[
  {
    date: '2016-05-03',
    id:1,
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
  id:2,
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    id:3,
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    id:4,
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    id:5,
    date: '2016-05-08',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },

]
)

结果:

注意:支持树形结构

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vscode搭建vue环境完整图文教程(适合新手小白)

    vscode搭建vue环境完整图文教程(适合新手小白)

    Vue框架的优秀设计和强大的生态系统成为了越来越多开发者选择Vue的原因,在实际项目过程中一个高效的开发环境能够大大提高开发效率,这篇文章主要给大家介绍了关于vscode搭建vue环境的相关资料,需要的朋友可以参考下
    2023-10-10
  • Vue项目使用Websocket大文件FileReader()切片上传实例

    Vue项目使用Websocket大文件FileReader()切片上传实例

    这篇文章主要介绍了Vue项目使用Websocket大文件FileReader()切片上传实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    今天小编就为大家分享一篇解决vue项目刷新后,导航菜单高亮显示的位置不对问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue中this.$emit使用方法的实际案例

    vue中this.$emit使用方法的实际案例

    this.$emit()的作用大家应该也都知道,主要用于子组件像父组件传值,这篇文章主要给大家介绍了关于vue中this.$emit使用方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Vue实现定位并解决内存泄漏

    Vue实现定位并解决内存泄漏

    Vue.js 是一个流行且强大的 JavaScript 框架,它允许我们构建动态和交互式 Web 应用程序,本文我们将深入探讨 Vue.js 应用程序中内存泄漏的原因,并探索如何定位和修复这些问题的有效策略,希望对大家有所帮助
    2023-09-09
  • 如何利用vue展示.docx文件、excel文件和csv文件内容

    如何利用vue展示.docx文件、excel文件和csv文件内容

    最近遇到了一些新的需求,需要前端实现文件预览功能,下面这篇文章主要给大家介绍了关于如何利用vue展示.docx文件、excel文件和csv文件内容的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • elementui实现表格自定义排序的示例代码

    elementui实现表格自定义排序的示例代码

    本文主要介绍了elementui实现表格自定义排序的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • webpack+vue.js实现组件化详解

    webpack+vue.js实现组件化详解

    vue的开发体验还是比较愉悦的。首先文档非常友好,所以上手会比较快。其次,配合webpack和vue-loader,每个页面都是一个.vue文件,写起来很方便。所以很适合做组件化开发,这篇文章我们就来一起看看webpack+vue.js如何实现组件化。
    2016-10-10
  • vue使用WebSocket模拟实现聊天功能

    vue使用WebSocket模拟实现聊天功能

    这篇文章主要介绍了vue使用WebSocket模拟实现聊天功能,通过创建node服务和server.js文件实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • element-ui中el-cascader动态加载和默认值详解

    element-ui中el-cascader动态加载和默认值详解

    vue+elementUI项目中el-cascader级联选择器使用频率非常高,下面这篇文章主要给大家介绍了关于element-ui中el-cascader动态加载和默认值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论