vue el-cascader组件change失效以及下拉框不消失的问题

news2024/9/24 9:24:53

文章目录

      • 1.前言
      • 2. 碰到的问题
      • 3. 如何解决这两个问题

1.前言

最近项目上用到el-cascader这个组件,需要可以选第一级菜单,也需要可以选第二级菜单,点击完成之后需要关闭下拉框。其实功能比较简单,找了很多资料,没有找到合适的方案,下面还是自己想了个方案才解决问题

2. 碰到的问题

1.如何让下拉框消失?
2.change方法只是值发生改变才会触发,如果是同一个值就不会触发这个方法,我看有些人还去改源码?

3. 如何解决这两个问题

首先需要change方法

    //关闭联级面板
    cascaderChange() {
      //监听值发生变化就关闭它
      this.$refs.cascaderLocation.dropDownVisible = false;
      this.$refs.cascaderType.dropDownVisible = false;
    },

然后还需要visible-change这个方法,当下拉框出现值为true,下拉框消失值为false

//地点
<el-cascader
  v-model="formSearch.location"
  :show-all-levels="false"
  :options="locations"
  :props="{ checkStrictly: true, expandTrigger: 'hover' }"
  ref="cascaderLocation"
  @change="cascaderChange"
  clearable
  style="width:210px;"
  @visible-change="value => cascaderVisibleChange(value, 'location')"
></el-cascader>

//算法类型
<el-cascader
  v-model="formSearch.type"
  :show-all-levels="false"
  :options="algorithms"
  :props="{ checkStrictly: true, expandTrigger: 'hover' }"
  style="width:130px;"
  ref="cascaderType"
  @change="cascaderChange"
  @visible-change="value => cascaderVisibleChange(value, 'type')"
></el-cascader>

项目里面用了两种类型的,逻辑是当点开下拉框,先把原始值保存起来,再把值直接赋值为空,保存起来的目的是防止用户没选直接关闭了下拉框,这种情况就需要用到原来保存起来的值

cascaderVisibleChange(value, type) {
  if (value) {
    if (type == "location") {
      this.oldLocation = this.formSearch.location;
      this.formSearch.location = "";
    } else if (type == "type") {
      this.oldType = this.formSearch.type;
      this.formSearch.type = "";
    }
  } else {
    if (type == "location" && !this.formSearch.location) {
      this.formSearch.location = this.oldLocation;
    } else if (type == "type" && !this.formSearch.type) {
      this.formSearch.type = this.oldType;
    }
  }
}

结果如下图:
在这里插入图片描述

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

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

相关文章

全域营销趋势下,品牌如何让流量变留量?

2023年已开始倒计时。 回望过去三年&#xff0c;社媒直播电商经历了从“野蛮生长”到“有序生长”的快速发展时期。 罗永浩的“真还传”、新东方向东方甄选的转型、董洁直播出圈翻红&#xff0c;命运的齿轮在不断转动&#xff0c;新的故事在不断抒写着。 伴随着头部达人的快速更…

纯生信轻松拿下5+分文。铜死亡+免疫浸润+预后模型,快学起来吧

今天给同学们分享一篇生信文章“A novel defined risk signature of cuproptosis-related long non-coding RNA for predicting prognosis, immune infiltration, and immunotherapy response in lung adenocarcinoma”&#xff0c;这篇文章发表在Front Pharmacol期刊上&#x…

【Sprin Aop注解式开发快速复习Aop】

Aop一般有以下常用注解: Aspect: 该注解是把此类声明为一个切面类。 Before: 该注解是声明此方法为前置通知 (目标方法执行之前就会先执行被此注解标注的方法) After: 该注解是声明此方法为后置通知 (目标方法执行完之后就会执行被此注解标注的方法) AfterReturning: 该注解…

Axure元件库的介绍以及个人简介和登录界面案例展示

目录 一. 元件介绍 二. 基本元件的使用 2.1 形状元件 2.2 图片元件 2.3 占位符 2.4 文本 2.5 线段元件 2.6 热区文件 三. 表单元件的使用 3.1 文本框 3.2 文本域 3.3 下拉列表 3.4 列表框 3.5 复选框 3.6 单选按钮 四. 菜单与表格元件的使用 4.1 树 4.2 表格…

基于单片机智能家具无线遥控控制系统设计

**单片机设计介绍&#xff0c;基于单片机智能家具无线遥控控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能家具无线遥控控制系统设计可以实现对家具&#xff08;如灯具、窗帘、空调等&#xff09;的…

JOSEF 组合中间继电器 RXMM1-RK214003 DC220V 不带底座

系列型号 RXMM1 RK 214 002组合中间继电器&#xff1b;RXMM1 RK 214 003组合中间继电器; RXMM1 RK 214 004组合中间继电器&#xff1b;RXMM1 RK 214 005组合中间继电器; RXMM1 RK 214 006组合中间继电器&#xff1b; 1 用途 RXMM1系列组合中间继电器用于电力系统二次回路及…

手把手教你写 Compose 动画 -- 组件大小变化 API:animateContentSize

Jetpack Compose 提供了一系列功能强大且可扩展的 API&#xff0c;可用于在应用界面中轻松实现各种动画效果。这一系列文章会逐个介绍所有的动画 API&#xff0c;通过最直观的 Demo 示例&#xff0c;手把手教你怎么写动画以及带你了解动画背后的原理。 &#x1f4d1; 手把手教你…

【Python】解读a+=b 和 a=a+b是否一样?看完恍然大悟!

文章目录 前言一、可变对象和不可变对象总结 前言 在Python中&#xff0c;对于可变和不可变对象的行为差异是一个重要概念&#xff0c;特别是在涉及到和操作时。理解这一点对于编写高效且无误的代码至关重要。 一、可变对象和不可变对象 首先&#xff0c;让我们谈谈可变和不可…

Webstorm使用方法

标题一 安装步骤 1.打开JetBrans官方网站&#xff08;https://www.jetbrains.com/webstorm&#xff09;并下载适用于您操作系统的WebStorm安装程序 2.运行下载的安装程序 3.再安装程序中选择您想要安装WebStorm的位置&#xff0c;并接收软件许可协议 4.接下来您可以选择要安…

python中else的细节

if-else 首先我们都知道else可以和if共同使用&#xff0c;如果if条件没有执行&#xff0c;就会去执行else语句 a100 if a100:print("if 语句执行了") else:print("else语句执行了") a10 if a100:print("if 语句执行了") else:print("else…

计算机组成原理---浮点数的加减运算

这是本人的做法&#xff0c;不喜勿喷&#xff01;

mac 安装nvm以及切换node版本详细步骤

1、nvm介绍&#xff08;node版本管理工具&#xff09; nvm 可以让你通过命令行快速安装和使用不同版本的node 有时候项目太老&#xff0c;node版本太高,执行npm install命令会报错,可以借助nvm切换低版本的node。 2、安装nvm 在终端执行安装命令 curl -o- https://raw.gith…

Linux route命令详解

1、介绍 route命令用于显示和操作IP路由表&#xff0c;它允许用户查看当前系统的路由信息&#xff0c;添加新的路由、删除已有的路由等。 2、命令 2.1 命令选项 -n, --numeric&#xff1a;不解析主机名&#xff0c;直接显示IP地址。使用这个选项可以加快显示速度&#xff0…

蓝凌EIS智慧协同平台 SQL注入漏洞复现

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为企业提供高效协同办公和团队合作的产品。该平台集成了各种协同工具和功能&#xff0c;旨在提升企业内部沟通、协作和信息共享的效率。 0x02 漏洞概述 由于蓝凌EIS智慧协同平台 UniformEntry.asp接口处未对用户输入的SQL语句进行…

DeepStream--调试Gstreamer

DeepStream是基于Gstreamer开发的。有时候需要在Gstreamer加日志&#xff0c;比如想在rtpjitterbuffer里加日志。 首先&#xff0c;执行gst-inspect-1.0 rtpjitterbuffer命令。 从结果中可以看到&#xff0c;rtpjitterbuffer插件的源码是gst-plugins-good&#xff0c;版本是1…

广州华锐互动:VR煤矿安全操作规程实训提升矿工安全意识与技能

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为人们的生活带来了极大的便利。在煤矿行业&#xff0c;VR技术的应用也日益受到重视&#xff0c;尤其是在煤矿安全检查方面。为了提高矿工的安全意识和技能&#xff0…

springboot自定义starter步骤

引入相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional> </dependency><dependency><groupId>org.pro…

(基础篇)通过node增删改查连接mysql数据库

一定要会最基础的sql建表一定要会最基础的sql建表一定要会最基础的sql建表 首先说一下准备工作 一、准备工具 1.mysql数据库Navicat可视化工具&#xff08;数据库表单已经建好&#xff09; 我这里用的小皮工具直接开启的本地mysql 2.vscode (不用说基本上都有) 3.node.js …

C语言学习----指针和数组

&#x1f308;这篇blog记录一下指针学习~ 主要是关于指针和数组之间的关系&#xff0c;还有指针的使用等~ &#x1f34e;指针变量是一个变量 其本身也有一个地址 也需要存放&#xff0c;就和int char等类型一样的&#xff0c;也需要有一个地址来存放它 &#x1f34c;而指针变量…

自动生成采集规则的网页采集器

传统的采集器配置采集规则&#xff0c;需要查看网页源码&#xff0c;这要求用户具备一定的编程知识&#xff0c;增加了使用难度&#xff0c;也让很多不懂代码的用户无法采集数据了。 然而&#xff0c;现在有一种智能网页采集器工具&#xff1a;简数采集器&#xff0c;无需懂代…