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

vue3+element下拉多选框组件

在这里插入图片描述
在这里插入图片描述

<!-- 下拉多选 -->
<template><div class="select-checked"><el-select v-model="selected" :class="{ all: optionsAll, hidden: selectedOptions.data.length < 2 }" multipleplaceholder="请选择" :popper-append-to-body="false" collapse-tags popper-class="select-popper"><template v-if="selectedOptions.data.length > 1" #prefix><div class="multi">(多选) x {{ selectedOptions.data.length }}</div></template><el-option class="multiple" :value="item.value" :label="item.label" v-for="(item, key) in optionsData.data":key="key"><el-checkbox v-model="item.check" @change="handleTaskItemChange(item)" style="width: 100%;">{{ item.label }}</el-checkbox></el-option><div class="is-all"><div @click="handleOptionsAllChange(true)">全选</div><div @click="handleOptionsAllChange(false)">反选</div></div></el-select></div>
</template><script setup>
import { ref, reactive, computed, watch, defineProps, onMounted } from 'vue'let props = defineProps({options: {type: Array,required: true}
})let optionsData = reactive({ data: [] })let selectedOptions = reactive({ data: [] })let optionsAll = ref(false)const emit = defineEmits(['selected']);watch(() => props.options, (newVal) => {optionsData.data = newVal;let checkedData = newVal.filter((item) => item.check);selectedOptions.data = checkedData.map((item) => item.value);optionsAll.value = checkedData.length === newVal.length;
}, { immediate: true })onMounted(() => {// 在控件载入时触发父级的selected方法emit('selected', selectedOptions.data);
})const selected = computed({get() {return selectedOptions.data.length > props.options.length ? [''] : selectedOptions.data;},set(value) {selectedOptions.data = value;}
})const handleOptionsAllChange = (isAll) => {optionsData.data.forEach((elm) => {elm.check = isAll;});selectedOptions.data = isAll ? optionsData.data.map((item) => item.value) : [];emit('selected', selectedOptions.data);
}const handleTaskItemChange = (item) => {if (!item.check) {selectedOptions.data = selectedOptions.data.filter((value) => value !== item.value);} else {selectedOptions.data.push(item.value);}optionsAll = selectedOptions.data.length === optionsData.data.length;emit('selected', selectedOptions.data);
}</script><style lang="scss">
.select-checked {width: 420px;height: 30px;.el-input {width: 420px;height: 30px;}// tag删除图标.el-tag__close,.el-icon-close {display: none;}// 标签tag背景.el-tag.el-tag--info {background: transparent;border: 0;display: none;}// 第一个显示名称.hidden {.el-tag.is-closable.el-tag--default {display: block;line-height: 30px;padding-left: 15px;font-weight: 400;color: #333333;}}
}.is-all {display: flex;div {cursor: pointer;margin: 6px 10px;transition: 0.2s;&:hover {opacity: .7;}}
}.multi {font-size: 12px;font-weight: 400;color: #333333;
}
</style>
<style>
.el-select-dropdown.is-multiple.el-select-dropdown__item.selected::after {content: none;
}
</style>

使用:

<selectMulti :options="options" @selected="selected"></selectMulti>let options = [{value: '001',label: '黄金糕',check: false},{value: '002',label: '双皮奶',check: false},{value: '003',label: '蚵仔煎',check: false},{value: '004',label: '龙须面',check: false},{value: '005',label: '北京烤鸭',check: false}
]const selected = (value) => {console.log(value);
}

相关文章:

vue3+element下拉多选框组件

<!-- 下拉多选 --> <template><div class"select-checked"><el-select v-model"selected" :class"{ all: optionsAll, hidden: selectedOptions.data.length < 2 }" multipleplaceholder"请选择" :popper-app…...

Python科研绘图--Task02

目录 图形元素 画布 (fifigure)。 坐标图形 (axes)&#xff0c;也称为子图。 轴 (axis) &#xff1a;数据轴对象&#xff0c;即坐标轴线。 刻度 (tick)&#xff0c;即刻度对象。 图层顺序 轴比例和刻度 轴比例 刻度位置和刻度格式 坐标系 直角坐标系 极坐标系 地理…...

[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现

题目链接&#xff1a; 二叉树遍历_牛客题霸_牛客网编一个程序&#xff0c;读入用户输入的一串先序遍历字符串&#xff0c;根据此字符串建立一个二叉树&#xff08;以指针方式存储&#xff09;。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/43719512169254700747…...

【官方中文文档】Mybatis-Spring #简介

简介 什么是 MyBatis-Spring&#xff1f; MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中&#xff0c;创建映射器 mapper 和 SqlSession 并注入到 bean 中&#xff0c;以及将 Mybatis 的异常转换为 Spring 的…...

稳定扩散ControlNet v1.1 权威指南

ControlNet 是一种稳定扩散模型&#xff0c;可让你从参考图像中复制构图或人体姿势。 经验丰富的稳定扩散用户知道生成想要的确切成分有多难。图像有点随机。你所能做的就是玩数字游戏&#xff1a;生成大量图像并选择你喜欢的图片。 借助 ControlNet&#xff0c;稳定扩散用户…...

【golang】结构体及其方法的使用(struct)

函数是独立的程序实体。我们可以声明有名字的函数&#xff0c;也可以声明没名字的函数&#xff0c;还可以把它们当做普通的值传来传去。我们能把具有相同签名的函数抽象成独立的函数类型&#xff0c;以作为一组输入、输出&#xff08;或者说一类逻辑组件&#xff09;的代表。 …...

【数据结构】-- 排序算法习题总结

排序 时间复杂度 空间复杂度 稳定性 冒泡排序 O(n^2) 优化后O(n) O(1) 稳定 快速排序 最好O(n*logn) 最坏O(n^2) 最好O(logn) 最坏O(n) 不稳定直接插入排序…...

第十章 CUDA流(stream)实战篇

cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...

如何进行电脑文件夹分类与整理?

本科电脑用了四年&#xff0c;毕业后发现空间很满&#xff0c;但是真正有用的东西仿佛就一点。好像是在学开发的时候&#xff0c;听到一个老师说&#xff0c;根目录不要放太多文件夹&#xff0c;不然就相当于没有根目录了。刚好研究生有了新的台式电脑&#xff0c;开始有规划的…...

kafka-python 消费者消费不到消息

排除步骤1&#xff1a; 使用group_id”consumer_group_id_001“ 和 auto_offset_reset"earliest" from kafka import KafkaConsumerconsumer KafkaConsumer(bootstrap_servers["dev-kafka01.test.xxx.cloud:9092"],enable_auto_commitTrue, auto_commit…...

穿起“新架构”的舞鞋,跳一支金融数字化转型的华尔兹

华尔兹&#xff0c;是男女两位舞者&#xff0c;通过形体的控制&#xff0c;舞步技巧的发挥&#xff0c;完美配合呈现而出的一种舞蹈形式。华尔兹舞姿&#xff0c;如行云流水、潇洒自如、飘逸优美&#xff0c;素有“舞中皇后”的美称。 在跳华尔兹的时候&#xff0c;如果舞者双…...

SpringBoot 常用注解

随着Spring及Spring Boot的发展&#xff0c;基于Java的配置已经慢慢替代了基于xml的配置形式。本篇文章为大家整理和简介Spring Boot中常用的注解及其功能。 SpringBoot注解 SpringBootApplication&#xff1a;开启Spring Boot自动配置的核心注解&#xff0c;相关等同于Configu…...

k8s deployment创建pod流程图

参考 k8s 创建pod和deployment的流程 - SoulChild随笔记...

C++ 逗号运算符

使用逗号运算符是为了把几个表达式放在一起。 整个逗号表达式的值为系列中最后一个表达式的值。 从本质上讲&#xff0c;逗号的作用是将一系列运算按顺序执行。 表达式1, 表达式2求解过程是&#xff1a;先求解表达式 1&#xff0c;再求解表达式 2。整个逗号表达式的值是表达…...

jdbc集成phoneix hbase

为什么使用jdbc集成 需求简单&#xff0c;只是往phoneix存储数据原本项目已经有mysql的mybatis plus集成&#xff0c;如果采用dataSource方式就需要采用多数据源的方式&#xff0c;造成架构复杂化&#xff0c;使用复杂化&#xff0c;并且修改地方过多。 Qualifier("phoe…...

16.遍历二叉树,线索二叉树

目录 一. 遍历二叉树 &#xff08;1&#xff09;三种遍历方式 &#xff08;2&#xff09;递归遍历算法 &#xff08;3&#xff09;非递归遍历算法 &#xff08;4&#xff09;层次遍历算法 二. 基于递归遍历算法的二叉树有关算法 &#xff08;1&#xff09;二叉树的建立 …...

电商平台按关键字搜索商品淘宝京东拼多多api接口PHP示例

关键词搜索商品接口的作用是通过调用接口来实现在电商平台中进行商品搜索。具体而言&#xff0c;该接口可以提供以下功能和作用&#xff1a; 商品搜索&#xff1a;用户可以通过输入关键词&#xff0c;在电商平台上进行商品搜索。接口可以根据关键词对商品的名称、描述、标签等…...

胖小酱之恰恰是什么

意思是&#xff1a;指所指的事物截然不同&#xff0c;正好相反。 恰恰相反的近义词&#xff1a;事与愿违、适得其反 一、事与愿违 [ sh yǔ yun wi ] 【解释】&#xff1a;事实与愿望相反。指原来打算做的事没能做到。 【出自】&#xff1a;茅盾《子夜》十六&#xff1a;不…...

豪越科技受邀出席2023中国算力大会

2023年8月17日-8月20日&#xff0c;“算汇银川 数创未来”创新中国行走进银川暨2023中国算力大会在银川中关村创新中心召开。政府领导、行业领袖、专家学者、以及大型科技企业负责人齐聚大会现场&#xff0c;围绕算力基础设施建设、创新应用和产业发展成果等方面开展广泛交流与…...

python脚本——批量将word文件转换成多张图片

前提&#xff1a;有时候需要快速查看word文档的内容是否自己需要的&#xff0c;或者就是单纯需要将word文档转换成一张张图片。 思路&#xff1a;word文档直接生成图片比较蛮烦&#xff0c;可能会引起格式变化&#xff0c;就先将word文档转换成PDF&#xff0c;然后将PDF文档转…...

开源工具集YangDuck:模块化设计与实战应用解析

1. 项目概述&#xff1a;一个面向开发者的开源工具集最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“ByGroover/YangDuck”。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但点进去之后发现&#xff0c;这其实是一个面向开发者、特别是那些经常需要处理数据转…...

图片换背景底色怎么制作?2026年最全工具对比和实操指南

前几天&#xff0c;有个朋友问我怎样快速给证件照换个蓝色背景&#xff0c;我才意识到很多人其实不知道现在换背景底色有多简单。无论是证件照、商品图、还是自媒体头图&#xff0c;一键就能搞定。今天我就把自己用过的所有工具和方法整理出来&#xff0c;分享给大家。为什么越…...

基于数据科学的宠物性格分析:从行为量化到性格画像的工程实践

1. 项目概述与核心价值最近在逛GitHub的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫petsonality。光看名字&#xff0c;你大概就能猜到它和“宠物”&#xff08;Pets&#xff09;以及“性格”&#xff08;Personality&#xff09;有关。没错&#xff0c;这是一个通…...

SPI驱动NeoPixel:硬件时序优化与跨平台控制方案

1. 项目概述&#xff1a;当NeoPixel遇上SPI&#xff0c;一个关于时序的优雅解法玩过智能LED&#xff0c;比如Adafruit的NeoPixel或者国内常见的WS2812B灯带的朋友&#xff0c;大概都体会过那种又爱又恨的感觉。爱的是它单线控制、色彩绚烂&#xff0c;恨的是那娇贵到令人头疼的…...

免费在线化学编辑器Ketcher:5分钟学会专业分子绘图

免费在线化学编辑器Ketcher&#xff1a;5分钟学会专业分子绘图 【免费下载链接】ketcher Web-based molecule sketcher 项目地址: https://gitcode.com/gh_mirrors/ke/ketcher 想要免费在线绘制化学结构却找不到合适的工具&#xff1f;Ketcher这款基于Web的开源化学编辑…...

3分钟搞定!FigmaCN终极中文插件:让英文界面秒变中文的免费神器

3分钟搞定&#xff01;FigmaCN终极中文插件&#xff1a;让英文界面秒变中文的免费神器 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;专业术…...

WechatSogou:基于搜狗微信搜索的公众号数据采集解决方案实战指南

WechatSogou&#xff1a;基于搜狗微信搜索的公众号数据采集解决方案实战指南 【免费下载链接】WechatSogou 基于搜狗微信搜索的微信公众号爬虫接口 项目地址: https://gitcode.com/gh_mirrors/we/WechatSogou 在微信公众号生态日益繁荣的今天&#xff0c;如何高效、稳定…...

量子生成分类技术:原理、优势与应用解析

1. 量子生成分类技术概述量子生成分类&#xff08;Quantum Generative Classification, QGC&#xff09;是一种基于量子计算原理的新型机器学习范式&#xff0c;它从根本上改变了传统分类任务的实现方式。与常见的判别式学习方法不同&#xff0c;QGC采用生成式学习策略&#xf…...

LVGL字体优化实战:如何将中文字库放到外部SPI Flash并动态加载(节省内部RAM)

LVGL外部SPI Flash字库优化实战&#xff1a;RAM节省与性能平衡的艺术 在嵌入式UI开发中&#xff0c;中文显示一直是资源受限设备的痛点。当STM32F4系列芯片遇到需要显示多语言菜单的智能家居面板&#xff0c;或是工业HMI设备需要展示复杂参数时&#xff0c;传统的内部字库方案往…...

保姆级教程:手把手教你将VisDrone数据集转成MOT格式,适配MOTR等模型训练

保姆级教程&#xff1a;手把手教你将VisDrone数据集转成MOT格式&#xff0c;适配MOTR等模型训练 在计算机视觉领域&#xff0c;多目标跟踪(MOT)一直是研究热点之一。而VisDrone作为无人机视角下的经典数据集&#xff0c;其丰富的场景和挑战性的标注使其成为MOT研究的理想选择。…...