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ò)的問(wèn)題
在進(jìn)行項(xiàng)目開(kāi)發(fā)的時(shí)候因?yàn)樵谝粋€(gè)標(biāo)簽上同時(shí)使用了v-for和v-if兩個(gè)指令導(dǎo)致的報(bào)錯(cuò),遇到這個(gè)問(wèn)題如何解決呢?下面小編給大家?guī)?lái)了關(guān)于v-if 與 v-for 使用報(bào)錯(cuò)問(wèn)題分析及解決方法,一起看看吧2022-03-03
詳解如何使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)易的vue功能
這篇文章主要為大家介紹了如何使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)易的vue功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Vue.js框架實(shí)現(xiàn)購(gòu)物車(chē)功能
這篇文章主要為大家詳細(xì)介紹了Vue.js框架實(shí)現(xiàn)購(gòu)物車(chē)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)
這篇文章主要介紹了Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
Vue如何實(shí)現(xiàn)el-table多選樣式變?yōu)閱芜x效果
這篇文章主要介紹了Vue如何實(shí)現(xiàn)el-table多選樣式變?yōu)閱芜x效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
NUXT SSR初級(jí)入門(mén)筆記(小結(jié))
這篇文章主要介紹了NUXT SSR初級(jí)入門(mén)筆記(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

