Ant Design Vue 下拉框输入框 可以输入 可以查询

Ant Design Vue 下拉框 可以输入 可以查询 直接上代码

效果图 (输入内容查询后端 返回下拉的值 ,如何查询后端是空的直接 把输入的内容 赋值给 输入框)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<template>
  <div>
    <a-select
      v-model.lazy="inputValue"
      show-search
      default-active-first-option
      @search="onSearch"
      style="width: 200px"
    >
      <a-select-option v-for="option in dropdownOptions" :key="option">{{ option }}</a-select-option>
    </a-select>
  </div>
</template>

<script>
import { getAction, postAction } from '@/api/manage';

export default {
  data() {
    return {
      dropdownOptions: [],
      inputValue: '', // 添加一个用于保存输入内容的变量
    };
  },
  methods: {
    onSearch(value) {
      // 如果输入值为空,则清空下拉选项
      if (!value) {
        this.dropdownOptions = [];
        return;
      }

      this.inputValue = value; // 更新输入框的值为输入内容

      // 发起异步请求获取模糊匹配的下拉选项
      getAction('/material/getNameOter', { name: value, type: 'name' }).then((res) => {
        if (res && res.code === 200) {
          if (res.data.rows && res.data.rows.length > 0) {
            this.dropdownOptions = res.data.rows[0];
          } else {
            this.dropdownOptions = [];
          }
        } else {
          this.dropdownOptions = [];
        }
      });

      // 将输入值传给后端
      this.sendValueToBackend(value);
    },
    sendValueToBackend(value) {
      console.log(value);
      // 调用后端接口,将输入值传给后端
      // axios.post('/your-backend-url', { value })
      //   .then(response => {
      //     // 处理后端返回的数据
      //   })
      //   .catch(error => {
      //     // 处理错误
      //   });
    },
  },
};
</script>

后端代码

  /** ycw
     * 查询商品名字 返回10条名字
     * @param name
     * @param type
     * @param request
     * @return
     * @throws Exception
     */
    @GetMapping(value = "/getNameOter")
    @ApiOperation(value = "单据明细列表")
    public BaseResponseInfo getNameOter(@RequestParam("name") String name,
                                    @RequestParam("type") String type,
                                    HttpServletRequest request) throws Exception {
        JSONObject outer = new JSONObject();
        BaseResponseInfo res = new BaseResponseInfo();
        JSONArray dataArray = new JSONArray();
        List<String> result = new ArrayList<>();
        try {
            Material material1 = new Material();
            if (type.equals("name")) {
                material1.setName(name);
                List<Material> dataList = materialMapper.selectByOther(material1);
                if (dataList != null && dataList.size() > 0) {
                    for (Material material : dataList) {
                        result.add(material.getName());
                    }
                }else{
//                    result.add(name);
                }
            }
            dataArray.add(result);
            outer.put("rows", dataArray);
            res.code = 200;
            res.data = outer;
        } catch (Exception e) {
            e.printStackTrace();
            res.code = 500;
            res.data = "获取数据失败";
        }
        return res;
    }

放入 实际代码里面的内容 多了一个赋值的 this.form.setFieldsValue({‘name’: value})

              <a-col :md="6" :sm="24">
                <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="名称" data-step="1" data-title="名称" data-intro="名称必填,可以重复">
                  <a-select placeholder="请输入名称" v-decorator.trim="[ 'name', validatorRules.name]"
                    v-model.lazy="inputValue"
                    show-search
                    default-active-first-option
                    @search="onSearch"
                    style="width: 200px"
                  >
                    <a-select-option v-for="option in dropdownOptions" :key="option">{{ option }}</a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
     onSearch(value) {
        // 如果输入值为空,则清空下拉选项
        if (!value) {
          this.dropdownOptions = [];
          return;
        }
        // 重置输入框的值为空
        // this.inputValue = '';
        this.inputValue = value; // 更新输入框的值为输入内容
        this.form.setFieldsValue({'name': value})
        // 发起异步请求获取模糊匹配的下拉选项
        getAction('/material/getNameOter', { name: value, type: 'name' }).then((res) => {
          if (res && res.code === 200) {
            if (res.data.rows && res.data.rows.length > 0) {
              this.dropdownOptions = res.data.rows[0];
            } else {
              this.dropdownOptions = [];
            }
          } else {
            this.dropdownOptions = [];
          }
        });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/77785.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】基于深度学习的时序预测——Autoformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…

力扣 213. 打家劫舍 II

题目来源&#xff1a;https://leetcode.cn/problems/house-robber-ii/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a; 对于一个数组&#xff0c;成环的话主要有如下三种情况&#xff1a;&#xff08;1&#xff09;考虑不包含首尾元素&#xff1b;&…

一生一芯4——使用星火应用商店在ubuntu下载QQ、微信、百度网盘

星火应用商店可以非常方便的完成一些应用的下载&#xff0c;下面是官方网址 http://spark-app.store/download 我使用的是intel处理器&#xff0c;无需下载依赖项&#xff0c;直接点击软件本体 我这里下载amd64,根据自己的处理器下载对应版本 sudo apt install ./spark-stor…

性能分析之MySQL慢查询日志分析(慢查询日志)

一、背景 MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。 慢查询日志一般用于性能分析时开启,收集慢SQL然后通过explain进行全面分析,一…

Wordcloud | 风中有朵雨做的‘词云‘哦!~

1写在前面 今天可算把key搞好了&#xff0c;不得不说&#x1f3e5;里手握生杀大权的人&#xff0c;都在自己的能力范围内尽可能的难为你。&#x1f602; 我等小大夫也是很无奈&#xff0c;毕竟奔波霸、霸波奔是要去抓唐僧的。 &#x1f910; 好吧&#xff0c;今天是词云&#x…

Mathematica 与 Matlab 常见复杂指令集汇编

Mathematica 常见指令汇编 Mathematica 常见指令 NDSolve 求解结果的保存 sol NDSolve[{y[x] x^2, y[0] 0, g[x] -y[x]^2, g[0] 1}, {y, g}, {x, 0, 1}]; numericSoly sol[[1, 1, 2]]; numericSolg sol[[1, 2, 2]]; data Table[{x, numericSoly[x], numericSolg[x]},…

PG常用SQL

数据库 创建数据库 PostgreSQL 创建数据库可以用以下三种方式&#xff1a; 1、使用 CREATE DATABASE SQL 语句来创建。2、使用 createdb 命令来创建。3、使用 pgAdmin 工具。 CREATE DATABASE 创建数据库 CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行&#xff0…

【会议征稿信息】第二届信息学,网络与计算技术国际学术会议(ICINC2023)

2023年第二届信息学&#xff0c;网络与计算技术国际学术会议(ICINC2023) 2023 2nd International Conference on Informatics,Networking and Computing (ICINC 2023) 2023年第二届信息学&#xff0c;网络与计算技术国际学术会议(ICINC2023)将于2023年10月27-29日于中国武汉召…

【第二阶段】kotlin的函数类型作为返回类型

fun main() {//调用,返回的是一个匿名类型&#xff0c;所以info就是一个匿名函数val infoshow("",0)//info接受的返回值为匿名类型&#xff0c;此时info就是一个匿名函数println(info("kotlin",20)) }//返回类型为一个匿名函数的返回类型fun show(name:Str…

内网穿透-外远程连接中的RabbitMQ服务

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

音视频FAQ(三):音画不同步

摘要 本文介绍了音画不同步问题的五个因素&#xff1a;编码和封装阶段、网络传输阶段、播放器中的处理阶段、源内容产生的问题以及转码和编辑。针对这些因素&#xff0c;提出了相应的解决方案&#xff0c;如使用标准化工具、选择强大的传输协议、自适应缓冲等。此外&#xff0…

P1123 取数游戏

取数游戏 题目描述 一个 N M N\times M NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8 8 8 个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求…

Mac如何打开隐藏文件中Redis的配置文件redis.conf

Redis下载(通过⬇️博客下载的Redis默认路径为&#xff1a;/usr/local/etc) Redis下载 1.打开终端进入/usr文件夹 cd /usr 2.打开/local/文件夹 open local 3.找到redis.conf并打开,即可修改配置信息

ApiPost设置全局令牌

为了避免请求接口每次都要请求登录&#xff0c;获取令牌鉴权&#xff0c;我们可以设置全局令牌&#xff08;token&#xff09;&#xff0c;避免处处单独使用令牌&#xff0c;造成环境混乱&#xff0c;使用如下&#xff1a; 接口设置 我们先配置好请求接口和请求参数&#xff0…

内网穿透实战应用——【通过cpolar分享本地电脑上有趣的照片:发布piwigo网页】

通过cpolar分享本地电脑上有趣的照片&#xff1a;发布piwigo网页 文章目录 通过cpolar分享本地电脑上有趣的照片&#xff1a;发布piwigo网页前言1. 设定一条内网穿透数据隧道2. 与piwigo网站绑定3. 在创建隧道界面填写关键信息4. 隧道创建完成 总结 前言 首先在本地电脑上部署…

4.0 Spring Boot入门

1. Spring Boot概述 Spring Boot介绍 Spring Boot是Pivotal团队在2014年推出的全新框架&#xff0c;主要用于简化Spring项目的开发过程&#xff0c;可以使用最少的配置快速创建Spring项目。 Spring Boot版本 2014年4月v1.0.0.RELEASE发布。 ​ 2.Spring Boot特性 约定优于配…

NGINX负载均衡及LVS-DR负载均衡集群

目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理&#xff1a; 1. 当用户向负载均衡调度器&#xff08;Director Server&#xff09;发起请求&#xff0c;调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求&#xff0c;判断目标IP确定是本机IP&#xff…

STABLE DIFFUSION模型及插件的存放路径

记录下学习SD的一些心得&#xff0c;使用的是秋叶大佬的集成webui&#xff0c;下载了之后点击启动器即可开启&#xff0c;文件夹中的内容如下 主模型存放在models文件下的stable-diffusion文件夹内&#xff0c;一些扩展类的插件是存放在extensions文件夹下

MapReduce介绍

目录 ​一、什么是MapReduce 二、MapReduce 的设计思想 2.1 分而治之 2.2 构建抽象模型&#xff1a;Map和Reduce 2.3 隐藏系统层细节 三、MapReduce 的框架原理 3.1 MRv1工作原理 3.1.1 MRv1架构工作原理图 3.1.1.1 流程说明 3.1.1.1.1 作业的提交 3.1.1.1.2 作业的初始化 3…