赞
踩
在最近的开发需求中,需要对element-ui-plus的select-v2的组件进行自定义的改装,即在搜索状态完成后,
如果发现无搜索内容,可进行自定义的进行添加当前的select的input框内。
select-v2提供了一个属性方法,即allow-create的属性, 为了使 allow-create 正常工作,
filterable 的值必须为 true。但是我们发现,使用这个属性后,如果输入的是已经存在的
值,它也会默认进行创建,这不是我们想要的效果。如图所示;
通过调查研究发现,可以使用如下的方法进行解决。
使用自定义的空状态的插槽,设置一个添加按钮,监听该按钮,当发现无搜索数据时,点击添加按钮,就把
当前的input的值替换为搜索框输入的值。
html:
<el-select-v2 ref="selectAppType" >
<template #empty>
<div :class="[app.e('select-add')]">
<span>
无搜索结果
</span>
<el-button @click="selectValAdd" type="primary">
添加
</el-button>
</div>
</template>
</el-select-v2>
js:
import { ref, reactive, toRefs, onMounted } from "vue";
const selectAppType = ref();
//增加自定义下拉框的值
const selectValAdd = () => {
let eleInput = document.getElementsByClassName("el-select-v2__input-calculator")[0];
let inputVal = eleInput.innerHTML; //通过绑定dom对象获取所需要的input的值
console.log(inputVal) //输出获取的input的值,该步可以对所需的赋值的对象进行赋值
selectAppType.value.expanded = false; //关闭下拉框
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。