根据你提供的代码,如果两个tab切换使用的是同一个table列表,可以通过添加class并设置 display: none
来控制样式。
第一种方法:
利用 table 属性里面的cell-class-name
和 header-cell-class-name
属性
<el-table v-loading="loading" ref="multipleTable" :data="tableData"
:cell-class-name="cellClass"
:header-cell-class-name="cellClass">
<el-table-column type="selection" label-class-name="table-selection"/>
</el-table>
methods: {
cellClass(row){
if (this.activeName==='0' && row.columnIndex === 0) {
return 'table-selection'
}
}
}
<style>
.el-table {
.el-table-column--selection.table-selection {
display:none;
}
}
</style>
第二种方法:
使用table的cell-style
和header-cell-style
属性
<el-table v-loading="loading" ref="multipleTable" :data="tableData"
:cell-style="cellStyle"
:header-cell-style="cellStyle">
<el-table-column type="selection" label-class-name="table-selection"/>
</el-table>
methods: {
cellStyle({ row, column, rowIndex, columnIndex }){
if (this.activeName==='0' && column.type === 'selection') {
return { // 返回对象
display: 'none'
}
}
}
}
第三种方法:
checkbox不隐藏,disabled属性设为true不给选
<el-table v-loading="loading" ref="multipleTable" :data="tableData">
<el-table-column type="selection" width="55" :selectable="disabledCheckBox" /> <!-- 注:selectable的类型必须是function -->
</el-table>
methods: {
disabledCheckBox(row, index) {
if (this.activeName==='0') {
return true
} else {
return false
}
}
}
第四种:
每个tab页分别使用单独的table
<el-tabs v-model="activeName" @tab-click="handleFilter">
<el-tab-pane label="待处理" name="0">
<el-table v-loading="loading0" ref="multipleTable0" :data="tableData0">
<el-table-column type="selection"/>
</el-table>
</el-tab-pane>
<el-tab-pane label="已处理" name="1">
<el-table v-loading="loading1" ref="multipleTable1" :data="tableData1">
...
</el-table>
</el-tab-pane>
</el-tabs>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…