返回顶部
首页 > 资讯 > 前端开发 > JavaScript >前端elementUI select选择器实现远程搜索
  • 195
分享到

前端elementUI select选择器实现远程搜索

2024-04-02 19:04:59 195人浏览 八月长安
摘要

目录elementUI select选择器远程搜索测试背景菜鸟用法官方参考elementUI select选择器远程搜索 测试背景 先提下背景:就是在测试的过程中,经常需要用到收货这

elementUI select选择器远程搜索

测试背景

先提下背景:就是在测试的过程中,经常需要用到收货这个功能。在PC端下了采购单,再到APP去对应功能里,再输入好多个字段,上传图片等动作后,终于可以提交。

于是,我决定在平台上加个小工具,快捷收货,方便测试用。

那么,在收货操作中,要有收货人这个角色。为了更好的适用性,我决定做成一个搜索框,支持实时搜索人员。于是,从elementUI上找到了select选择器 远程搜索。

菜鸟用法

这里提一下,前端菜鸟怎么去用elementUI上的这些组件:

  • 操作官方示例,感受组件的实际效果,确实是否满足你需求。
  • 展开示例代码,关注使用的字段、方法等。
  • copy示例代码,用你实际的数据、字段等去替换掉它,直到调试成功。
<template>
  <el-select
    v-model="value"
    multiple
    filterable
    remote
    reserve-keyWord
    placeholder="请输入关键词"
    :remote-method="remoteMethod"
    :loading="loading">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>
<script>
  export default {
    data() {
      return {
        options: [],
        value: [],
        list: [],
        loading: false,
        states: ["Alabama", "Alaska", "Arizona",
        "Arkansas", "California", "Colorado",
        "Connecticut", "Delaware", "Florida",
        "Georgia", "Hawaii", "Idaho", "Illinois",
        "Indiana", "Iowa", "Kansas", "Kentucky",
        "Louisiana", "Maine", "Maryland",
        "Massachusetts", "Michigan", "Minnesota",
        "Mississippi", "Missouri", "Montana",
        "Nebraska", "Nevada", "New Hampshire",
        "New Jersey", "New Mexico", "New York",
        "North Carolina", "North Dakota", "Ohio",
        "Oklahoma", "OreGon", "Pennsylvania",
        "Rhode Island", "South Carolina",
        "South Dakota", "Tennessee", "Texas",
        "Utah", "Vermont", "Virginia",
        "Washington", "West Virginia", "Wisconsin",
        "Wyoming"]
      }
    },
    mounted() {
      this.list = this.states.map(item => {
        return { value: `value:${item}`, label: `label:${item}` };
      });
    },
    methods: {
      remoteMethod(query) {
        if (query !== '') {
          this.loading = true;
          setTimeout(() => {
            this.loading = false;
            this.options = this.list.filter(item => {
              return item.label.toLowerCase()
                .indexOf(query.toLowerCase()) > -1;
            });
          }, 200);
        } else {
          this.options = [];
        }
      }
    }
  }
</script>

从示例代码里,可以看出:

states应该存放我后端接口返回的数据,示例里states是列表,我接口返回的也是列表,不过里面元素都是对象,每个对象里存着不同人的信息。

mounted()方法里面,是在渲染完成后,将states里的列表数据,进一步处理成一个对象,用map()返回一个新的列表,并且赋值给this.list

最终在remoteMethod(query)方法里,根据输入的传参query,对this.list里的数据进行过滤,返回出匹配的数据,赋值到this.options,这样下拉列表就可以展示结果。

这里的.indexOf(query.toLowerCase()) > -1,大于-1说明只要有就行,不论是不是开头也好,中间也好,或者结尾也好。比如搜“大周”,你输入“大”或者“周”,都可以搜到。

官方参考

赶紧参考官方示例,满心欢喜地开始修改代码:

// mounted()内容
        mounted() {
            this.list = this.states.map(item => {
                return { value: `${item.id}`, label: `${item.role_name}-${item.ad_real_name}` };
            });
        },// method()里内容
            remoteMethod(query) {
                if (query !== '') {
                    this.loading = true;
                    this.$axiOS.post("/api/receiveGoodsQuickly/getWmsAdminInfo", {
                        "ad_real_name": query,
                        "mchid": 6001
                    }).then((response) => {
                        this.states = response.data['content'];
                    });
                    setTimeout(() => {
                        this.loading = false;
                        this.options = this.list.filter(item => {
                            return item.label.toLowerCase()
                                .indexOf(query.toLowerCase()) > -1;
                        });
                    }, 1000);
                } else {
                    this.options = [];
                }
            },

可是实际执行效果是这样的:

我输入第一次“张三”,没结果。当我再输入一次“张三”,返回出了对应的结果。

我继续输入“李四”,仍然没结果,再输入一次“李四”,结果出来了......

后来发现,还是不能直接套用官方示例的,因为示例代码是直接初始化了数据在states里,而我实际是要去请求后端接口才能拿到数据。如此一来,当我第一次调用到remoteMethod
方法,实际上this.list是null。当我第二次调用的时候,其实出现的是上一次的查询结果。

最终,找到了解决办法,就是在computed增加处理步骤,computed起到侦听的作用,这样可以立即得到处理好的数据。

computed: {
            listSet() {
                return this.states.map(item => {
                    return { value: `${item.id}`, label: `${item.role_name}-${item.ad_real_name}` };
                });
            }
        },
 setTimeout(() => {
                        this.loading = false;
                        this.options = this.listSet.filter(item => { // 这里的this.list,换为this.listSet
                            return item.label.toLowerCase()
                                .indexOf(query.toLowerCase()) > -1;
                        });
                    }, 1000);

调试通过,搜索结果实时展示。

以上就是前端elementUI select选择器实现远程搜索的详细内容,更多关于前端elementUI select远程搜索的资料请关注编程网其它相关文章!

--结束END--

本文标题: 前端elementUI select选择器实现远程搜索

本文链接: https://lsjlt.com/news/150283.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 前端elementUI select选择器实现远程搜索
    目录elementUI select选择器远程搜索测试背景菜鸟用法官方参考elementUI select选择器远程搜索 测试背景 先提下背景:就是在测试的过程中,经常需要用到收货这...
    99+
    2024-04-02
  • 前端elementUI select选择器怎么实现远程搜索
    这篇文章主要介绍“前端elementUI select选择器怎么实现远程搜索”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端elementUI select选择器怎么实现远程搜...
    99+
    2023-06-30
  • Vue中Element分组+多选+可搜索Select选择器怎么实现
    这篇文章主要为大家展示了“Vue中Element分组+多选+可搜索Select选择器怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中El...
    99+
    2024-04-02
  • elementUI实现级联选择器
    本文实例为大家分享了elementUI实现级联选择器的具体代码,供大家参考,具体内容如下 1、从后端调用接口,传递数据到前端 2、使用VUE代码显示级联选项 <el-ca...
    99+
    2024-04-02
  • vue+elementui实现下拉表格多选和搜索功能
    本文实例为大家分享了vue+elementui实现下拉表格多选和搜索的具体代码,供大家参考,具体内容如下 在elementui的基础上对下拉框和表格进行组合 template ...
    99+
    2024-04-02
  • 前端怎么实现搜索功能模块
    本篇内容介绍了“前端怎么实现搜索功能模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用户使用产品,享受功...
    99+
    2024-04-02
  • Element中Select选择器的实现
    本篇是关于下拉框相关知识点总结 今天来整理一下目前最喜欢的el组件 el-select:Element官网 最近真的做梦都是这个组件的相关属性clearable和filterable...
    99+
    2024-04-02
  • 前端 el-table 本地搜索的实现代码
    <el-input style="width:12vw;" size="mini" v-model="askSearch.go...
    99+
    2024-04-02
  • vue+elementui如何实现下拉表格多选和搜索功能
    这篇文章主要介绍“vue+elementui如何实现下拉表格多选和搜索功能”,在日常操作中,相信很多人在vue+elementui如何实现下拉表格多选和搜索功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”v...
    99+
    2023-06-21
  • ElementUI年份范围选择器功能实现
    目录ElementUI 年份范围选择器实现效果依赖组件代码调用组件代码总结ElementUI 年份范围选择器 Element的日期选择器组件没有提供选择年份范围的功能。由于项目需要,...
    99+
    2023-02-10
    elementui日期选择器范围 element选择年度范围 element日期选择器
  • ElementUI日期选择器时间选择范围限制的实现
    目录单个输入框的情景1: 设置选择今天以及今天之后的日期情景2: 设置选择今天以及今天以前的日期情景3: 设置选择今天之后的日期(不能选择当天时间)两个输入框情景1: 限制结束日期不...
    99+
    2024-04-02
  • 微信小程序如何实现城市选择及搜索功能
    这篇文章给大家分享的是有关微信小程序如何实现城市选择及搜索功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现搜索城市功能js文件// pages/address/a...
    99+
    2024-04-02
  • SpringBoot+Mybatis plus+React实现条件选择切换搜索实践
    在写React前端逻辑时,经常遇到可以切换不同条件的列表查询功能,例如下边截图这样的,其实,这块代码基本都一个逻辑,可以一次性将实现过程记录下来,待以后再遇到时,直接根据笔记复用即可...
    99+
    2024-04-02
  • 前端JavaScript实现本地模糊搜索功能的方法实例
    目录一、项目前景二、涉及知识点Object.assign()的用法filter()方法indexOf()模糊查询DEMO完整代码如下:总结一、项目前景 随着vue、react在实际...
    99+
    2024-04-02
  • web前端怎么实现图片选择题特效
    这篇文章主要介绍“web前端怎么实现图片选择题特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“web前端怎么实现图片选择题特效”文章能帮助大家解决问题。架构和概念抽象整体的实现思路如下MediaP...
    99+
    2023-07-05
  • elementUI自定义上传文件功能实现(前端后端超详细过程)
    目录简介:1.简单介绍组件( upload)的属性(熟悉参数的直接略过)2.主要目的自定义上传文件2.1 组件代码2.2 data中的属性2.3 methods的方法3.与其他参数通...
    99+
    2022-11-16
    element ui 自定义上传 element上传文件 elementui 文件上传
  • Vue+elementUI下拉框自定义颜色选择器怎么实现
    这篇“Vue+elementUI下拉框自定义颜色选择器怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue+elem...
    99+
    2023-07-05
  • 必备的Ajax框架:轻松实现前端交互的五个选择
    轻松实现前端交互:五个必备的Ajax框架 在现代的Web开发中,前端交互已经成为了不可或缺的一部分。而Ajax(Asynchronous JavaScript and XML)则是实现前端与服务器之间异步通信的一种技术。它使得我...
    99+
    2024-01-26
    前端交互 轻松实现 Ajax框架
  • 利用级联选择器实现省市区三级联动【vue + elementUI Plus | uViewUI】
    文章目录 准备数据vue + ElementUI Plus 利用级联选择器实现省市区三级联动学习记录具体代码 vue + uViewUI 利用选择器多列联动实现省市区三级联动 (uniapp学习记录具体代码 准备数据 ...
    99+
    2023-08-19
    vue.js elementui javascript 小程序 前端
  • 微信小程序实现课程选择器
    本文实例为大家分享了微信小程序实现课程选择器的具体代码,供大家参考,具体内容如下 话不多说,直接上效果图 代码如下 wxml <view class="urg_input"&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作