当前位置: 首页 > news >正文

uniapp 卡片勾选

前言

公司的app项目使用的uniapp,项目里有一个可勾选的卡片功能,效果图如下:
在这里插入图片描述
找了一圈没找到什么太好的组件,于是就自己简单写了一个,记录一下。避免以后还会用到

代码

<template><view class="card-selection"><checkbox-group ="checkboxChange"><view v-for="(item, index) in checkboxList" :key="index"><!-- 顶部标题部分 --><slot name="header" :row="item" :rowIndex="index"></slot><label><view v-if="item.checkboxShow" class="card-selection-item" :style="itemStyle"><!-- 左侧复选框 --><view class="item1"><checkbox :value="item[rowKey]" :disabled="item.checkboxDisabled":checked="item.checkboxChecked" /></view><!-- 右侧自定义插槽内容 --><view class="item2"><slot name="default" :row="item"></slot></view></view></label></view></checkbox-group></view>
</template><script>export default {props: {// 唯一值rowKey: {type: String,default: 'id'},// 样式itemStyle: {type: String,default: ''}},data() {return {// 列表checkboxList: [],// 记录已经勾选了的数据hasCheckedList: []}},methods: {// 初始化init(list) {this.checkboxList = []// 添加选中、禁用、是否显示等属性list.forEach(item => {item.checkboxChecked = falseitem.checkboxDisabled = falseitem.checkboxShow = truethis.checkboxList.push(item)})},// 复选框勾选checkboxChange(e) {this.hasCheckedList = e?.detail?.value || []//console.log("复选框勾选数据:", this.hasCheckedList)// 返回给父组件勾选的值const checkedList = this.checkboxList.filter(item => this.hasCheckedList.includes(item[this.rowKey]))// 修改被勾选的数据的checkboxCheckedthis.checkboxList.forEach(item => {item.checkboxChecked = this.hasCheckedList.includes(item[this.rowKey])})//console.log("数据列表:",this.checkboxList)this.$emit('checkboxChange', {checkedValueList: this.hasCheckedList,checkedList: checkedList})console.log("复选框勾选数据:", {checkedValueList: this.hasCheckedList,checkedList: checkedList})},// 复选框禁用逻辑checkboxDisabled(callback) {this.checkboxList.forEach(item => {item.checkboxDisabled = Boolean(callback(item))})},// 复选框勾选逻辑checkboxCheckd(callback) {this.checkboxList.forEach(item => {//console.log("复选框勾选:", item, callback(item))item.checkboxChecked = Boolean(callback(item))})// 自动勾选不会触发checkboxChange事件,这里需要手动更新let valueList = this.checkboxList.filter(item => item.checkboxChecked).map(item => item[this.rowKey])this.checkboxChange({detail:{value:valueList}})this.$forceUpdate()},// 清空勾选clearChecked() {this.checkboxList.forEach(item => {item.checkboxChecked = false})// 自动勾选不会触发checkboxChange事件,这里需要手动更新let valueList = this.checkboxList.filter(item => item.checkboxChecked).map(item => item[this.rowKey])this.checkboxChange({detail:{value:valueList}})},// 清空禁用clearDisabled() {this.checkboxList.forEach(item => {item.checkboxDisabled = false})},// 控制数据的显示和隐藏,用于可能出现数据筛选的情况showCheckboxData(callback) {this.checkboxList.forEach(item => {item.checkboxShow = Boolean(callback(item))})}},}
</script><style lang="scss" scoped>.card-selection-item {padding: 10px;display: flex;.item1 {width: 30px;height: 30px;flex-shrink: 0;}.item2 {flex-shrink: 1;width: 100%;}}
</style>

没啥复杂的代码,看一下代码就能知道如何使用。效果图如下:
在这里插入图片描述

相关文章:

uniapp 卡片勾选

前言 公司的app项目使用的uniapp&#xff0c;项目里有一个可勾选的卡片功能&#xff0c;效果图如下&#xff1a; 找了一圈没找到什么太好的组件&#xff0c;于是就自己简单写了一个&#xff0c;记录一下。避免以后还会用到 代码 <template><view class"card-…...

乐趣Python——文件与数据:挥别乱糟糟的桌面

各位朋友们&#xff0c;今天我们要开启一场非凡的冒险——进入文件操作的世界&#xff01;你知道吗&#xff0c;在你的电脑里&#xff0c;有一个叫做“文件系统”的迷宫&#xff0c;里面藏着各种各样的文件和文件夹&#xff0c;它们就像是迷宫中的宝藏。但有时候&#xff0c;这…...

docker nginx-lua发送post json 请求

环境准备 dockerfile from fabiocicerchia/nginx-lua:1.25.3-ubuntu22.04 run apt-get -qq update && apt-get -qq install luarocks run luarocks install lua-cjson run luarocks install lua-iconv run luarocks install lua-resty-http后台代理服务准备&#xff…...

阿里面试总结 一

写了这些还是不够完整&#xff0c;阿里 字节 卷进去加班&#xff01;奥利给 ThreadLocal 线程变量存放在当前线程变量中&#xff0c;线程上下文中&#xff0c;set将变量添加到threadLocals变量中 Thread类中定义了两个ThreadLocalMap类型变量threadLocals、inheritableThrea…...

多线程(49)定义无锁、阻塞、非阻塞和无等待算法

在并发编程中&#xff0c;理解不同的同步策略——无锁&#xff08;Lock-Free&#xff09;、阻塞&#xff08;Blocking&#xff09;、非阻塞&#xff08;Non-Blocking&#xff09;、无等待&#xff08;Wait-Free&#xff09;——对于设计高效、健壮的多线程应用至关重要。让我们…...

(一)ffmpeg 入门基础知识

一、ffmpeg FFmpeg是一套强大的开源音视频处理工具&#xff0c;能够录制、转换以及流化音视频内容。 FFmpeg是开源的&#xff0c;这意味着它的源代码是公开的&#xff0c;允许任何人使用、修改和分发。它提供了录制、转换以及流化音视频的完整解决方案&#xff0c;支持多种格…...

【软件测试】个人博客系统测试

个人博客系统测试 一、项目背景1.1 技术背景1.2 功能背景 二、 测试用例编写三、自动化测试3.1 什么是自动化测试3.2 通过使用selenium进行自动化测试的编写&#xff08;Java实现&#xff09;3.3 编写测试用例&#xff0c;执行自动化测试3.3.1 输入用户名:test,密码:123&#x…...

20240410解决OK3588-C的核心板刷机之后无法启动的问题

20240410解决OK3588-C的核心板刷机之后无法启动的问题 2024/4/10 19:38 1、编译OK3588的LINUX/Buildroot&#xff1f;forlinxubuntu: ~/3588/OK3588_Linux_fs$ sudo ./build.sh BoardConfig-linuxfs-ok3588.mk 2、进行全编译 forlinxubuntu: ~/3588/OK3588_Linux_fs$ sudo ./bu…...

仅需三步就能成为大语言模型Prompt Engineer提示词工程大神

AI Prompt Engineer(提示词工程)是当下GenAI行业最热门的话题&#xff0c;它是利用有效的AI模型交互提示技术&#xff0c;引导大语言模型生成更高质量、更准确、更相关的回应。相对于预训练和微调&#xff0c;提示词工程不需要标注数据和训练模型&#xff0c;极大的节约了时间和…...

RuleEngine规则引擎底层改造AviatorScript 之公式规则

前情提要&#xff0c;看上一个文章&#xff0c;具体要实现的效果就是 当然上来的问题就是前端的问题&#xff0c;这个框首先他们用的是富文本&#xff0c;富文本传到后台的结果是前端脚本&#xff0c;带着h5的标签&#xff0c;后面改成了这个&#xff0c;当时这个东西其实和后…...

Vue项目(H5)与微信小程序来回跳转

新建H5页面 在小程序里面新建一个名为H5的文件夹&#xff0c;以及H5页面 H5.WXML <web-view src"{{h5Url}}" bindmessage"handleGetMessage"></web-view>H5.JSdata: { h5Url:https://xxx.com/login 要跳转的H5页面},H5回来的回调方法handleG…...

设计模式-单一职责原则

基本介绍 对类来说的&#xff0c;即一个类应该只负责一项职责。如类A负责两个不同的职责&#xff0c;职责1&#xff0c;职责2.当职责1需求变更而改变A时&#xff0c;可能造成职责2执行错误&#xff0c;所以需要将类A的粒度分解为A1&#xff0c;A2 应用实例 方案1 public cl…...

vue和nunjucks的变量插值的形式{{}}冲突

Nunjucks 中修改配置 const nunjucks require(nunjucks);const template_old nunjucks.renderString(template_old: Hello, {{name}}!, { name: World }); console.log(template_old); // 配置 Nunjucks 环境 nunjucks.configure({tags: {variableStart: $(, // 设置变量起始…...

多语言婚恋交友APP开发流程一览

近年来&#xff0c;随着全球化的发展和人们对跨文化交流的需求增加&#xff0c;多语言婚恋交友APP的需求逐渐增长。开发这类APP需要考虑到不同语言和文化下用户的需求&#xff0c;涉及到一系列独特的流程和挑战。本文将从专家角度为您解析多语言婚恋交友APP的开发流程&#xff…...

RUM 最佳实践-交互延迟的探索与发现

FID 在互联网高速发展的时代&#xff0c;用户体验已成为企业竞争的关键所在。网页性能作为用户体验的重要组成部分&#xff0c;直接影响着用户的满意度和工作效率。First Input Delay&#xff08;FID&#xff09;作为衡量网页性能的重要指标&#xff0c;越来越受到业界关注。今…...

spring boot 集成 flyway依赖 做数据库迁移,让部署没烦恼

flyway 是一个敏捷工具&#xff0c;用于数据库的移植。采用 Java 开发&#xff0c;支持所有兼容 JDBC 的数据库。 主要用于在你的应用版本不断升级的同时&#xff0c;升级你的数据库结构和里面的数据。 还是直接上代码 第一步&#xff1a; <!-- Flyway 数据库迁移 依赖 他…...

TCP协议--传输机制

TCP协议原理 TCP协议是对数据传输提供的一个管控机制&#xff0c;主要体现在可靠和效率两个方面&#xff0c;即在保证数据可靠传输的情况下尽可能的提高效率 可靠传输机制 确认应答机制 向对方发送一个数据报&#xff0c;对方要返回一个确认应答的数据报 实现的方式&#x…...

句柄ros::NodeHandle nh(“~“)与nh对launch文件参数配置(param)的影响

ros::NodeHandle nh("~"); 改为&#xff1a; ros::NodeHandle nh; 即可 /*************************分割线 ************************/ 如果原本是&#xff1a; ros::NodeHandle nh;可以改成&#xff1a; ros::NodeHandle nh("~"); 试试...

C++_List的学习

1.概述 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代 2. list 的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个元素 3. list…...

centos 7.9 nginx本地化安装,把镜像改成阿里云

1.把centos7.9系统切换到阿里云的镜像源 1.1.先备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup1.2.下载新的CentOS-Base.repo配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo特别…...

SEO_全面介绍SEO从入门到精通的关键知识点

<h2>什么是SEO&#xff1f;</h2> <p>SEO&#xff08;Search Engine Optimization&#xff0c;搜索引擎优化&#xff09;是一套通过优化网站内容和结构&#xff0c;以提高其在搜索引擎结果页面&#xff08;SERP&#xff09;中的自然排名的技术和策略。SEO不仅…...

nli-distilroberta-base实际项目:高校招生简章关键条款与考生疑问逻辑关系库构建

nli-distilroberta-base实际项目&#xff1a;高校招生简章关键条款与考生疑问逻辑关系库构建 1. 项目背景与需求 高校招生简章通常包含大量专业条款和政策说明&#xff0c;每年都会收到大量考生关于条款理解的咨询。传统的人工解答方式存在几个痛点&#xff1a; 效率低下&am…...

F3D动画播放教程:如何轻松展示和播放3D模型动画

F3D动画播放教程&#xff1a;如何轻松展示和播放3D模型动画 【免费下载链接】f3d Fast and minimalist 3D viewer. 项目地址: https://gitcode.com/GitHub_Trending/f3/f3d 想要快速查看和播放3D模型动画吗&#xff1f;F3D&#xff08;Fast and minimalist 3D viewer&am…...

Fish Speech 1.5入门指南:无需Python基础,5步完成高质量语音生成

Fish Speech 1.5入门指南&#xff1a;无需Python基础&#xff0c;5步完成高质量语音生成 你是不是也遇到过这些烦恼&#xff1f;想给视频配音&#xff0c;但自己的声音不好听&#xff0c;找配音员又太贵&#xff1b;想制作有声书&#xff0c;但录制过程繁琐&#xff0c;效果还…...

FTDI FT2232H USB转JTAG实战指南:MPSSE配置与多设备调试

1. FT2232H与JTAG基础入门 第一次接触FT2232H这块芯片时&#xff0c;我完全被它的多功能性震惊了。这块小小的USB转接芯片不仅能处理UART通信&#xff0c;还能通过MPSSE引擎模拟JTAG、SPI、I2C等多种协议。对于嵌入式开发者来说&#xff0c;这简直就是调试神器。 FT2232H最吸引…...

【PyCon 2024核心议题首发】:CPython 3.13 asyncio重构内幕——原生任务取消语义、零拷贝Socket API与异步GC优化前瞻

第一章&#xff1a;PyCon 2024与CPython 3.13异步演进全景图PyCon 2024于五月在匹兹堡圆满落幕&#xff0c;其核心议题之一正是CPython 3.13的异步能力跃迁。作为首个将async/await语义深度融入解释器底层的Python版本&#xff0c;3.13引入了原生协程调度优化、零拷贝内存视图支…...

力扣高频经典双题解:接雨水 + 无重复最长子串(思路 + 满分代码)

接雨水、无重复字符最长子串是面试高频、算法入门必刷的经典题&#xff0c;一道考动态规划预处理&#xff0c;一道考滑动窗口&#xff0c;都是数组 / 字符串题型里的核心套路。本篇把两道题的思路讲透、代码写清&#xff0c;新手也能一遍看懂&#xff0c;刷题效率直接拉满&…...

帆软报表嵌入避坑指南:5步解决重定向死循环与XSS防护矛盾

帆软报表深度嵌入实战&#xff1a;安全与功能平衡的5步架构方案 当企业级报表系统需要嵌入现有业务平台时&#xff0c;iframe方案往往成为首选&#xff0c;但随之而来的安全策略冲突让不少开发团队陷入两难——单点登录要求与XSS防护似乎水火不容。我曾为某省级政务平台实施帆软…...

如何高效使用开源工具:3个实战技巧快速上手WebPlotDigitizer图表数据提取

如何高效使用开源工具&#xff1a;3个实战技巧快速上手WebPlotDigitizer图表数据提取 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具&#xff0c;用于从图形图像中提取数值数据&#xff0c;支持 XY、极地、三角图和地图。 项目地址: https://gitc…...

全基因组序列比对工具mVISTA的保姆级使用指南:从文件准备到结果解读

全基因组序列比对工具mVISTA的保姆级使用指南&#xff1a;从文件准备到结果解读 在基因组学研究领域&#xff0c;序列比对是揭示物种间进化关系、识别保守区域和功能元件的基础操作。mVISTA作为一款专门用于全基因组序列比对的在线工具&#xff0c;凭借其直观的可视化界面和强…...