vue+elementUI實(shí)現(xiàn)右擊指定表格列的單元格顯示選擇框功能
一、template代碼如下:
1、表格單元格中添加的代碼:
<div v-if="item.label === '鐵心級(jí)號(hào)'" @contextmenu.prevent="openRightMenu($event, item, scope.$index)" style="height: 38px; line-height: 38px;">
<span style="display: inline-block; width: 100%; height: 100%;">{{scope.row[item.prop] }}</span>
</div>2、右鍵時(shí)彈出的選擇框代碼
<div class="u-contextmenu" v-show="rightClickObj.visible" :style="{ left: rightClickObj.left + 'px', top: rightClickObj.top + 'px'}">
<p>選擇鐵心級(jí)號(hào)<i class="el-icon-close" style="float: right; cursor: pointer;" @click="rightClickObj.visible = false"></i></p>
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全選</el-checkbox>
<el-checkbox-group v-model="checkList" @change="handleCheckedChange">
<el-checkbox v-for="(item, index) in coreLevelNumArr" :key="index" :label="item" ></el-checkbox>
</el-checkbox-group>
<div style="float: right;">
<!-- <el-button type="primary" @click="showLevel">顯示</el-button> -->
<el-button type="primary" @click="hideLevel">隱藏</el-button>
</div>
</div>js代碼如下:
// 鐵心級(jí)號(hào)選擇時(shí)
handleCheckedChange: function (val) {
let checkedCount = val.length;
this.checkAll = checkedCount === this.coreLevelNumArr.length; //全選是否勾選上
this.isIndeterminate = checkedCount > 0 && checkedCount < this.coreLevelNumArr.length;
},
// 鐵心級(jí)號(hào)全選觸發(fā)的事件
handleCheckAllChange: function (val) {
this.checkList = val ? this.coreLevelNumArr : []; // 全選和全不選的賦值
this.isIndeterminate = false;
},
showLevel:function(){
this.rightClickObj.visible = false;
this.hideLevelList = this.coreLevelNumArr.filter(x => this.checkList.every(y => y !== x));
},
// 隱藏選中級(jí)號(hào)的行
hideLevel:function(){
this.rightClickObj.visible = false;
this.hideLevelList = this.checkList;
// 更改表格中的數(shù)據(jù)
this.updateTableData.forEach((item) => {
if(this.hideLevelList.indexOf(item.level_no) > -1){//判斷當(dāng)前行的級(jí)號(hào)是否在隱藏的級(jí)號(hào)數(shù)組中
item.isShow = false;
}else{
item.isShow = true;
}
});
console.log(this.updateTableData);
},
//每一行的回調(diào)樣式方法
rowClassName: function ({ row }) {
if(this.hideLevelList.indexOf(row.level_no) > -1){
return "hideRow"; //如果當(dāng)前行的級(jí)號(hào)在隱藏級(jí)號(hào)數(shù)組中將返回隱藏類名
}else{
return "";
}
},
/**
* 右鍵鐵心級(jí)號(hào)顯示選擇菜單
* @param {Number} index 表格行下標(biāo)
*/
openRightMenu(event,item,index){
this.rightClickObj.left = 51;
this.rightClickObj.top = 870 + (index+1)*40;
this.rightClickObj.visible = true
},到此這篇關(guān)于vue+elementUI實(shí)現(xiàn)右擊指定表格列的單元格顯示選擇框的文章就介紹到這了,更多相關(guān)vue elementUI選擇框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用html2canvas和jspdf將html轉(zhuǎn)成pdf
在前端開(kāi)發(fā)中, html轉(zhuǎn)pdf是最常見(jiàn)的需求,下面這篇文章主要給大家介紹了關(guān)于vue如何使用html2canvas和jspdf將html轉(zhuǎn)成pdf的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
解決vue一個(gè)頁(yè)面中復(fù)用同一個(gè)echarts組件的問(wèn)題
這篇文章主要介紹了解決vue一個(gè)頁(yè)面中復(fù)用同一個(gè)echarts組件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
IDEA創(chuàng)建Vue項(xiàng)目的兩種方式總結(jié)
這篇文章主要介紹了IDEA創(chuàng)建Vue項(xiàng)目的兩種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-04-04
vue同一個(gè)瀏覽器登錄不同賬號(hào)數(shù)據(jù)覆蓋問(wèn)題解決方案
同一個(gè)瀏覽器登錄不同賬號(hào)session一致,這就導(dǎo)致后面登錄的用戶數(shù)據(jù)會(huì)把前面登錄的用戶數(shù)據(jù)覆蓋掉,這個(gè)問(wèn)題很常見(jiàn),當(dāng)前我這邊解決的就是同一個(gè)瀏覽器不同窗口只能登錄一個(gè)用戶,對(duì)vue同一個(gè)瀏覽器登錄不同賬號(hào)數(shù)據(jù)覆蓋問(wèn)題解決方法感興趣的朋友一起看看吧2024-01-01
解決vue3?defineProps?引入定義的接口報(bào)錯(cuò)
這篇文章主要為大家介紹了解決vue3?defineProps?引入定義的接口報(bào)錯(cuò)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
el-menu如何根據(jù)多層樹(shù)形結(jié)構(gòu)遞歸遍歷展示菜單欄
這篇文章主要介紹了el-menu根據(jù)多層樹(shù)形結(jié)構(gòu)遞歸遍歷展示菜單欄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07
vue中動(dòng)態(tài)渲染數(shù)據(jù)時(shí)使用$refs無(wú)效的解決
這篇文章主要介紹了vue中動(dòng)態(tài)渲染數(shù)據(jù)時(shí)使用$refs無(wú)效的解決方案,具有很好的參考價(jià)值。希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Vue實(shí)現(xiàn)根據(jù)hash高亮選項(xiàng)卡
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)根據(jù)hash高亮選項(xiàng)卡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05

