element?table?點(diǎn)擊某一行中按鈕加載功能實(shí)現(xiàn)

在Element UI中,實(shí)現(xiàn)表格(element-table)中的這種功能通常涉及到數(shù)據(jù)處理和狀態(tài)管理。當(dāng)你點(diǎn)擊某一行的按鈕時(shí),其他行的按鈕需要?jiǎng)討B(tài)地切換為加載狀態(tài),這可以通過(guò)以下步驟實(shí)現(xiàn):
1.表格組件:使用el-table組件,并且為每一行的按鈕添加事件監(jiān)聽(tīng)器,如@click。
<el-table :data="items" @selection-change="handleSelectionChange">
<el-table-column type="index"></el-table-column>
<el-table-column prop="action" label="操作">
<template slot-scope="scope">
<el-button v-if="!isLoading[scope.$index]" @click="loadData(scope.$index)" :disabled="isLoading[scope.$index]">加載</el-button>
<!-- 加載中狀態(tài) -->
<span v-if="isLoading[scope.$index]">加載中...</span>
</template>
</el-table-column>
</el-table>2.狀態(tài)管理:維護(hù)一個(gè)數(shù)組isLoading,用于跟蹤每行的數(shù)據(jù)加載狀態(tài)。初始設(shè)置所有元素為false。
data() {
return {
items: [],
isLoading: Array.from({ length: this.items.length }, () => false),//此處可以放在接口中
};
},3.加載方法:在loadData方法中,當(dāng)點(diǎn)擊某一行的按鈕時(shí),更新對(duì)應(yīng)索引處的狀態(tài)為true,然后調(diào)用實(shí)際的數(shù)據(jù)加載API。同時(shí),可以設(shè)置一個(gè)異步操作來(lái)模擬加載過(guò)程,例如使用axios或Promise。
methods: {
loadData(index) {
this.isLoading[index] = true; // 設(shè)置為加載狀態(tài)
this.fetchData(index).then(() => {
// 調(diào)整狀態(tài)為已完成
this.isLoading[index] = false;
//如果沒(méi)有響應(yīng)式用下面的設(shè)置
//this.$set(this.isLoading, index, false);
}).catch(() => {
// 處理加載失敗
});
},
fetchData(index) {
return new Promise((resolve, reject) => {
// 模擬異步加載
setTimeout(() => {
// 假設(shè)這里是你獲取數(shù)據(jù)的邏輯
this.items[index].dataToLoad = '數(shù)據(jù)內(nèi)容';
resolve();
}, 2000); // 加載時(shí)間
});
},
},4.選擇改變事件:使用@selection-change事件監(jiān)聽(tīng)用戶選擇的行,確保只對(duì)選中的行執(zhí)行加載操作。
handleSelectionChange(selection) {
selection.forEach((index) => {
this.loadData(index);
});
},到此這篇關(guān)于element table 點(diǎn)擊某一行中按鈕加載功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)element table點(diǎn)擊按鈕加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
微信小程序?qū)崿F(xiàn)圖片上傳放大預(yù)覽刪除代碼
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片上傳放大預(yù)覽刪除代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
動(dòng)態(tài)加載JavaScript文件的兩種方法
第一種利用ajax方式,第二種是動(dòng)靜創(chuàng)建一個(gè)script標(biāo)簽,配置其src屬性,經(jīng)過(guò)把script標(biāo)簽拔出到頁(yè)面head來(lái)加載js,感樂(lè)趣的網(wǎng)友可以看下2016-04-04
layui form.render(''select'', ''test2'') 更新渲染的方法
今天小編就為大家分享一篇layui form.render('select', 'test2') 更新渲染的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
微信小程序非swiper組件實(shí)現(xiàn)的自定義偽3D輪播圖效果示例
這篇文章主要介紹了微信小程序非swiper組件實(shí)現(xiàn)的自定義偽3D輪播圖效果,涉及微信小程序事件響應(yīng)及元素屬性動(dòng)態(tài)操作實(shí)現(xiàn)輪播圖效果相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12
javascript制作網(wǎng)頁(yè)圖片上實(shí)現(xiàn)下雨效果
這里給大家分享的是一則使用javascript實(shí)現(xiàn)在網(wǎng)頁(yè)圖片上下雨的特效,效果非常炫酷,推薦給小伙伴們。2015-02-02
jQuery實(shí)現(xiàn)div浮動(dòng)層跟隨頁(yè)面滾動(dòng)效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)div浮動(dòng)層跟隨頁(yè)面滾動(dòng)效果,需要的朋友可以參考下2014-02-02
微信小程序使用scroll-view標(biāo)簽實(shí)現(xiàn)自動(dòng)滑動(dòng)到底部功能的實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了微信小程序使用scroll-view標(biāo)簽實(shí)現(xiàn)自動(dòng)滑動(dòng)到底部功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-11-11

