elementPuls 表格反選實(shí)現(xiàn)示例代碼
真的在網(wǎng)上搜了很多資料發(fā)現(xiàn)根本實(shí)現(xiàn)不了反選 最下面有示例
然后去看了下官網(wǎng)
發(fā)現(xiàn)官網(wǎng)有教你怎么選中某個(gè)值的方法 官網(wǎng)中的”多選“
官網(wǎng)地址
<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>
既然官網(wǎng)有辦法選中某個(gè)值
那反選是不是簡(jiǎn)單了 很多
以下是個(gè)人代碼
第一步 獲取已選中的值 和未選中的值
<el-table ref="multipleTableRef" :data="tableData" style="width: 100%" 綁定切換選中時(shí)候的數(shù)據(jù) @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:[],//總數(shù)據(jù) checkList: [],//選中數(shù)據(jù)數(shù)組 noCheckList:[],//未選中數(shù)據(jù)數(shù)組 }) // 重要 獲取選中未選中數(shù)據(jù) 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 需要選中的數(shù)據(jù) 直接傳進(jìn) state.noCheckList 即可 multipleTableRef.value.clearSelection() //需要先全部取消選中 再去選中剛剛未選中的數(shù)據(jù)即可 if (rows) { rows.forEach((row) => { multipleTableRef.value.toggleRowSelection(row, undefined) }) } else { multipleTableRef.value.clearSelection() } } </script>
到此這篇關(guān)于elementPuls 表格反選實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)elementPuls 表格反選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)多條件篩選超簡(jiǎn)潔代碼
這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)多條件篩選的相關(guān)資料,隨著數(shù)據(jù)的不斷增多,我們往往需要在表格中進(jìn)行多條件的篩選,以便快速定位符合我們需求的數(shù)據(jù),需要的朋友可以參考下2023-09-09詳解vue computed的緩存實(shí)現(xiàn)原理
這篇文章主要介紹了vue computed的緩存實(shí)現(xiàn)原理,幫助大家更好的理解和學(xué)習(xí)使用vue,感興趣的朋友可以了解下2021-04-04解決v-if 與 v-for 同時(shí)使用報(bào)錯(cuò)的問題
在進(jìn)行項(xiàng)目開發(fā)的時(shí)候因?yàn)樵谝粋€(gè)標(biāo)簽上同時(shí)使用了v-for和v-if兩個(gè)指令導(dǎo)致的報(bào)錯(cuò),遇到這個(gè)問題如何解決呢?下面小編給大家?guī)砹岁P(guān)于v-if 與 v-for 使用報(bào)錯(cuò)問題分析及解決方法,一起看看吧2022-03-03詳解如何使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)易的vue功能
這篇文章主要為大家介紹了如何使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)易的vue功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)
這篇文章主要介紹了Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Vue如何實(shí)現(xiàn)el-table多選樣式變?yōu)閱芜x效果
這篇文章主要介紹了Vue如何實(shí)現(xiàn)el-table多選樣式變?yōu)閱芜x效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05