element-ui?table使用type='selection'復(fù)選框全禁用(全選禁用)詳解
問(wèn)題總結(jié):
當(dāng)條件數(shù)據(jù)全被禁用時(shí),全選按鈕也變成禁用的狀態(tài),而不是隱藏。有會(huì)做的小伙伴希望跟帖。謝謝!
復(fù)選框框架:
通過(guò)調(diào)用selectable方法,進(jìn)行禁用復(fù)選框。
<!-- 復(fù)選框禁用 -->
<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="編號(hào)" align="center" prop="studentId" />1.指定行禁用:
//復(fù)選框禁用
selectable(row,rowIndex) {
//索引是從0開(kāi)始,條件1是指只有第2行數(shù)據(jù)不被禁用
if(rowIndex == 1){
return true; //不禁用
}else {
return false; //禁用
}
}效果:

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

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

復(fù)選框全被禁用時(shí),全選按鈕將被隱藏
回避做法:
加了一個(gè):header-cell-class-name屬性,通過(guò)調(diào)用cellClass方法,當(dāng)全被禁用時(shí),全選按鈕將被隱藏。
<!-- 復(fù)選框禁用 -->
<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="編號(hào)" align="center" prop="studentId" />實(shí)現(xiàn):
定義一個(gè)參數(shù)DisableSelection:true,實(shí)現(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'
}
}
},復(fù)選框當(dāng)存在不禁用時(shí),重置DisableSelection屬性值:
//復(fù)選框禁用
selectable(row,rowIndex) {
//所有行都被禁用
if(rowIndex < 0){
this.DisableSelection = false && this.DisableSelection;
return true; //不禁用
}else {
return false; //禁用
}
},效果:全被禁用時(shí),全選按鈕被隱藏

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

問(wèn)題總結(jié):
當(dāng)條件數(shù)據(jù)全被禁用時(shí),全選按鈕也變成禁用的狀態(tài),而不是隱藏。
總結(jié)
到此這篇關(guān)于element-ui table使用type='selection'復(fù)選框全禁用(全選禁用)的文章就介紹到這了,更多相關(guān)element-ui table復(fù)選框全禁用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue.js實(shí)現(xiàn)數(shù)據(jù)庫(kù)的JSON數(shù)據(jù)輸出渲染到html頁(yè)面功能示例
這篇文章主要介紹了vue.js實(shí)現(xiàn)數(shù)據(jù)庫(kù)的JSON數(shù)據(jù)輸出渲染到html頁(yè)面功能,結(jié)合實(shí)例形式分析了vue.js針對(duì)本地json數(shù)據(jù)的讀取、遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式
這篇文章主要介紹了vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Vue中在新窗口打開(kāi)頁(yè)面及Vue-router的使用
這篇文章主要介紹了Vue中在新窗口打開(kāi)頁(yè)面 及 Vue-router的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
vue3實(shí)現(xiàn)多個(gè)表格同時(shí)滾動(dòng)并固定表頭
這篇文章主要給大家介紹了vue3中多個(gè)表格怎么同時(shí)滾動(dòng)并且固定表頭,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
解決keep-alive同一個(gè)組件不緩存問(wèn)題
這篇文章給大家介紹了如何解決keep-alive同一個(gè)組件不緩存問(wèn)題,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02

