el-table?選中行與復(fù)選框相互聯(lián)動(dòng)的實(shí)現(xiàn)步驟
需求:對(duì)el-table 選中行時(shí)復(fù)選框也被選中,選中復(fù)選框時(shí)觸發(fā)行的相應(yīng)變化(攏共分兩步)
步驟:
第一步:點(diǎn)擊行時(shí)觸發(fā)復(fù)選框的選擇或取消;
第二步:點(diǎn)擊復(fù)選框時(shí)觸發(fā)相應(yīng)行的變化(問(wèn)題關(guān)鍵在怎么獲取復(fù)選框選取的行)
1. 點(diǎn)擊行時(shí)觸發(fā)復(fù)選框的選擇或取消
// <template>
<el-table
class="right-panel-table"
:data="tableData"
@selection-change="(val) => handleSelectionChange(val,'ischeckboxTick')"
ref="multipleTable"
v-loading="planLoading"
@cell-mouse-enter="handleMouseEnter"
@cell-mouse-leave="handleMouseOut"
@row-click="(row,column,event) => handleRowClick(row,column,event,'onclumn')"
highlight-current-row
>
// <script> 添加row-click方法,點(diǎn)擊列表行時(shí)觸發(fā)
handleRowClick(row,column,event, onclumn){
if(onclumn === 'onclumn') {
this.isonClunm = true;
}
row.flag = !row.flag;
this.$refs.multipleTable.toggleRowSelection(row, row.flag);
if(row.flag) {
this.selectSatitleLatLon(row);
} else {
this.unselectSatitleLatLon(row);
}
}添加完以上代碼后,點(diǎn)擊行,相應(yīng)行前面的復(fù)選框會(huì)跟著選中或取消
2.點(diǎn)擊復(fù)選框時(shí)觸發(fā)相應(yīng)行的變化(問(wèn)題關(guān)鍵在怎么獲取復(fù)選框選取的行)
當(dāng)點(diǎn)擊列表行時(shí),先觸發(fā)row-click事件,然后再觸發(fā) selection-change事件,點(diǎn)擊復(fù)選框時(shí)只觸發(fā)selection-change事件,想要判斷出點(diǎn)擊復(fù)選框時(shí)觸發(fā)的是哪一行時(shí),則需要對(duì)上一次選中的列表項(xiàng)和這次選中的列表項(xiàng)對(duì)比
// template部分同上
// <script>
handleSelectionChange(val, checkFlag) {
let that = this;
if(checkFlag === 'ischeckboxTick') {
that.ischeckboxTick = true
}
// 獲取當(dāng)前增加的或者減少的那條數(shù)據(jù)
let n = {};
let currentVal = [];
val.forEach(item => {
currentVal.push(item);
})
if(val.length > that.multipleSelection.length) {
// 增加時(shí)比之前不一樣的某個(gè)值
n = (val.filter(item => !that.multipleSelection.includes(item)))[0];
} else {
// 減少時(shí)與之前不一樣的值
let oldSelect = [];
that.multipleSelection.forEach(item => {
oldSelect.push(item)
})
if(val.length === 0) {
n = that.multipleSelection[0];
} else {
that.multipleSelection.forEach((item, index) => {
let delIndex = 0;
currentVal.forEach((item1, index1) => {
if(item.sname === item1.sname && item.startTime === item1.startTime && item.endTime === item1.endTime) {
delIndex = index;
currentVal.splice(index1, 1);
oldSelect.splice(delIndex, 1, '');
}
})
})
oldSelect.forEach(item => {
if(item !== '') {
n = item
}
})
}
}
that.multipleSelection = val; // 選中的所有項(xiàng)
that.isonClunm = false;
that.ischeckboxTick = false;
},到此這篇關(guān)于el-table 選中行與復(fù)選框相互聯(lián)動(dòng)的文章就介紹到這了,更多相關(guān)el-table 復(fù)選框聯(lián)動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 關(guān)于extjs treepanel復(fù)選框選中父節(jié)點(diǎn)與子節(jié)點(diǎn)的問(wèn)題
- vue基于element-ui的三級(jí)CheckBox復(fù)選框功能的實(shí)現(xiàn)代碼
- vue+element UI實(shí)現(xiàn)樹(shù)形表格帶復(fù)選框的示例代碼
- vuejs+element UI table表格中實(shí)現(xiàn)禁用部分復(fù)選框的方法
- element的el-tree多選樹(shù)(復(fù)選框)父子節(jié)點(diǎn)關(guān)聯(lián)不關(guān)聯(lián)
- Vue3+ElementUI 多選框中復(fù)選框和名字點(diǎn)擊方法效果分離方法
- 使用element組件table表格實(shí)現(xiàn)某條件下復(fù)選框無(wú)法勾選
- Vue el-table復(fù)選框全部勾選及勾選回顯功能實(shí)現(xiàn)
- el-table表格點(diǎn)擊該行任意位置時(shí)也勾選上其前面的復(fù)選框
相關(guān)文章
Vue3.0 響應(yīng)式系統(tǒng)源碼逐行分析講解
這篇文章主要介紹了Vue3.0 響應(yīng)式系統(tǒng)源碼逐行分析講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果示例代碼
這篇文章主要介紹了Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果示例代碼,Vue中為我們提供一些內(nèi)置組件和對(duì)應(yīng)的API來(lái)完成動(dòng)畫(huà),利用它們我們可以方便的實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果,需要的朋友可以參考下2022-08-08
vue實(shí)現(xiàn)離線地圖+leaflet+高德瓦片的詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)離線地圖+leaflet+高德瓦片的詳細(xì)代碼,Vue Leaflet是一種結(jié)合了Vue框架和Leaflet庫(kù)的前端技術(shù),用于展示和操作天地圖,需要的朋友可以參考下2023-10-10
vue/Element?UI實(shí)現(xiàn)Element?UI?el-dialog自由拖動(dòng)功能實(shí)現(xiàn)
最近工作上需要在el-dialog基礎(chǔ)上進(jìn)行些功能的改動(dòng),下面這篇文章主要給大家介紹了關(guān)于vue/Element?UI實(shí)現(xiàn)Element?UI?el-dialog自由拖動(dòng)功能實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-06-06
vue項(xiàng)目使用cdn加速減少webpack打包體積
通過(guò)壓縮代碼的手段可減小網(wǎng)絡(luò)傳輸?shù)拇笮?但實(shí)際上最影響用戶體驗(yàn)的還是網(wǎng)頁(yè)首次打開(kāi)時(shí)的加載等待,其根本原因是網(wǎng)絡(luò)傳輸過(guò)程耗時(shí)較大,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用cdn加速減少webpack打包體積的相關(guān)資料,需要的朋友可以參考下2022-08-08
vue backtop組件的實(shí)現(xiàn)完整代碼
這篇文章主要介紹了vue backtop組件的實(shí)現(xiàn)完整代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
完美解決axios跨域請(qǐng)求出錯(cuò)的問(wèn)題
下面小編就為大家分享一篇完美解決axios跨域請(qǐng)求出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
vue.js+Element實(shí)現(xiàn)表格里的增刪改查
本篇文章主要介紹了vue.js+Element實(shí)現(xiàn)增刪改查,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
vue移動(dòng)端設(shè)置全屏背景的項(xiàng)目實(shí)踐
本vue移動(dòng)端項(xiàng)目設(shè)置全屏背景,關(guān)鍵是要找對(duì)文件,然后添加background屬性即可,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08

