Vue?elementui如何實現(xiàn)表格selection的默認勾選
需求
彈出一個選擇框,表格有勾選框,數(shù)據(jù)填充后,某些行設(shè)置默認勾選。
如下圖

數(shù)據(jù)填充后默認是不勾選的,如果要勾選某些行,通過toggleRowSelection
this.$refs.zttable.toggleRowSelection(this.ZHUANTIList[i]);
vue中dom和數(shù)據(jù)是綁定的,通過修改數(shù)據(jù)就能夠?qū)崿F(xiàn)對視圖的修改,但是視圖(dom)的更新是異步的,并不是修改了數(shù)據(jù),視圖會接著刷新。
此時就用到了$nextTick,延遲回調(diào),會將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。
簡單來說,$nextTick會在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="編號" 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之前視圖要先顯示,否則默認勾選將不起作用。
this.$nextTick(() => {
for (let i = 0; i < this.ZHUANTIList.length; i++) {
for (let j = 0; j <this.RoleZTList.length ; j++) {
//兩個數(shù)組做比對,選中的做勾選
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,這個必須放在nexttick外面
this.openZtScope = true;
this.title = "xxx";
//數(shù)據(jù)更新之后延遲回調(diào),根據(jù)最新數(shù)據(jù)動態(tài)改變dom,必須放到nextTick中
this.$nextTick(() => {
for (let i = 0; i < this.ZHUANTIList.length; i++) {
for (let j = 0; j <this.RoleZTList.length ; j++) {
//兩個數(shù)組做比對,選中的做勾選
if(this.ZHUANTIList[i].objectid==this.RoleZTList[j].zhuantiid)
{
this.$refs.zttable.toggleRowSelection(this.ZHUANTIList[i]);
}
}
}
});
});
},總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- vue之elementUi的el-select同時獲取value和label的三種方式
- vue3?element?plus?table?selection展示數(shù)據(jù),默認選中功能方式
- vue-treeselect(適配Vue3.2)及Element-plus的TreeSelect組件使用
- vue elementui select標簽監(jiān)聽change事件失效問題
- vue2結(jié)合element-ui實現(xiàn)TreeSelect樹選擇功能
- Vue中使用 ElementUi 的 el-select 實現(xiàn)全選功能(思路詳解)
- Vue Element如何獲取select選擇框選擇的value和label
相關(guān)文章
Vue.js 3.x 中的響應(yīng)式數(shù)據(jù)ref 與 reactive詳解
ref 和 reactive 是 Vue.js 3 中用于創(chuàng)建響應(yīng)式數(shù)據(jù)的兩個關(guān)鍵函數(shù),它們分別適用于不同類型的數(shù)據(jù),幫助我們更好地組織和管理組件的狀態(tài),這篇文章主要介紹了Vue.js 3.x 中的響應(yīng)式數(shù)據(jù):ref 與 reactive,需要的朋友可以參考下2024-01-01
Vue3+Vite項目按需自動導(dǎo)入配置以及一些常見問題修復(fù)
Vite是一種新型前端構(gòu)建工具,能夠顯著提升前端開發(fā)體驗,下面這篇文章主要給大家介紹了關(guān)于Vue3+Vite項目按需自動導(dǎo)入配置以及一些常見問題修復(fù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
vue 動態(tài)組件(component :is) 和 dom元素限制(is)用法說明
這篇文章主要介紹了vue 動態(tài)組件(component :is) 和 dom元素限制(is)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue項目部署的實現(xiàn)(阿里云+Nginx代理+PM2)
這篇文章主要介紹了Vue項目部署的實現(xiàn)(阿里云+Nginx代理+PM2),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
Vue監(jiān)聽iframe加載失敗事件的三種實現(xiàn)方法
iframe 是一個 HTML 標簽,作用是文檔中的文檔,或者浮動的框架(frame),iframe 元素會創(chuàng)建包含另外一個文檔的內(nèi)聯(lián)框架(即行內(nèi)框架),本文給大家介紹了Vue監(jiān)聽iframe加載失敗事件的幾種實現(xiàn)方法,需要的朋友可以參考下2025-06-06
Vue實現(xiàn)動態(tài)路由導(dǎo)航的示例
本文主要介紹了Vue實現(xiàn)動態(tài)路由導(dǎo)航的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

