背景:有些需求,做修改和查看,查看的时候就禁用所有的checkbox,修改的时候就放开对checkbox的禁用

正常的复选表单

目标表单:通过显示和禁用按钮达到两种状态之间的切换,类比实际开发中遇到的需求

<el-button @click="operateType(2)">显示</el-button>
<el-button @click="operateType(3)">禁用</el-button>
operateType(type) {
  this.tableType = type;
}

首先,分析,分为两大步实现,把表头和表格分开实现

header,主要是:header-cell-class-name="cellClass"

<el-table
   ref="multipleTable"
   :data="tableData2"
   :header-cell-class-name="cellClass"
>
</el-table>

 cellClass(row) {
   if (this.tableType === 2 && row.columnIndex === 0) {
     return "ShowSelection";
   } else if (this.tableType === 3 && row.columnIndex === 0) {
     return "DisableSelection";
   }
 },

.el-table /deep/ .DisableSelection > .cell {
  display: none;
}
.el-table /deep/ .ShowSelection > .cell {
  display: block;
}

body部分可直接参考官网:Element - The world's most popular Vue UI framework

<el-table-column type="selection" :selectable="selectableFunc" width="55"></el-table-column>

selectableFunc() {
   return this.tableType === 2;
},

以上步骤就能实现两种状态之间的切换

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐