Vue3实现Element Plus表格的多选功能与条件操作

 更新时间:2024年08月09日 09:15:13   作者:码农研究僧  
Element-plus是ElementUI的升级版,是一套基于vue2与vue3的桌面端组件库,它提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面,本文给大家介绍了Vue3实现Element Plus表格的多选功能与条件操作,需要的朋友可以参考下

前言

本文主要以Demo的形式展示,展示要点为主

基本知识点

  1. 数据绑定
    v-model 用于双向绑定数据,el-table 的 :data 属性用于绑定表格数据

  2. 选择框列
    使用 el-table-column 的 type=“selection” 属性来创建多选框列

  3. 处理选择变化
    @selection-change 事件用于处理选择状态变化,获取选中的数据

  4. 过滤和操作
    通过对选中的数据进行过滤和处理,实现不同的操作需求

1. Demo

多选按钮通常用于选择表格中的多行数据

常用的 UI 框架如 Element Plus 提供了易于集成的多选功能

<template>
  <el-table
    v-loading="loading"
    :data="tableData"
    :stripe="true"
    :show-overflow-tooltip="true"
    @selection-change="handleSelectionChange"
  >
    <el-table-column type="selection" width="55" />
    <el-table-column label="名称" prop="name" />
    <el-table-column label="状态" prop="status" />
    <el-table-column label="操作" fixed="right" width="200">
      <template #default="scope">
        <el-button @click="viewDetails(scope.row)">查看详情</el-button>
      </template>
    </el-table-column>
  </el-table>
  <el-button @click="handleBatchAction">执行批量操作</el-button>
</template>

其js如下:

<script setup>
import { ref } from 'vue';
import { ElTable, ElTableColumn, ElButton, ElMessage } from 'element-plus';

const loading = ref(false);
const tableData = ref([
  { id: 1, name: 'Item 1', status: '未提交' },
  { id: 2, name: 'Item 2', status: '已提交' },
  // ...更多数据
]);

const selectedRows = ref([]);

const handleSelectionChange = (selection) => {
  selectedRows.value = selection;
};

const viewDetails = (row) => {
  // 显示详情
  console.log('查看详情:', row);
};

const handleBatchAction = () => {
  if (selectedRows.value.length === 0) {
    ElMessage.warning('请选择要操作的项');
    return;
  }

  if (selectedRows.value.some(row => row.status !== '未提交')) {
    ElMessage.warning('只能对“未提交”状态的记录进行操作');
    return;
  }

  // 执行批量操作
  console.log('批量操作:', selectedRows.value);
};
</script>
  • 表格组件:el-table 组件用于展示数据,type=“selection” 创建多选框列
  • handleSelectionChange:处理选中项的变化,将选中的数据存储在 selectedRows 中
  • viewDetails:用于查看单条记录的详细信息
  • handleBatchAction:处理批量操作的逻辑,包括检查选中项的状态是否符合条件(如状态为“未提交”),然后执行操作

2. 实战

以上主要为了展示Demo的基本要点

对于实战也同理

增加选项按钮以及按钮触发

通过按钮的选中收集相关信息

将列表的id以数组的形式传输给后端
(上面我多收集了一个status,不满足的status可以在此处做过滤,让其不会触发按钮框并且有提示)

结果如下:

基于上述的Demo以及实战

通过按钮做一键删除 、修改等操作就很简单了

以上就是Vue3实现Element Plus表格的多选功能与条件操作的详细内容,更多关于Vue3 Element Plus表格多选与操作的资料请关注脚本之家其它相关文章!

相关文章

  • vue项目配置使用flow类型检查的步骤

    vue项目配置使用flow类型检查的步骤

    这篇文章主要介绍了vue项目配置使用flow类型检查的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • vue实现显示消息提示框功能

    vue实现显示消息提示框功能

    这篇文章主要介绍了vue实现显示消息提示框功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue.js实现双击放大预览功能

    vue.js实现双击放大预览功能

    这篇文章主要为大家详细介绍了vue.js实现双击放大预览功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • 创建nuxt.js项目流程图解

    创建nuxt.js项目流程图解

    Nuxt.js是创建Universal Vue.js应用程序的框架。它的主要范围是UI渲染,同时抽象出客户端/服务器分布。我们的目标是创建一个足够灵活的框架,以便您可以将其用作主项目库或基于Node.js的当前项目。
    2020-03-03
  • vue项目ElementUI组件中el-upload组件与图片裁剪功能组件结合使用详解

    vue项目ElementUI组件中el-upload组件与图片裁剪功能组件结合使用详解

    这篇文章主要介绍了vue项目ElementUI组件中el-upload组件与图片裁剪功能组件结合使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue解决ajax跨域的问题

    Vue解决ajax跨域的问题

    这篇文章主要介绍了Vue解决ajax跨域的问题,跨域请求:是指协议名、主机名、端口号三者有任何一个不一样,而且跨域请求是请求发出去了,服务器接收并返回了结果,只是浏览器没有接收响应结果。感兴趣的同学可以参考阅读
    2023-04-04
  • vue项目fetch本地PAG格式文件404 NotFound的解决

    vue项目fetch本地PAG格式文件404 NotFound的解决

    这篇文章主要介绍了vue项目fetch本地PAG格式文件404 NotFound的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue Mixins混入介绍与使用

    Vue Mixins混入介绍与使用

    如果我们在每个组件中去重复定义这些属性和方法会使得项目出现代码冗余并提高了维护难度,针对这种情况官方提供了Mixins特性,这时使用Vue mixins混入有很大好处,下面就介绍下Vue mixins混入使用方法,需要的朋友参考下吧
    2023-02-02
  • vue3在setup中使用mapState解读

    vue3在setup中使用mapState解读

    这篇文章主要介绍了vue3在setup中使用mapState方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue实现获取剪切板内容的两种方法

    Vue实现获取剪切板内容的两种方法

    这篇文章主要为大家详细介绍了Vue实现获取剪切板内容的两种方法,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下
    2025-02-02

最新评论