问题背景:
在最近的开发需求中,需要对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:文章来源:https://www.toymoban.com/news/detail-513089.html
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; //关闭下拉框
}
实现效果:
文章来源地址https://www.toymoban.com/news/detail-513089.html
到了这里,关于使用Element-Ui-Plus时,对select-v2进行自定义操作,可以自定义添加筛选后无数据的选项进行添加。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!