<el-table-column> 当type=“selection“时,在表头复选框后面加上“全选”两个字。

可以通过在 <el-table> 中设置 show-header 属性为 true,然后在 <el-table-column> 中设置 type="selection",再通过在 <el-table-column> 中添加一个自定义的 header 插槽来实现在表头复选框后面加上“全选”两个字。

具体实现代码如下:

<template>
  <el-table :data="tableData" show-header>
    <el-table-column type="selection" align="center" width="55">
      <template slot="header">
        <div>全选</div>
      </template>
    </el-table-column>
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

上面的代码中,我们在 &lt;el-table> 上设置了 show-header 属性为 true,这个属性的作用是显示表头,然后在 &lt;el-table-column> 中设置 type="selection" 来表示这一列是用来展示复选框的列,通过设置 align="center"width="55" 来控制复选框的样式和宽度,最后在 &lt;el-table-column> 中添加一个自定义的 header 插槽来显示“全选”文本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在这段代码中,我们可以为每个el-table添加一个选中状态,然后在全选按钮选中,将所有el-table的选中状态都设置为true,并且将每一行数据的选中状态设置为true;在全选按钮取消选中,将所有el-table的选中状态都设置为false,并且将每一行数据的选中状态设置为false。具体的实现如下: ``` <template> <div> <el-checkbox v-model="isAllSelected" @change="handleSelectAll">全选</el-checkbox> <div v-for="(tableData, index) in tableList" :key="index"> <el-checkbox v-model="tableSelected[index]" @change="handleTableSelect(index)"> {{ tableData.tableName }} </el-checkbox> <el-table :data="tableData.list"> <el-table-column type="selection"></el-table-column> <el-table-column label="名称" align="center" prop="name" /> <el-table-column label="code" align="center" prop="code" /> </el-table> </div> </div> </template> <script> export default { data() { return { isAllSelected: false, tableSelected: [], tableList: [ { tableName: "Table1", list: [ { name: "A", code: "A1" }, { name: "B", code: "B1" } ] }, { tableName: "Table2", list: [ { name: "C", code: "C1" }, { name: "D", code: "D1" } ] } ] }; }, methods: { handleSelectAll(val) { this.isAllSelected = val; if (val) { this.tableSelected = this.tableList.map(() => true); this.tableList.forEach(tableData => { tableData.list.forEach(item => { item.isSelected = true; }); }); } else { this.tableSelected = this.tableList.map(() => false); this.tableList.forEach(tableData => { tableData.list.forEach(item => { item.isSelected = false; }); }); } }, handleTableSelect(index) { this.tableSelected[index] = !this.tableSelected[index]; this.tableList[index].list.forEach(item => { item.isSelected = this.tableSelected[index]; }); this.isAllSelected = this.tableSelected.every(val => val); } }, created() { this.tableSelected = this.tableList.map(() => false); this.tableList.forEach(tableData => { tableData.list.forEach(item => { item.isSelected = false; }); }); } }; </script> ``` 在上面的代码中,我们为每个el-table添加了一个tableSelected选中状态数组,并在handleSelectAll方法中更新了它们的状态。同,我们也为每一行数据添加了一个isSelected选中状态,并在handleTableSelect方法中更新了它们的状态。最后,我们在created钩子中初始化了所有的选中状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值