【多选框、表格全选】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万+

NSIDC海冰运动产品-速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

入门级NSIDC海冰运动产品速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

Mluoo的博客 2959

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万+

【飞控】UAV Toolbox Support Package for PX4 Autopilots安装与配置

安装配置UAV Toolbox Support Package for PX4 Autopilots硬件安装包

m0_58373406的博客 1614

虚拟机Ubuntu连接USRP

笔记本通过网线连接USRP。

xiaozir的博客 2307

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

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

weixin_39732825的博客 2074

西门子工业物联网云平台 Insights Hub 技术白皮书

Insights Hub是西门子公司推出的工业物联网云平台,它是一个使用开放技术的基于云架构的平台,能够为制造业企业提供物联网连接、数据分析、应用开发等一系列服务。Insights Hub的设计理念是“连接、分析和运营”,即通过连接物理设备、收集数据并进行分析,来优化工业生产的运营和管理。

可爱的刘三岁的博客 3334

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

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

baidu_39084727的博客 3064

解决相同型号USB设备在Windows系统中重复枚举问题

本文详细解析了Windows系统中相同型号USB设备重复枚举问题的成因及解决方案。通过修改注册表、使用PsTools工具清除设备记录以及编程实现自动化处理等方法,有效解决设备识别混乱问题,特别适用于自动化测试和工业设备管理场景。

weixin_42561040的博客 565

保姆级教程:在RK3568上搞定PR2100K+GC2385双摄(从DTS配置到HAL层补丁)

本文详细介绍了在RK3568平台上调试PR2100K+GC2385双摄系统的完整流程,从DTS配置到HAL层补丁。涵盖硬件连接、媒体控制器拓扑验证、Camera3配置、HAL层特殊补丁及性能优化等关键步骤,帮助开发者快速解决双摄调试中的常见问题,提升嵌入式视觉系统开发效率。

weixin_28724661的博客 196

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

GEE影像重采样实战:从10米到500米,如何用.reduceResolution和.reproject统一尺度?

本文详细介绍了在Google Earth Engine (GEE)平台中,如何利用`.reduceResolution()`和`.reproject()`方法解决多源遥感影像的尺度统一难题。通过实战案例,从哨兵2号10米分辨率影像聚合至MODIS 500米尺度,阐述了聚合规则选择、参数配置及效果验证的全流程,为环境监测、农业分析等领域的跨尺度数据融合提供了关键方法。

weixin_29223603的博客 85

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

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

weixin_54129994的博客 3140

【Linux】Petalinux使用QSPI FLASH引导启动

1. 预分配Flash空间使用Flash引导Petalinux做的系统,也有进阶的做法。部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。1. 预分配Flash空间根据生成的bit文件大小估算BOOT.BIN文件的大小,为Flash大概分配四个分区:boot、bootenv、kernel、bootscr,分别存放BOOT.BIN文件、u-boot的环境变量、内核文件(image.ub/zImage/uImage等)、启动脚本boot.scr。

Tesseract_9527的博客 3375

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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、付费专栏及课程。

余额充值