Vue?elementui如何實(shí)現(xiàn)表格selection的默認(rèn)勾選
需求
彈出一個(gè)選擇框,表格有勾選框,數(shù)據(jù)填充后,某些行設(shè)置默認(rèn)勾選。
如下圖
數(shù)據(jù)填充后默認(rèn)是不勾選的,如果要勾選某些行,通過(guò)toggleRowSelection
this.$refs.zttable.toggleRowSelection(this.ZHUANTIList[i]);
vue中dom和數(shù)據(jù)是綁定的,通過(guò)修改數(shù)據(jù)就能夠?qū)崿F(xiàn)對(duì)視圖的修改,但是視圖(dom)的更新是異步的,并不是修改了數(shù)據(jù),視圖會(huì)接著刷新。
此時(shí)就用到了$nextTick,延遲回調(diào),會(huì)將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。
簡(jiǎn)單來(lái)說(shuō),$nextTick會(huì)在dom更新完成后再執(zhí)行。
<el-dialog :title="title" :visible.sync="openZtScope" width="600px" append-to-body> <el-table ref="zttable" :data="ZHUANTIList" @selection-change="handleZTSelectionChange" style="width:100%;"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="編號(hào)" align="center" prop="objectid" /> <el-table-column label="名稱" align="center" prop="name" /> </el-table> <pagination v-show="zttotal>0" :total="zttotal" :page.sync="queryParamsZT.pageNum" :limit.sync="queryParamsZT.pageSize" @pagination="getZTList" /> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitZtScope">確 定</el-button> <el-button @click="cancelZtScope">取 消</el-button> </div> </el-dialog>
設(shè)置勾選的操作,必須放到nextTick中,等數(shù)據(jù)填充完成,視圖(dom)相應(yīng)更新完成后。
this.$nextTick可以放到具體的方法中
例如,本例中放到數(shù)據(jù)填充方法后面,注意調(diào)用this.$nextTick之前視圖要先顯示,否則默認(rèn)勾選將不起作用。
this.$nextTick(() => { for (let i = 0; i < this.ZHUANTIList.length; i++) { for (let j = 0; j <this.RoleZTList.length ; j++) { //兩個(gè)數(shù)組做比對(duì),選中的做勾選 if(this.ZHUANTIList[i].objectid==this.RoleZTList[j].zhuantiid) { this.$refs.zttable.toggleRowSelection(this.ZHUANTIList[i]); } } } });
getZTList() { listZHUANTI(this.queryParamsZT).then(response => { this.ZHUANTIList = response.rows; this.zttotal = response.total; //獲取當(dāng)前role的選中的專題 this.getRoleZTList(this.curRoleId); }); }, getRoleZTList(roleId){ listRoleZhuanTi({roleid:roleId}).then(response =>{ debugger; this.RoleZTList = response.rows; //先顯示再改dom,這個(gè)必須放在nexttick外面 this.openZtScope = true; this.title = "xxx"; //數(shù)據(jù)更新之后延遲回調(diào),根據(jù)最新數(shù)據(jù)動(dòng)態(tài)改變dom,必須放到nextTick中 this.$nextTick(() => { for (let i = 0; i < this.ZHUANTIList.length; i++) { for (let j = 0; j <this.RoleZTList.length ; j++) { //兩個(gè)數(shù)組做比對(duì),選中的做勾選 if(this.ZHUANTIList[i].objectid==this.RoleZTList[j].zhuantiid) { this.$refs.zttable.toggleRowSelection(this.ZHUANTIList[i]); } } } }); }); },
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue之elementUi的el-select同時(shí)獲取value和label的三種方式
- vue3?element?plus?table?selection展示數(shù)據(jù),默認(rèn)選中功能方式
- vue-treeselect(適配Vue3.2)及Element-plus的TreeSelect組件使用
- vue elementui select標(biāo)簽監(jiān)聽change事件失效問題
- vue2結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹選擇功能
- Vue中使用 ElementUi 的 el-select 實(shí)現(xiàn)全選功能(思路詳解)
- Vue Element如何獲取select選擇框選擇的value和label
相關(guān)文章
基于Vue實(shí)現(xiàn)頁(yè)面切換左右滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于Vue實(shí)現(xiàn)頁(yè)面切換左右滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08在Vue3中實(shí)現(xiàn)子組件向父組件傳遞數(shù)據(jù)的代碼示例
Vue3作為目前最熱門的前端框架之一,以其輕量化、易用性及性能優(yōu)勢(shì)吸引了大量開發(fā)者,在開發(fā)過(guò)程中,不可避免地需要在組件之間傳遞數(shù)據(jù),本文將詳細(xì)講解在Vue3中如何實(shí)現(xiàn)子組件向父組件傳遞數(shù)據(jù),并通過(guò)具體示例代碼使概念更加清晰2024-07-07Vue監(jiān)控路由與路由參數(shù), 刷新當(dāng)前頁(yè)面數(shù)據(jù)的方法匯總
這篇文章主要介紹了Vue監(jiān)控路由與路由參數(shù), 刷新當(dāng)前頁(yè)面數(shù)據(jù)的幾種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10Vue中foreach數(shù)組與js中遍歷數(shù)組的寫法說(shuō)明
這篇文章主要介紹了Vue中foreach數(shù)組與js中遍歷數(shù)組的寫法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06vue3+vite項(xiàng)目配置ESlint、pritter插件過(guò)程
這篇文章主要介紹了vue3+vite項(xiàng)目配置ESlint、pritter插件過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08vue-router中的hash和history兩種模式的區(qū)別
大家都知道vue-router有兩種模式,hash模式和history模式,這里來(lái)談?wù)剉ue-router中的hash和history兩種模式的區(qū)別。感興趣的朋友一起看看吧2018-07-07vue?路由切換過(guò)渡動(dòng)效滑入滑出效果的實(shí)例代碼
在支付寶賬單頁(yè)面有這樣一個(gè)特效切換過(guò)渡動(dòng)效滑入滑出效果,非常方便實(shí)用,那么這個(gè)功能如何實(shí)現(xiàn)的呢?下面小編通過(guò)vue實(shí)現(xiàn)路由切換過(guò)渡動(dòng)效滑入滑出效果,感興趣的朋友一起看看吧2022-03-03