【多选框、表格全选】element el-checkbox、el-table

vue+element UI 使用el-cascader实现全选功能 vue+element UI 使用el-cascader实现全选、半选、不选等功能 阅读详情

话不多说 先看效果:
多选框:
请添加图片描述
表格全选:
请添加图片描述

<template>
  <div>
        <div class="titleLabel">
          <div class="lineStyle"></div>
          统计部门
        </div>
        <div style="display: flex">
          <el-checkbox
            style="margin-right: 20px"
            :indeterminate="isIndeterminate"
            v-model="departmentCheckAll"
            @change="handleCheckAllChange"
            >全选</el-checkbox
          >
          <el-checkbox-group
            v-model="selectedItems"
            @change="handleCheck(selectedItems)"
          >
            <el-checkbox
              v-for="item in department"
              :key="item.id"
              :label="item.id"
              >{{ item.name }}</el-checkbox
            >
          </el-checkbox-group>
        </div>
      <div>
          <el-tabs v-model="form.pageTab" @tab-click="changeTab">
            <el-tab-pane name="1">
                <div slot="label">已关联({{sumAll['rel']}})</div>
            </el-tab-pane>
            <el-tab-pane name="0">
                <div slot="label">未关联({{sumAll['notRel']}})</div>
            </el-tab-pane>
        </el-tabs>
        <el-table :data="tableData" stripe border :header-cell-style="{'text-align':'center'}" size="small" ref="table"
                  @selection-change="handleChange" :row-key="row=>row.id">
            <el-table-column type="selection" :reserve-selection="true" :selectable="selectableAll" align="center"></el-table-column>
            <el-table-column label="单位名称" align="center" prop="name"></el-table-column>
            <el-table-column label="统一社会信用代码" align="center"></el-table-column>
        </el-table>
        <br>
        <!-- 分页-->
        <el-form :inline="true">
            <el-form-item >
                <div v-if="where">
                    <span v-if="!selectAll">
                    已选:{{ relIds.length }}/{{ total }}
                    </span>
                    <span v-else> 已选:{{ total }}/{{ total }} </span>
                    <span>
                        <el-button
                            style="margin-left: 10px"
                            type="primary"
                            v-if="!selectAll"
                            plain
                            size="small"
                            @click="all()"
                            >全选所有
                        </el-button>
                        <el-button
                            style="margin-left: 10px"
                            type="primary"
                            v-else
                            plain
                            size="small"
                            @click="all()"
                            >取消全选
                        </el-button>
                    </span>
                </div>
            </el-form-item>
            <el-form-item style="float: right">
                <!-- 分页-->
                <el-pagination
                    align="right"
                    background
                    layout="prev, pager, next,total"
                    :current-page.sync="form['pageNum']"
                    :page-size.sync="form['pageSize']"
                    @current-change="jump"
                    @size-change="resize"
                    :total="total"
                ></el-pagination>
            </el-form-item>
        </el-form>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import { departmentList } from "@/api/assets/assetArchives";
export default {
  data() {
    return {
      form: {},
      dialogVisible: false,
      isIndeterminate: false,
      department: [], //部门
      departmentCheckAll: false,
      selectedItems: [],

      relIds:[],
      total:0,
      selectAll:false, //表格是否全选
    };
  },
  methods: {
		    show() {
		      this.departmentList();
		      this.dialogVisible = true;
		    },
		    departmentList() {
		      departmentList({ type: "INNER", pagination: false }).then((data) => {
		        this.department = data["items"];
		        // this.selectedItems = [132,51] //回显选中的部门(到时候应该是把check为true的id筛选出来)
		      });
		    },
		    handleCheck(value) {
		      let checkedCount = value.length;
		      this.departmentCheckAll = checkedCount === this.department.length;
		      this.isIndeterminate =
		        checkedCount > 0 && checkedCount < this.department.length;
		    },
		    handleCheckAllChange(val) {
		      this.selectedItems = val
		        ? this.department.map((item) => {
		            return item.id;
		          })
		        : [];
		      this.isIndeterminate = false;
		    },
                //选择
            handleChange(val) {
                let arr = []
                val.map(item => {
                    arr.push(item.id)
                })
                this.relIds = arr;
            },
   
            //全选
            all() {
                let title = this.selectAll ? "取消默认全选" : "默认全选";
                this.$confirm("此操作将" + title + "所有,是否确认继续?", "提示", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning",
                }).then(() => {
                    // 全选表格中的所有数据
                    this.selectAll = !this.selectAll;
                    if (this.selectAll) this.toggleSelection(this.tableData);
                    else this.toggleSelection();
                });
            },
            //点击全选时  默认不能进行修改
            selectableAll() {
                return !this.selectAll;
            },
            //选中状态标志
            toggleSelection(rows) {
                if (this.relIds) this.$refs.table.clearSelection();
                if (rows) {
                    rows.forEach((row) => {
                    this.$refs.table.toggleRowSelection(row);
                    });
                } else {
                    this.$refs.table.clearSelection();
                }
            },
            //分页情况
            jump(e) {
                this.form.pageNum = e;
                this.list();
            },
            resize(e) {
                this.form.pageSize = e;
                this.list();
            },
  },
};
</script>
Vue中为ElementUI的表格多选框做外部全选按钮 Vue中为ElementUI的表格多选框做外部全选按钮 由于在某些情况下,会使用模板生成表格,所以在column模板中type = selection时,不像在el-select-group中可以有明确的code值可以判断、选取,所以平时要用ref = multipleTable来保证能取到模板生成的表格。 //生成表格的模板代码 <div class="table taskcontent"... 阅读详情

相关推荐

ElementuUI el-table 树型表格 checkbox多选框选择逻辑

ElementuUI el-table 树型表格 checkbox多选框选择逻辑

caozhigang0724的博客 4579

element-ui checkbox 组件 全选功能

indeterminate属性用以表示 checkbox 的不确定状态,一般用于实现全选的效果 <divclass="flex-row"> <el-checkboxclass="all":indeterminate="isIndeterminate"v-model="checkAll"@change="handleCheckAllChange">全选</el-checkbox> <el-checkbo...

qq_36437172的博客 5172

Vue+Elenment笔记(一):el-table使用多选框与树形数据写一个有半选全选功能的表格。

el-table使用多选框与树形数据写一个有半选全选功能的表格

liluo945的博客 2725

【element-ui】使用el-checkbox完成el-table表格数据的全选操作

使用el-checkbox完成el-table表格数据的全选、单选、反选操作

weixin_48847755的博客 8477

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+

vue3 - elementPlus表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消,children当子级全选中,父级自动勾选

vue3,Element Plus,el-table树状表格多选,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,表格checkbox复选框的全选反选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,有分

✅ 精选推荐文章 1万+

[element-ui]在el-table中使用el-checkbox实现勾选功能

利用el-checkbox模拟表格自带的勾选事件

xxuxioxx的博客 1万+

UE 顶点动画工具 (VAT)

导入模型需要勾选全精度UV。

iesoxj的博客 1642

Vue ElementUI 实现 Table 多列数据 checkBox选择框

日期选择器 日期范围选择器 设置默认时间值 注意事项 value-format=“yyyy-MM-dd hh:mm:ss” 格式化日期选择器 value值格式 :default-time="[‘00:00:00’, ‘23:59:59’]" 实例: <el-date-picker v-model="searchForm.date" value-format="yyyy-MM-dd...

qq_23565535的博客 2万+

SpringBoot文件上传实战:MultipartFile重复读取的3种方法(附避坑指南)

本文详细介绍了SpringBoot中处理MultipartFile重复读取的3种实用方法,包括字节数组缓存法、临时文件法和流重置法,并提供了避坑指南和性能优化技巧。特别适合需要多次读取上传文件内容的开发者,帮助解决InputStream流只能读取一次的问题。

weixin_28710999的博客 398

C++五子棋人机对战

使用C++,开发五子棋人机对战,快速提升C++项目开发能力。

程序员Rock的博客 5万+

element表格取消全选_如何去掉element-ui中Checkbox多选框的全选按钮并变换成汉字显示...

第一次使用element-UI组件,所以一路是遇到问题解决问题,解决一个问题又遇到一个问题,所以每次解决完问题,我都会记录下笔记,比如element-ui 的table多选怎么把全选功能的checkbox换成汉字,没换之前如下图:而我是想改成这样的:在解决这个问题之前请大家自己想想如果你遇到这个问题如何解决?介绍一下相关知识css关于/deep/的解释和用法/deep/深度选择器用于将全局的组件或...

weixin_39732825的博客 2074

千兆以太网 PCB 设计实战:4层板 100Ω 差分对布线,EMI 降低 6dB 实测

本文详细解析了千兆以太网 PCB 设计中的关键技术与实战经验,重点介绍了4层板上100Ω差分对的优化布线方法,通过实测数据展示了EMI降低6dB的有效方案。内容涵盖层叠设计、阻抗计算、布线技巧及EMI抑制措施,为硬件工程师提供了一套完整的高速电路设计解决方案。

weixin_29175469的博客 425

elementui中el-table实现翻页、全选

问题描述 在最近的一个项目中,我需要实现表格的翻页,并且还要实现全选、多选功能 众所周知,el-checkbox默认样式不好改,所以在这里我没有用elementui中的多选框,用的是<input type="checkbox">,这样样式是好修改了,但是实现全选就得靠手写了 解决思路 第一步很简单,在<el-table>中加入多选框 <el-table-column width="75"> //表头的全选框 <template slot="header" sl

baidu_39084727的博客 3064

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7373

三极管自激升压电路设计 - 从参数计算到实践验证

本文详细解析了三极管自激升压电路(焦耳小偷电路)的设计原理与实践方法。通过剖析自激振荡机制与三极管电流关系,指导读者完成从核心参数计算、关键元件选型到面包板搭建调试的全过程。文章重点阐述了如何利用电感、三极管等基础元件实现低压直流到高压的转换,是理解开关电源与电磁能量转换的绝佳实践项目。

weixin_29250573的博客 367

vue-element 多选框实现单选

多选框实现单选,取消全选,取消选中 <el-table ref="tables" :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)" border size="mini" :header-cell-style="{'text-align':'center'}" :height="tableHei...

soul_rules的博客 3067

国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核

从板子整体角度来看,这是一款国产化程度很高的板子,从主控FPGA,到JTAG芯片,存储芯片、电源芯片等,都是使用的国产半导体公司的产品。板子整体尺寸也比较迷你,属于小而美类型的,可以认为是一款FPGA核心板,当然也预留了排针接口,给用户足够的扩展空间。对于想了解高云小蜜蜂SoC软硬件开发,以及对云源软件、MCU开发环境做个深度评测来说足够了。JTAG调试器固件可以增加虚拟串口功能,对于板子本来来说面积不会有改动,只需要添加两根信号线即可。

whik1194的博客 6396

Vue+element --- el-table表格分页后做全选功能样式显示 跨页全选 分页全选 复制使用

一、全选所有的情况下 1.在表格最上方手写一个 多选框用于做全选所有的操作; 2.表格中的row-key和reserve-selection配合使用,使表格的 “选择状态具有记忆性” 3.selection-change表示表格的 “选择状态发生改变时” 触发的事件 4.select表示手动操作 选择或不选择某一个数据 触发的函数 5.data中checkList数组可以用于当不是 全选所有状态下的 个别选择项 6.data中selectOff数组可以用于当是 全选所有状态下的 个别 未选择项

weixin_54129994的博客 3140

3D Slicer学习记录(4)-PLUSapp连接双目相机Intel Realsense

plusapp是基于openIGTLink协议的免费的开源库和应用程序API接口,用于数据采集、预处理、校准和实时流成像、位置跟踪和其他传感器数据。这里以intel realsense双目相机为例详细的演示整个图像流导入到3D Slicer的流程。

weixin_39090239的博客 1346

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

element开发-Table表格多选表头添加文字

要实现在table多选框checkbox后添加文字,效果如下: <el-table-column type="selection"></el-table-column> /deep/ .el-table__header-wrapper .el-checkbox__input::after { content: '全选'; position: absolute; margin-left: 5px; } ...

转身 3986

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

element ui el-table 多选 表头多选框替换文字

element ui el-table 多选 表头多选框替换文字 .el-table /deep/.DisabledSelection .cell .el-checkbox__inner { // margin-left: -30px; display: none; position: relative; } .el-table /deep/.DisabledSelection .cell:before { content: '多选'; position: absolute; right:

UP 1613

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

vue element 用table嵌套多选框checkbox

vue前端ui为element,在table的每一行中嵌套checkbox,并实现每一行的选择与多选框的对应,尽量在设计上完善、功能上完备一些,方便以后改造成各种其他复杂的功能。

本博客暂停使用 8528

element在table中使用多选框

先贴效果图 先说下怎么实现 <template v-for="(item, index) in makeProcess"> <vd-table-column width="120" align="center" > <template slot-scope="scope" slot="header" >

走走停停 858

Element表格分页数据选择+全选所有完善批量操作-方案二

列表中实现全选所有数据后(上一篇文章),将思路讲解给同事听,他提出一个问题:全选所有后,取消一条数据的勾选,为什么数据是已翻页的数据减去取消的这条数据,而不是所有数据减去这条数据!仔细想想后,觉得也是有道理的,就着手实现这一方案,但是这一方案需要跟后端开发人员提前约定好传参方面的问题。1、这里需要用到多选框的一个属性:indeterminate<el-checkbox :indetermin...

weixin_33932129的博客 3497

element的全选多选和反选

记录一下,以防自己忘记!!!

...... 4546
上一篇: vue + el-table点击表头改变其当前样式
昨夜太平长安888
博客等级 码龄9年 1万+粉丝 176原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值