element Ui的级联选择器 任意一级选中下拉框自动关闭
封装成一个子组件
<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的级联选择器 任意一级选中下拉框自动关闭的更多相关文章
- js选中下拉框的默认选项
//这是修改时选中 $("#type").find("option[value='"+factory+"']").attr("se ...
- 记录一下使用element ui使用级联选择器的坑,级联选择器的默认选中
Cascader 级联选择器 使用级联选择器我使用的是默认选中值 下面是我的数据格式,只是形式相同,值不同, 后台的数据是这样的不是ID //级联选择器 <el-cascader :props= ...
- kendo 级联加带搜索的下拉框以及js赋值
1‘.js给下拉框赋值 $("#UserRole").data("kendoDropDownList").value(dataItem.RoleName); $ ...
- robotframework 随机选中下拉框中的值
示例脚本: click element id=provinceName #点击地区 省 wait until element is enabled xpath=.//*[@id='provinceNa ...
- element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)
来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...
- Element UI:级联选择器Cascader_动态加载_多级请求不同接口(已知第一级调取第二级)
ELEMENT UI_CASCADER 使用过饿了么级联动态加载的小伙伴应该都知道,lazyLoad本身是一个无差别返回渲染结点的函数. 当我们存在一个需求:已知级联选择器的第一级结点,现在需要通过第 ...
- 基于element ui的级联选择器组件实现的分类后台接口
今天在做资产管理系统的时候遇到一个分类的级联选择器,前端是用的element的组件,需要后台提供接口支持. 这个组件需要传入的数据结构大概是这样的,详细的可参考官方案例: [{ value: ...
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...
- JSP默认选中下拉框的某一项
注意<c:if>标签要写在<option>标签里面 <select id="salesInventory_${s.index}" style=&quo ...
随机推荐
- leetcode刷题-80.删除排序数组中的重复项 II
题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...
- 分布式处理框架Hadoop的安装与使用
Hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序. 充分利用集群的威力进行高速运算和存储.Hadoop实现了一 ...
- Playbook使用,编写YAML
YAML是什么? YAML是一个可读性高.用来表达数据序列的格式语言 YAML:YAML Ain't a Markup Language YAML以数据为中心,重点描述数据的关系和结构 YAML的格式 ...
- 本机ping不通虚拟机,但虚拟机可以ping通本机时怎么解决
在各自网络都连接的情况下,本机ping不通虚拟机,但虚拟机可以ping通本机时解决方案: 1.linux虚拟机中连接方式选择NAT模式 2.本地启动VMnet8,然后选择VMnet8的属性,手动输入和 ...
- [LeetCode]Sql系列4
##题目1 626. 换座位 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id. 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位. ...
- 记tp5.1使用composer PhpOffice的xlsx表格文件导入数据库
在项目环境下composer require phpoffice/phpspreadsheet在项目中引用use PhpOffice\PhpSpreadsheet\IOFactory; 下面是 上传x ...
- Redis哨兵模式(sentinel)部署
1 主机环境 我这里使用的操作系统是centos 6.5,安装在vmware上,共三台. 主机名 IP 操作系统 用户名 安装目录 node1 192.168.1.101 centos 6.5 wxy ...
- python与Oracle
1.python 3.6.6 2.使用cx_Oracle -----------安装方法:pip install cx_Oracle 3.游标 cursor -----游标是系统为用户开创的 ...
- Powershell编程基础-002-日期及日期格式化
在Powershell中,关于日期,时间计算与格式化,常用的如下: $today=Get-Date ...
- php bypass disable function
前言 最近开学,事太多了,好久没更新了,然后稍微闲一点一直在弄这个php bypass disable function,一开始自己的电脑win10安装蚁剑的插件,一直报错.怀疑是必须linux环境. ...