改造el-dropdown ,实现多选效果,且当选项只剩下一个时,不允许取消

news2025/5/24 3:12:39

实现效果
在这里插入图片描述
实现代码
在这里插入图片描述
其中virtual-list是使用的插件,使得下拉数据多的时候,不会出现卡顿
正常不使用虚拟列表的时候可以这样写

 <el-dropdown-menu slot="dropdown">
      
              <el-dropdown-item v-for="i in item.optionList" :key="i.id" :command="item.valueType == 'id' ? i.id : i.code" class="dropdownMeun">

                <span :class="getClass(item,i)">
                  {{ i.name }}
                </span>

                <i v-show="getClass(item,i)" class="iconfont el-icon-tips-done" />
              </el-dropdown-item>

            </el-dropdown-menu>
          </el-dropdown>

getName方法用来处理选中值的展示方式,根据业务逻辑自行处理

  computed: {
    getName() {
      return function(row) {
        if ((typeof row.value != 'boolean' && !row.value) || !row.optionList) return

        if (row.multiple) {
          const hJson = row.optionList.filter(item => row.value.indexOf(row.valueType == 'id' ? item.id : item.code) !== -1)
          return hJson?.map(r => r.name)?.join(' 、')
        } else if (row.valueType == 'id') {
          const name = row.optionList.find(j => j.id == row.value)?.name
          return name
        } else {
          const name = row.optionList.find(j => j.code == row.value)?.name
          return name
        }
      }
    },

实现多选的关键代码
在这里插入图片描述
多选选中样式,代码

  computed: {

    getClass() {
      return function(row, i) {
        if (row.valueType == 'id') {
          if (row.multiple) {
            return row.value.includes(i.id) ? 'activeNode' : null
          }
          return row.value == i.id ? 'activeNode' : null
        } else {
          if (row.multiple) {
            this.$set(i, 'isActive', row.value.includes(i.code))
            return row.value.includes(i.code) ? 'activeNode' : null
          }
          return row.value == i.code ? 'activeNode' : null
        }
      }
    }
  },

在css里面定义一个activeNode的样式就可以了

.activeNode{
  // background: #3E7BFA;;
  color: #3E7BFA;
}

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

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

相关文章

面试中常见的算法题和其python实现

在面试中&#xff0c;常见的算法题包括排序算法、查找算法、动态规划、贪心算法等。以下是一些常见算法题及其Python实现示例&#xff1a; 1. 快速排序&#xff08;Quick Sort&#xff09;&#xff1a; 题目描述&#xff1a;给定一个数组&#xff0c;使用快速排序算法对数组进…

亚马逊测评自养号成号率的关键因素及风控策略探讨

什么决定了自养号的成号率&#xff1f;这是测评团队最关心的问题之一 在测评自养号的过程中&#xff0c;除了需要在远程终端建立防火墙来做防关联和指纹浏览器外&#xff0c;干净的国外IP也是至关重要的 IP地址是互联网协议地址的缩写&#xff0c;为每个网络和主机分配一个逻…

WebGL模型视图投影矩阵

WebGL透视投影_山楂树の的博客-CSDN博客中的PerspectiveView代码一个问题是&#xff0c;我们用了一大段枯燥的代码来定义所有顶点和颜色的数据。示例中只有6个三角形&#xff0c;我们还可以手动管理这些数据&#xff0c;但是如果三角形的数量进一步增加的话&#xff0c;那可真就…

如何评估RPA需求?

在当今数字化的商业环境中&#xff0c;RPA&#xff08;Robotic Process Automation&#xff0c;即机器人流程自动化&#xff09;的需求日益增长&#xff0c;因为它能够帮助企业提高效率、减少错误、节省成本&#xff0c;以及提高员工满意度。然而&#xff0c;尽管RPA的潜力巨大…

秋目阅读企划 —— 小K图书推荐(文末赠书)

目录 1、写在前面2、深入理解Java高并发编程3、信息学奥赛一本通关4、文末赠书 1、写在前面 不知道大家有没有和我一样的感受&#xff0c;在发现一本好书的时候&#xff0c;非常想入手&#xff0c;但是奈何囊中羞涩…苦等1024&#xff0c;现在不用等啦~清华大学出版社的秋日阅读…

短剧解说小程序搭建,短剧解说小程序源码

短剧解说小程序搭建&#xff0c;短剧解说小程序源码 可定制开发小程序&#xff0c;H5&#xff0c;APP等系统 有需要可定制可出源码&#xff0c;这个是啥你懂的(VVVVVVVVVVV)&#xff1a;二五四九七八九零五九 需要源码或搭建可看上面的数字信息 短剧解说小程序搭建 小程序使用…

第37章_瑞萨MCU零基础入门系列教程之DAC数模转换模块

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

【WFA】【Enhanced open】CT_OWE_DHgroup_STA_NoAssociation-AllGroupsRejected_10338_1

测试报告如下: Fail的关键log: 当连接到ap失败时,驱动程序将尝试连接到ap。如果ap仅支持Group 20,并且sta支持Group 19、20。sta将首先尝试Group 19,ap将通过状态代码77拒绝它。然后驱动程序将尝试连接Group 19的ap,仍然达到最大重试次数。那么sta将尝试第Group 20 。 …

重磅!文晔以38亿美元收购富昌电子 | 百能云芯

文晔微电子股份有限公司&#xff08;文晔科技&#xff09;于9月14日正式宣布已完成对富昌电子公司&#xff08;Future Electronics Inc.&#xff09;100%股权的收购&#xff0c;该交易以全现金方式完成&#xff0c;总交易价值高达38亿美元。 文晔科技的董事长兼首席执行官郑家强…

【案例+操作+演示】20分钟带你入门Pandas,掌握数据分析科学模块,附带上百个案例练习题【含答案】

二十分钟入门pandas&#xff0c;学不会私信教学&#xff01; 有需要pyecharts资源的可以点击文章上面下载&#xff01;&#xff01;&#xff01; 需要本项目运行源码可以点击资源进行下载 资源 #coding:utf8 %matplotlib inline这个一篇针对pandas新手的简短入门&#xff0…

Anaconda安装和配置 ---- 详细到家

安装 1.打开Anaconda官网&#xff0c;选择对应版本,下载到对应目录即可 或者进入: Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.双击打开.exe文件&#xff0c;然后点击next ; 3.点击agree 4.点击just me,然后next; 5.在Choose Ins…

C++QT day7

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 #include <iostream>using namespace std;template<typename T> class my_vector {int size;//可存储的容量大小int num;//当前存储的元素个数T* data;//存储数据的空间地址public://无参构造…

C++下基于粒子群算法解决TSP问题

粒子群优化算法求解TSP旅行商问题C&#xff08;2020.11.12&#xff09;_jing_zhong的博客-CSDN博客 混合粒子群算法&#xff08;PSO&#xff09;&#xff1a;C实现TSP问题 - 知乎 (zhihu.com) 一、原理 又是一个猜答案的算法&#xff0c;和遗传算法比较像&#xff0c;也是设…

小米手机安装面具教程(Xiaomi手机获取root权限)

文章目录 1.Magisk中文网&#xff1a;2.某呼&#xff1a;3.最后一步打开cmd命令行输入的时候:4.Flash Boot 通包-Magisk&#xff08;Flash Boot通刷包&#xff09;5.小米Rom下载&#xff08;官方刷机包&#xff09;6.Magisk最新版本国内源下载 1.Magisk中文网&#xff1a; htt…

深入解析 Nginx 代理配置:从 server 块到上游服务器的全面指南

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

XSS跨站脚本攻击

XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击,XSS属于客户端攻击&#xff0c;受害者最终是用户&#xff0c;在网页中嵌入客户端恶意脚本代码&#xff0c;最常用javascript语言。&#xff08;注意&#xff1a;叠成样式表CSS已经被占用所以叫XSS&#xff09…

(vue2).sync修饰符、ref和$refs、$nextTick、自定义指令、插槽

.sync修饰符 实现子组件和父组件数据的双向绑定 &#xff0c;简化代码 prop属性名&#xff0c;可以自定义&#xff0c;非固定value 本质&#xff1a;属性名和update&#xff1a;属性名的合写 <BaseDialog :value"isShow" update"isShow$event"> /…

朋友圈大佬都去读研了,这份备考书单我码住了(文末赠书)

朋友圈大佬都去读研了&#xff0c;这份备考书单我码住了 1、《数据结构与算法分析》2、《计算机网络&#xff1a;自顶向下方法》3、《现代操作系统》4、《深入理解计算机系统》5、《概率论基础教程&#xff08;原书第10版》6、《线性代数&#xff08;原书第10版&#xff09;》7…

猫爪插件-官网下载方法

一、猫抓 github 二、下载 三、安装 谷歌浏览器&#xff0c;打开插件页面&#xff0c;打开开发者模式&#xff0c;将插件拖入浏览器安装。

数学实验-素数(Mathematica实现)

一、实验名称&#xff1a;素数 二、实验环境&#xff1a;Mathematica 10.3软件 三、实验目的&#xff1a;本实验将探讨素数的规律&#xff0c;研究素数的判别、最大的素数、构成生成素数的公式和素数的分布&#xff0c;并学会求解某些范围内的素数。 四、实验内容、步骤以及…