elementPuls 表格反選實現(xiàn)示例代碼
真的在網(wǎng)上搜了很多資料發(fā)現(xiàn)根本實現(xiàn)不了反選 最下面有示例
然后去看了下官網(wǎng)
發(fā)現(xiàn)官網(wǎng)有教你怎么選中某個值的方法 官網(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)有辦法選中某個值
那反選是不是簡單了 很多
以下是個人代碼
第一步 獲取已選中的值 和未選中的值
<el-table
ref="multipleTableRef"
:data="tableData"
style="width: 100%"
綁定切換選中時候的數(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ù) 直接傳進 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 表格反選實現(xiàn)的文章就介紹到這了,更多相關(guān)elementPuls 表格反選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue.js 通過jQuery ajax獲取數(shù)據(jù)實現(xiàn)更新后重新渲染頁面的方法
今天小編小編就為大家分享一篇Vue.js 通過jQuery ajax獲取數(shù)據(jù)實現(xiàn)更新后重新渲染頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue使用Echarts設(shè)置數(shù)據(jù)無效問題記錄及解決方法
這篇文章主要介紹了vue使用Echarts設(shè)置數(shù)據(jù)無效問題記錄,本文通過場景分析給大家分享解決方法,需要的朋友可以參考下2022-08-08
element-ui中el-cascader動態(tài)加載和默認值詳解
vue+elementUI項目中el-cascader級聯(lián)選擇器使用頻率非常高,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-cascader動態(tài)加載和默認值的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05

