element-ui?table使用type='selection'復選框全禁用(全選禁用)詳解
問題總結(jié):
當條件數(shù)據(jù)全被禁用時,全選按鈕也變成禁用的狀態(tài),而不是隱藏。有會做的小伙伴希望跟帖。謝謝!
復選框框架:
通過調(diào)用selectable方法,進行禁用復選框。
<!-- 復選框禁用 -->
<el-table
v-loading="loading"
:data="studentList"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="selectable"
/>
<el-table-column label="編號" align="center" prop="studentId" />1.指定行禁用:
//復選框禁用
selectable(row,rowIndex) {
//索引是從0開始,條件1是指只有第2行數(shù)據(jù)不被禁用
if(rowIndex == 1){
return true; //不禁用
}else {
return false; //禁用
}
}效果:

2.條件禁用:
//復選框禁用
selectable(row,rowIndex) {
//只有姓名【zhang】不被禁用
if (row.studentName == "zhang") {
return true; //不禁用
}else {
return false; //禁用
}
}效果:

問題點:當條件數(shù)據(jù)全被禁用時,全選按鈕不是禁用的狀態(tài)。
//復選框全部禁用
selectable(row,rowIndex) {
return false;
}效果:

復選框全被禁用時,全選按鈕將被隱藏
回避做法:
加了一個:header-cell-class-name屬性,通過調(diào)用cellClass方法,當全被禁用時,全選按鈕將被隱藏。
<!-- 復選框禁用 -->
<el-table
v-loading="loading"
:data="studentList"
:header-cell-class-name="cellClass"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="selectable"
/>
<el-table-column label="編號" align="center" prop="studentId" />實現(xiàn):
定義一個參數(shù)DisableSelection:true,實現(xiàn)全選禁用。
export default {
name: "Student",
data() {
return {
// 全選按鈕隱藏
DisableSelection:true,
}
}
}追加全選按鈕的隱藏樣式:
<style>
.el-table .DisableSelection .cell .el-checkbox__inner{
display: none;
position: relative;
}
.el-table .DisableSelection .cell:before{
content: "";
position: absolute;
}
</style>追加全選按鈕隱藏函數(shù)cellClass,啟用隱藏樣式:
//全選按鈕隱藏
cellClass(row){
row.length
console.log(row)
if(this.DisableSelection){
if (row.columnIndex === 0) {
return 'DisableSelection'
}
}
},復選框當存在不禁用時,重置DisableSelection屬性值:
//復選框禁用
selectable(row,rowIndex) {
//所有行都被禁用
if(rowIndex < 0){
this.DisableSelection = false && this.DisableSelection;
return true; //不禁用
}else {
return false; //禁用
}
},效果:全被禁用時,全選按鈕被隱藏

存在可選按鈕場合:前兩行可選。
//復選框禁用
selectable(row,rowIndex) {
//前兩行可選的狀態(tài)
if(rowIndex < 2){
this.DisableSelection = false && this.DisableSelection;
return true; //不禁用
}else {
return false; //禁用
}
},當存在可選時,全選按鈕被表示出來

問題總結(jié):
當條件數(shù)據(jù)全被禁用時,全選按鈕也變成禁用的狀態(tài),而不是隱藏。
總結(jié)
到此這篇關(guān)于element-ui table使用type='selection'復選框全禁用(全選禁用)的文章就介紹到這了,更多相關(guān)element-ui table復選框全禁用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue.js實現(xiàn)數(shù)據(jù)庫的JSON數(shù)據(jù)輸出渲染到html頁面功能示例
這篇文章主要介紹了vue.js實現(xiàn)數(shù)據(jù)庫的JSON數(shù)據(jù)輸出渲染到html頁面功能,結(jié)合實例形式分析了vue.js針對本地json數(shù)據(jù)的讀取、遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
vue結(jié)合el-dialog封裝自己的confirm二次確認彈窗方式
這篇文章主要介紹了vue結(jié)合el-dialog封裝自己的confirm二次確認彈窗方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08

