封装成一个子组件

<template>
<el-cascader
v-model="value"
clearable
placeholder="请选择"
ref="cascaderHandle"
:options="searchOptions"
:disabled="disabled"
filterable
:props="{ checkStrictly: true, expandTrigger: 'hover' }"
:before-filter="beforeFilter"
@focus="focus"
@blur="blur">
</el-cascader>
</template> <script>
export default {
name: 'cascaderInput',
model: {
prop: 'data',
event: 'change'
},
props: {
data: {
type: Array,
default: ''
},
options: {
type: Array,
default: () => {
return []
}
},
disabled:{
type: Boolean,
default: false
}
},
data () {
return {
keyword: this.data.join('/'),
value: this.data,
flag: 0
}
},
computed: {
search() {
const k = this.keyword
let result = [{label: k, value: k}]
if(this.isJsonString(k)) {
result[0] = {label: JSON.parse(k).label || k, value: k}
}
return result
},
searchOptions() {
return this.options.concat(this.search)
},
},
methods: {
isJsonString(str) {
let result = true
try{
JSON.parse(str)
}catch(erro){
result = false
}
return result
},
beforeFilter(keyword) {
this.keyword = keyword
this.value = [ keyword ]
},
focus(e) {
(this.flag == 0) && (e.target.addEventListener('keyup', this.keyup, false));
this.flag++;
},
blur(e) {
},
keyup(e) {
let value = e.target.value
if(value.length == 0) {
/*this.keyword = '无';*/
this.value = []
}
},
},
watch: {
value: {
deep: true,
handler(v,e) {
this.$emit('change', v)
if(this.$refs.cascaderHandle) {
var children = this.$refs.cascaderHandle.getCheckedNodes();
// if(children[0].children.length < 1){ //判断有没有下级
this.$refs.cascaderHandle.dropDownVisible = false; //监听值发生变化就关闭它
// }
}
}
},
data: {
deep: true,
handler(v) {
if(v.length == 1) this.keyword = v.join('/');
this.value = Array.isArray(v) ? v : v.split('/')
}
}
}
}
</script>

element Ui的级联选择器 任意一级选中下拉框自动关闭的更多相关文章

  1. js选中下拉框的默认选项

    //这是修改时选中 $("#type").find("option[value='"+factory+"']").attr("se ...

  2. 记录一下使用element ui使用级联选择器的坑,级联选择器的默认选中

    Cascader 级联选择器 使用级联选择器我使用的是默认选中值 下面是我的数据格式,只是形式相同,值不同, 后台的数据是这样的不是ID //级联选择器 <el-cascader :props= ...

  3. kendo 级联加带搜索的下拉框以及js赋值

    1‘.js给下拉框赋值 $("#UserRole").data("kendoDropDownList").value(dataItem.RoleName); $ ...

  4. robotframework 随机选中下拉框中的值

    示例脚本: click element id=provinceName #点击地区 省 wait until element is enabled xpath=.//*[@id='provinceNa ...

  5. element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)

    来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...

  6. Element UI:级联选择器Cascader_动态加载_多级请求不同接口(已知第一级调取第二级)

    ELEMENT UI_CASCADER 使用过饿了么级联动态加载的小伙伴应该都知道,lazyLoad本身是一个无差别返回渲染结点的函数. 当我们存在一个需求:已知级联选择器的第一级结点,现在需要通过第 ...

  7. 基于element ui的级联选择器组件实现的分类后台接口

    今天在做资产管理系统的时候遇到一个分类的级联选择器,前端是用的element的组件,需要后台提供接口支持.     这个组件需要传入的数据结构大概是这样的,详细的可参考官方案例: [{ value: ...

  8. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  9. JSP默认选中下拉框的某一项

    注意<c:if>标签要写在<option>标签里面 <select id="salesInventory_${s.index}" style=&quo ...

随机推荐

  1. C:算术表达式求值

    代码: // fgets2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #includ ...

  2. 使用StringUtils需要引用的依賴

    <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</ar ...

  3. House of Orange

    题目附件:https://github.com/ctfs/write-ups-2016/tree/master/hitcon-ctf-2016/pwn/house-of-orange-500 查看程序 ...

  4. mysql与redis区别

     编号   mysql redis 1 类型 关系型数据库 缓存数据库 2 作用 主要用于存放持久化数据,是将数据存储在硬盘中,读取时速度较慢,而且频繁访问也会导致数据库负载过高. 用于存储使用频繁的 ...

  5. linux:apache-配置基于域名的虚拟机主机

    一个http服务要配置多个站点,就需要用到虚拟机主机. 虚拟机主机一般有三类:1.基于域名 2.基于端口 3.基于ip 举例操作基于域名配置三个站点: 域名 站点目录 www.eejind.com   ...

  6. Httprunner框架学习

    前言 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试. 官方文档:https://docs.httprunner. ...

  7. 分布式事务框架.NetCore CAP总结

    来自CAP原作者yang-xiaodong的原理图: 本文撰写者:cmliu,部分内容引用自官方文档,部分内容待更新# .NetCore CAP # 1,简介 CAP 是一个遵循 .NET Stand ...

  8. PHP学习路线图(转)

    PHP学习路线图 在网上很多人公布了太多的PHP学习路线图,本人在互联网公司工作十余年,也带了很多PHP入门的新手,将他们的一些问题和学习路线图为大家整理出来,希望很多小白少走弯路. 一. 网上某些错 ...

  9. Linux 【Shell脚本经典案例】

    Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理 ...

  10. JavaScript中关于获取浏览器可视窗口的几个兼容性写法的理解

    1.浏览器可视窗口的概述: 浏览器可视区域不是网页的body的大小.可视区指的是浏览器减去上面菜单栏.工具栏,下面状态栏和任务栏,右边滚动条(如果有的话)后的中间网页内容的单页面积大小.而body大小 ...