Vue原生写全选反选框

效果

场景:Vue全选框在头部,子框在v-for循环内部。
实现:点击全选框,所有子项选中,再次点击取消;子项全选中,全选框自动勾选,子项并未全选,全选框不勾选;已选和全选数量统计;
在这里插入图片描述

实现

#1. html

<div class="checkall" :class="isCheck?'active':''" @click="clickAll"></div><span>全选</span><div class="card" v-for="(item, index) in tableData" :key="index"><div class="checkitem" :class="item.isCheck?'active':''" @click="clickItem(item.id)"></div>
</div>

#2. js

data() {return {tableData: [],isCheck:false,Selected: 0,SelectAll: 0,}},
mounted:{this.init();
}
methods:{async init(){let res = await ...; //请求this.tableData = res.datathis.SelectAll = res.data.length;this.tableData = this.tableData.map(item => {item.isCheck = falsereturn item})},clickItem(id){this.tableData.forEach(v=>{v.id == id ? v.isCheck = !v.isCheck : ''})this.Selected = this.tableData.filter(i=>i.isCheck).length; if(this.Selected == this.SelectAll){this.isCheck = true;}else{this.isCheck?this.isCheck=false:'';}},clickAll(){this.isCheck = !this.isCheck;if(this.isCheck){this.tableData.forEach(v=>{v.isCheck = true;})}else{this.tableData.forEach(v=>{v.isCheck = false;})}this.Selected = this.tableData.filter(i=>i.isCheck).length;}
}

#3. css

.checkall{height: .16rem;width: .16rem;border-radius: 0.02rem;border: 1px solid #1E77F5;margin-right: .06rem;
}
.checkall.active{background-color: #1E77F5;}.checkitem{position: absolute;top: .16rem;right: .16rem;height: .16rem;width: .16rem;border-radius: 0.02rem;border: 1px solid #1E77F5;margin-right: .06rem;z-index: 1;
}
.checkitem.active{background-color: #1E77F5;
}

#完整代码:

<div class="checkall" :class="isCheck?'active':''" @click="clickAll"><span class="icon iconfont" style="color:#fff;" v-show="isCheck">&#xe715;</span>
</div><span>全选</span><div class="card" v-for="(item, index) in tableData" :key="index"><div class="checkitem" :class="item.isCheck?'active':''" @click="clickItem(item.id)"><span class="icon iconfont" style="color:#fff;" v-show="item.isCheck">&#xe715;</span></div>
</div>
...
data() {return {tableData: [],isCheck:false,Selected: 0,SelectAll: 0,}},
mounted:{let res = await ...; //请求后端接口this.tableData = res.datathis.SelectAll = res.data.length;this.tableData = this.tableData.map(item => {item.isCheck = falsereturn item})
}
methods:{clickItem(id){this.tableData.forEach(v=>{v.id == id ? v.isCheck = !v.isCheck : ''})this.Selected = this.tableData.filter(i=>i.isCheck).length; //选完统计一下选中个数,同时调用this.tableData本身可以让视图及时更新,不再调用会出现选中没效果if(this.Selected == this.SelectAll){this.isCheck = true;}else{this.isCheck?this.isCheck=false:'';}},clickAll(){this.isCheck = !this.isCheck;if(this.isCheck){this.tableData.forEach(v=>{v.isCheck = true;})}else{this.tableData.forEach(v=>{v.isCheck = false;})}this.Selected = this.tableData.filter(i=>i.isCheck).length;}
}
...
.checkall{height: .16rem;width: .16rem;border-radius: 0.02rem;border: 1px solid #1E77F5;margin-right: .06rem;
}
.checkall.active{background-color: #1E77F5;}.checkitem{position: absolute;top: .16rem;right: .16rem;height: .16rem;width: .16rem;border-radius: 0.02rem;border: 1px solid #1E77F5;margin-right: .06rem;z-index: 1;
}
.checkitem.active{background-color: #1E77F5;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产音频放大器工作原理以及应用领域

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备&#xff0c;其重建的信号音量和功率级都要理想&#xff1a;如实、有效且失真低。音频范围为约20Hz&#xff5e;20000Hz&#xff0c;因此放大器在此范围内必须有良好的频率响应&#xff08;驱动频带受限的扬声器时要…

什么是抽象语法树(AST),以及 AST 在前端的应用。

定义 抽象语法树&#xff08;Abstract Syntax Tree&#xff0c;AST&#xff09;是一种抽象表示源代码结构的树形数据结构它以直观的方式展现了代码的逻辑组成。通过 AST&#xff0c;编程语言的复杂结构被简化为一系列节点和边&#xff0c;便于程序理解和操作。 AST 的使用使前…

无人机操作注意事项

检查飞行设备 每次飞行前&#xff0c;要认真检查无人机的各处细节&#xff0c;遥控器等地面设备也不例外。 确保设备电量充足 起飞前&#xff0c;检查无人机是否电量充足&#xff0c;以及辅助设备如遥控器、手机等。 选择空旷的飞行场地 选择适宜的场地进行操作&#xff0…

机器学习原理和代码实现专辑

1. 往期文章推荐 1.【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现 2. 【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解 3. 【机器学习】基于Gumbel Top-k松弛技术的图形采样 4. 【机器学习】基于Softmax松弛技术的离散数据采样 5. 【机器学习】正则…

GNU、Unix、Linux、Makefile、GCC、GDB、GPL、CentOS 7、Ubuntu之间的关系

全文总结 早期&#xff0c;Unix系统作为一类强大的操作系统&#xff0c;在计算领域奠定了基础。然而&#xff0c;出于对软件自由的追求&#xff0c;Richard Stallman在1983年发起了GNU项目&#xff0c;旨在创建一个完全自由的、与Unix兼容的操作系统。GNU项目不仅倡议软件自由…

空间转录组学联合单细胞转录组学揭示卵巢癌生存相关受配体对

卵巢癌&#xff0c;作为女性生殖系统中的一种常见恶性肿瘤&#xff0c;其高级别浆液性卵巢癌&#xff08;HGSC&#xff09;亚型尤其致命。尽管多数患者对初次治疗反应良好&#xff0c;但超过75%的晚期HGSC患者会在治疗后复发&#xff0c;并且对化疗药物产生耐药性。然而&#x…

python 多进程加速web服务

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a; 提示&#xff1a;以下是本篇文章正文内…

vs code + Keil Assistant 配置 Keil 单片机开发

1、 先安装vscode完成后 安装插件 2 安装C/C 与 keil Assistant 需说明一下 Assistant 1.7.0版本有bug F7按不了 所以安装1.6.2版本 以下是我的安装插件 EMBEDDED IDE 可安装 可不安装 随便你 3 配置 Assistant 4、设置C/C 目录 ${workspaceFolder}/**D:/Keil_v5/C51/INC/**…

Linux提权总结(持续更新)

目录 1. teehee提权 1. teehee提权 teehee命令&#xff1a;teehee命令可以往一个文件中追加内容&#xff0c;可以通过这个命令向/etc/passwd中追加一个超级用户。 teehee参数-a&#xff1a;追加到指定文件&#xff0c;不覆盖原文件。 /etc/passwd文件的结构&#xff1a;用户名:…

排序算法系列一:选择排序、插入排序 与 希尔排序

零、说在前面 本文是一个系列&#xff0c;入口请移步这里 一、理论部分 1.1&#xff1a;选择排序 1.1.1&#xff1a;算法解读&#xff1a; 使用二分法和插入排序两种算法的思想来实现。流程分为“拆分”、“合并”两大部分&#xff0c;前者就是普通的二分思想&#xff0c;将…

应急响应靶机-Linux(2)

前言 本次应急响应靶机采用的是知攻善防实验室的Linux-2应急响应靶机 靶机下载地址为&#xff1a; https://pan.quark.cn/s/4b6dffd0c51a 相关账户密码&#xff1a; root/Inch957821.(记住要带最后的点.) 解题 启动靶机 不建议直接使用账号密码登录&#xff0c;建议用另一台主…

900kW直流负载组-DC系列负载组

R900 DC 型是一个固定式 900kW 直流负载组&#xff0c;旨在准确模拟典型直流电源在实际运行过程中遇到的负载;例如用于物料搬运设备、固定电源和电动汽车领域的设备&#xff0c;例如车队车辆、地面支持设备 &#xff08;GSE&#xff09;、工业机器人等。 技术细节 负载组 R9…

机器学习实现语音识别的背后技术详解

引言 语音识别是机器学习领域中的一个重要应用&#xff0c;它使得计算机能够像人类一样理解和生成语言。随着深度学习技术的快速发展&#xff0c;语音识别的准确性和效率得到了显著提升。本文将深入探讨机器学习实现语音识别的背后技术&#xff0c;并通过详细的代码示例来展示…

海富泰可直动式比例阀控制器EVRD-03C26SB-C1D24-B00

控制EVOTEK海富泰可直动式及先导式比例方向阀EVRD-03A04SA-C1D24-V00、EVRD-03C08SB-C1D24-B00、EVRD-03A16SA-C1D24-V00、EVRD-03C26SB-C1D24-B00、EVRD-05A30SA-C1D24-V00、EVRD-05C60SB-C1D24-B00、EVRD-P05A80SA-IIC1D24-B00、EVRD-P07C100SB-EEC1D24-V00、EVRD-P07A150SA-…

Python学习笔记23:进阶篇(十二)常见标准库使用之日期时间功能datetime模块的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 日期和时…

【SSM】医疗健康平台-管理端-运营数据报表导出

知识目标 熟悉JasperReports的用法&#xff0c;能够使用JasperReports实现PDF文件导出 掌握Excel方式导出运营数据报表的方法&#xff0c;能够使用Apache POI以Excel方式导出运营数据报表 掌握PDF方式导出运营数据报表的方法&#xff0c;能够使用JasperReports以PDF方式导出运…

Linux基础 - iptables 与 firewalld 防火墙

目录 零. 简介 一. iptables 二. firewalld 三. 总结 零. 简介 iptables iptables 是 Linux 内核中集成的一种基于命令行的防火墙工具。它通过一系列规则来控制网络数据包的流动&#xff0c;包括允许、拒绝、修改数据包等操作。iptables 可以对入站、出站和转发的数据包进…

Arcgis 计算经纬度坐标并补齐6位小数

工作中我们经常需要在Arcgis中计算点的经纬度或者线的起点、终点坐标&#xff0c;为确保数据的准确性&#xff0c;我们必须保留6位小数&#xff0c;但我们在默认计算的时候偶尔会遇到算出来的经纬度坐标小数位不足6位&#xff0c;那我们应该如何补齐呢&#xff0c;这里我将方法…

常见密码算法

密码算法&#xff08;Cryptographic Algorithms&#xff09;是用于保护数据安全的重要工具&#xff0c;它们包括加密算法、哈希算法和签名算法。密码算法广泛应用于数据加密、身份验证、数据完整性验证和数字签名等领域。以下是一些常见的密码算法及其介绍。 对称加密算法 对…

DW数模笔记——task03

第三章 函数极值与规划模型 在这一章中&#xff0c;我们将介绍函数极值与规划模型。约束条件下的极值求解是优化问题和运筹学研究的重点&#xff0c;也是各大数学建模竞赛中考察的重难点。它主要针对的是目标函数在约束条件下的极值&#xff0c;以及多种方案中的最优方案。本章…