体验el-select的远程搜索功能

需求描述

没有什么技术难度,需求如下,要求上来默认加载几个选项,然后根据用户的输入,实时更新选项,且支持用户新增。(请看gif)

解决方案

首先要找到了el-select组件,然后里面有一个远程搜索功能。
官方文档:https://element-plus.org/zh-CN/component/select.html

代码如下:

<el-select
  v-model="otherForm.other"
  filterable
  allow-create
  remote
  reserve-keyword
  placeholder="请输入自定义时区"
  :remote-method="getZoneAddress"
  :loading="otherForm.loading"
  remote-show-suffix
  style="width: 100%"
>
  <el-option
    v-for="(item, index) in otherForm.options"
    :key="index"
    :label="item"
    :value="item"
  />
</el-select>

代码中remote-show-suffix属性,用于展示下拉的那个图标,allow-create属性,用于新增,remote-method属性,绑定远程搜索的函数

const otherForm = reactive({
  other: '',
  loading: false,
  options: []
})

const getZoneAddress = (val) => {
  otherForm.loading = true
  zoneAddress({ other: val })
    .then((resp) => {
      otherForm.options = resp.data
    })
    .catch((error) => {
      console.log(error)
    })
    .finally(() => {
      otherForm.loading = false
    })
}

代码中zoneAddress是通过axios访问后台数据,并且给结果存储到otherForm.options中,函数getZoneAddress的参数val,是用户输入的值。

关于otherForm.options的格式['a','b','c']字符串数组就行

以上就简单实现了,基于vue3+elementplus+ts,希望会对你有所帮助。

有技术,有温度,没关注

form generator是一个表单生成器,可以帮助我们快速生成各种表单元素。而el-selectelement-ui框架中的一个下拉选择组件。要扩展el-select远程搜索功能,我们可以按照以下步骤进行。 首先,在form generator的代码中找到生成el-select组件的部分。一般来说,我们可以为el-select设置一个远程搜索的属性,比如remote-search。然后,在该属性的处理逻辑中,我们可以使用element-ui提供的el-autocomplete组件,实现远程搜索功能。 其次,为了实现远程搜索,我们需要在el-select远程搜索事件中发送Ajax请求。可以使用Vue.js提供的axios库或者使用element-ui的el-request库来发送请求。在请求中,我们需要传递远程搜索的关键字,一般是通过输入框实时获取用户输入的值。将这个关键字发送到后台,进行搜索操作。搜索的结果可以是JSON格式的数据,包含了符合条件的选项。 最后,当接收到后台返回的搜索结果后,我们可以根据结果来更新el-select的下拉选项列表。可以通过修改el-select的options属性来实现。将搜索结果的数据添加到options列表中,然后重新渲染el-select,用户就可以看到符合搜索条件的选项。 综上所述,要扩展form generator中的el-select远程搜索功能,我们需要为el-select添加一个remote-search属性,处理该属性对应的远程搜索逻辑,并在搜索结果返回后更新el-select的下拉选项列表。这样,用户在使用表单生成器时可以方便地使用el-select远程搜索功能,提高了表单的灵活性和用户体验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值