Vue3實現(xiàn)Element Plus表格的多選功能與條件操作
前言
本文主要以Demo的形式展示,展示要點為主
基本知識點
數(shù)據(jù)綁定:
v-model 用于雙向綁定數(shù)據(jù),el-table 的 :data 屬性用于綁定表格數(shù)據(jù)選擇框列:
使用 el-table-column 的 type=“selection” 屬性來創(chuàng)建多選框列處理選擇變化:
@selection-change事件用于處理選擇狀態(tài)變化,獲取選中的數(shù)據(jù)過濾和操作:
通過對選中的數(shù)據(jù)進行過濾和處理,實現(xiàn)不同的操作需求
1. Demo
多選按鈕通常用于選擇表格中的多行數(shù)據(jù)
常用的 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="狀態(tài)" 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">執(zhí)行批量操作</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: '已提交' },
// ...更多數(shù)據(jù)
]);
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('只能對“未提交”狀態(tài)的記錄進行操作');
return;
}
// 執(zhí)行批量操作
console.log('批量操作:', selectedRows.value);
};
</script>
- 表格組件:el-table 組件用于展示數(shù)據(jù),type=“selection” 創(chuàng)建多選框列
- handleSelectionChange:處理選中項的變化,將選中的數(shù)據(jù)存儲在 selectedRows 中
- viewDetails:用于查看單條記錄的詳細(xì)信息
- handleBatchAction:處理批量操作的邏輯,包括檢查選中項的狀態(tài)是否符合條件(如狀態(tài)為“未提交”),然后執(zhí)行操作
2. 實戰(zhàn)
以上主要為了展示Demo的基本要點
對于實戰(zhàn)也同理
增加選項按鈕以及按鈕觸發(fā)

通過按鈕的選中收集相關(guān)信息

將列表的id以數(shù)組的形式傳輸給后端
(上面我多收集了一個status,不滿足的status可以在此處做過濾,讓其不會觸發(fā)按鈕框并且有提示)

結(jié)果如下:

基于上述的Demo以及實戰(zhàn)
通過按鈕做一鍵刪除 、修改等操作就很簡單了
以上就是Vue3實現(xiàn)Element Plus表格的多選功能與條件操作的詳細(xì)內(nèi)容,更多關(guān)于Vue3 Element Plus表格多選與操作的資料請關(guān)注腳本之家其它相關(guān)文章!
- vue3?element-plus?實現(xiàn)表格數(shù)據(jù)更改功能詳細(xì)步驟
- 基于Vue3和Element Plus實現(xiàn)可擴展的表格組件
- vue3基于elementplus 簡單實現(xiàn)表格二次封裝過程
- Vue3?使用Element?Plus表格單選帶checkbox功能
- vue3+element?Plus實現(xiàn)表格前端分頁完整示例
- element-plus+Vue3實現(xiàn)表格數(shù)據(jù)動態(tài)渲染
- Vue3中的element-plus表格實現(xiàn)代碼
- vue3 + ElementPlus 封裝列表表格組件包含分頁
- Vue3+Element Plus 通用表格組件封裝與使用實踐
相關(guān)文章
vue實現(xiàn)table表格里面數(shù)組多層嵌套取值
這篇文章主要介紹了vue實現(xiàn)table表格里面數(shù)組多層嵌套取值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue3.0中Ref與Reactive的區(qū)別示例詳析
在vue3中對響應(yīng)式數(shù)據(jù)的聲明官方給出了ref()和reactive()這兩種方式,這篇文章主要給大家介紹了關(guān)于Vue3.0中Ref與Reactive區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-07-07
基于Vue3和Element Plus實現(xiàn)可擴展的表格組件
在開發(fā)過程中,我們經(jīng)常需要創(chuàng)建具有復(fù)雜功能的表格組件,本文將介紹如何使用 Vue 3 和 Element Plus 庫來構(gòu)建一個可擴展的表格組件,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-07-07

