欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3實(shí)現(xiàn)Element Plus表格的多選功能與條件操作

 更新時(shí)間:2024年08月09日 09:15:13   作者:碼農(nóng)研究僧  
Element-plus是ElementUI的升級(jí)版,是一套基于vue2與vue3的桌面端組件庫(kù),它提供了豐富的組件幫助開(kāi)發(fā)人員快速構(gòu)建功能強(qiáng)大、風(fēng)格統(tǒng)一的頁(yè)面,本文給大家介紹了Vue3實(shí)現(xiàn)Element Plus表格的多選功能與條件操作,需要的朋友可以參考下

前言

本文主要以Demo的形式展示,展示要點(diǎn)為主

基本知識(shí)點(diǎn)

  1. 數(shù)據(jù)綁定
    v-model 用于雙向綁定數(shù)據(jù),el-table 的 :data 屬性用于綁定表格數(shù)據(jù)

  2. 選擇框列
    使用 el-table-column 的 type=“selection” 屬性來(lái)創(chuàng)建多選框列

  3. 處理選擇變化
    @selection-change 事件用于處理選擇狀態(tài)變化,獲取選中的數(shù)據(jù)

  4. 過(guò)濾和操作
    通過(guò)對(duì)選中的數(shù)據(jù)進(jìn)行過(guò)濾和處理,實(shí)現(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('請(qǐng)選擇要操作的項(xiàng)');
    return;
  }

  if (selectedRows.value.some(row => row.status !== '未提交')) {
    ElMessage.warning('只能對(duì)“未提交”狀態(tài)的記錄進(jìn)行操作');
    return;
  }

  // 執(zhí)行批量操作
  console.log('批量操作:', selectedRows.value);
};
</script>
  • 表格組件:el-table 組件用于展示數(shù)據(jù),type=“selection” 創(chuàng)建多選框列
  • handleSelectionChange:處理選中項(xiàng)的變化,將選中的數(shù)據(jù)存儲(chǔ)在 selectedRows 中
  • viewDetails:用于查看單條記錄的詳細(xì)信息
  • handleBatchAction:處理批量操作的邏輯,包括檢查選中項(xiàng)的狀態(tài)是否符合條件(如狀態(tài)為“未提交”),然后執(zhí)行操作

2. 實(shí)戰(zhàn)

以上主要為了展示Demo的基本要點(diǎn)

對(duì)于實(shí)戰(zhàn)也同理

增加選項(xiàng)按鈕以及按鈕觸發(fā)

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

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

結(jié)果如下:

基于上述的Demo以及實(shí)戰(zhàn)

通過(guò)按鈕做一鍵刪除 、修改等操作就很簡(jiǎn)單了

以上就是Vue3實(shí)現(xiàn)Element Plus表格的多選功能與條件操作的詳細(xì)內(nèi)容,更多關(guān)于Vue3 Element Plus表格多選與操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue項(xiàng)目配置使用flow類型檢查的步驟

    vue項(xiàng)目配置使用flow類型檢查的步驟

    這篇文章主要介紹了vue項(xiàng)目配置使用flow類型檢查的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • vue實(shí)現(xiàn)顯示消息提示框功能

    vue實(shí)現(xiàn)顯示消息提示框功能

    這篇文章主要介紹了vue實(shí)現(xiàn)顯示消息提示框功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue.js實(shí)現(xiàn)雙擊放大預(yù)覽功能

    vue.js實(shí)現(xiàn)雙擊放大預(yù)覽功能

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)雙擊放大預(yù)覽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 創(chuàng)建nuxt.js項(xiàng)目流程圖解

    創(chuàng)建nuxt.js項(xiàng)目流程圖解

    Nuxt.js是創(chuàng)建Universal Vue.js應(yīng)用程序的框架。它的主要范圍是UI渲染,同時(shí)抽象出客戶端/服務(wù)器分布。我們的目標(biāo)是創(chuàng)建一個(gè)足夠靈活的框架,以便您可以將其用作主項(xiàng)目庫(kù)或基于Node.js的當(dāng)前項(xiàng)目。
    2020-03-03
  • vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用詳解

    vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用詳解

    這篇文章主要介紹了vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue解決ajax跨域的問(wèn)題

    Vue解決ajax跨域的問(wèn)題

    這篇文章主要介紹了Vue解決ajax跨域的問(wèn)題,跨域請(qǐng)求:是指協(xié)議名、主機(jī)名、端口號(hào)三者有任何一個(gè)不一樣,而且跨域請(qǐng)求是請(qǐng)求發(fā)出去了,服務(wù)器接收并返回了結(jié)果,只是瀏覽器沒(méi)有接收響應(yīng)結(jié)果。感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • vue項(xiàng)目fetch本地PAG格式文件404 NotFound的解決

    vue項(xiàng)目fetch本地PAG格式文件404 NotFound的解決

    這篇文章主要介紹了vue項(xiàng)目fetch本地PAG格式文件404 NotFound的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue Mixins混入介紹與使用

    Vue Mixins混入介紹與使用

    如果我們?cè)诿總€(gè)組件中去重復(fù)定義這些屬性和方法會(huì)使得項(xiàng)目出現(xiàn)代碼冗余并提高了維護(hù)難度,針對(duì)這種情況官方提供了Mixins特性,這時(shí)使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧
    2023-02-02
  • vue3在setup中使用mapState解讀

    vue3在setup中使用mapState解讀

    這篇文章主要介紹了vue3在setup中使用mapState方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue實(shí)現(xiàn)獲取剪切板內(nèi)容的兩種方法

    Vue實(shí)現(xiàn)獲取剪切板內(nèi)容的兩種方法

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)獲取剪切板內(nèi)容的兩種方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下
    2025-02-02

最新評(píng)論