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

el-select 多选增加全部选项

背景

使用el-select配置多选时,往往需要自己添加全选子项。

实现

  1. 全选、取消全选、选择其他子项的逻辑
    // 列表展示的模块
    let oldConlumns =['A','B','C','all']
    const filteredColumns = ref<string[]>(['A','B','C','all',
    ])
    const showTableValues = ref<string[]>(['A','B','C','all'])function isShowColumn(column:string) {return showTableValues.value.includes(column)
    }// 增加全部的联动操作
    function showColumnsChange(value) {// 找出新勾选的项const added = value.find(v => !oldConlumns.includes(v))const removed = oldConlumns.find(v => !value.includes(v))if (added === 'all') {console.log('刚勾选的是 ALL')// 执行全选逻辑filteredColumns.value = [...defaultTableItems.map(o => o.value)]} else if (removed === 'all') {console.log('刚取消了 ALL')filteredColumns.value = []} else {// 普通选项变化const allValues = defaultTableItems.map(o => o.value).filter(v => v!=='all')const hasAllSelected = allValues.every(v => value.includes(v))if (hasAllSelected && !value.includes('all')) {// 补上 ALLfilteredColumns.value = [...defaultTableItems.map(o => o.value)]}if (!hasAllSelected && value.includes('all')) {// 取消了部分选项,需要去掉 ALLfilteredColumns.value = value.filter(v => v !== 'all')}}// 更新旧值oldConlumns = [...filteredColumns.value]
    }
    
  2. 页面中使用el-select
    <el-selectv-model="filteredColumns"multiplecollapse-tagscollapse-tags-tooltip:max-collapse-tags="3"placeholder="请选择"style="width: 240px"@change="showColumnsChange"><el-optionv-for="item in defaultTableItems":key="item.value":label="item.label":value="item.value"/></el-select>
    
http://www.dtcms.com/a/391722.html

相关文章:

  • Day24 窗口操作
  • 5. Linux 文件系统基本管理
  • 【MySQL】GROUP BY详解与优化
  • 深度学习:DenseNet 稠密连接​ -- 缓解梯度消失
  • Linux DNS 子域授权实践
  • 团体程序设计天梯赛-练习集 L1-041 寻找250
  • mellanox网卡(ConnectX-7)开启SACK
  • 相机镜头靶面
  • 【语法进阶】gevent的使用与总结
  • Java优选算法——前缀和
  • ARM不同层次开发
  • 【Python】高质量解析 PDF 文件框架和工具
  • RSS-2025 | 无地图具身导航新范式!CREStE:基于互联网规模先验与反事实引导的可扩展无地图导航
  • RNA-seq分析之共识聚类分析
  • Linux开发——ARM介绍
  • Force Dimension Sigma力反馈设备远程遥操作机械臂外科手术应用
  • 泛函驻点方程与边界条件的推导:含四阶导数与给定边界
  • C#开发USB报警灯服务,提供MES或者其它系统通过WebAPI调用控制报警灯
  • Docker基础篇08:Docker常规安装简介
  • 【软考-系统架构设计师】软件架构分析方法(SAAM)
  • 广西保安员考试题库及答案
  • 【Vue】Vue 项目中常见的埋点方案
  • 投稿之前去重还是投稿之后去重?
  • 【包教包会】CocosCreator3.x全局单例最优解
  • 为什么要使用dynamic_cast
  • 随机过程笔记
  • OpenHarmony:NDK开发
  • Dify 从入门到精通(第 87/100 篇):Dify 的多模态模型可观测性(高级篇)
  • 5种获取JavaScript时间戳函数的方法
  • Redis 三种集群模式