vue3 antd table表格的增删改查(二)input输入框根据关键字搜索【后台管理系统 请求后端接口 前后端交互】

news2024/10/7 10:20:25

input输入框——关键字模糊搜索

  • 知识调用
  • 场景复现
  • 准备工作
  • 解决方法
    • step1 请求接口
    • step2 根据id搜索
    • step3 优化处理(输入框监听)

知识调用

功能实现可能要用到的知识:
vue3数据变化侦测&&信息筛选过滤.filter() .map() .forEach(). find()🔥
vue3【watch检测/监听】watch检测数据变化&&监听使用🔥🔥
vue3+ant design vue+ts实战【ant-design-vue组件库引入】🔥
vue3 antd 项目实战——table表格(一文教你实现最简单的table表格)🔥🔥

上期文章介绍了纯前端通过filter过滤器实现的input搜索框根据关键字搜索。
本期文章将会介绍用前后端交互的方式【调用后端接口】 来实现input搜索框根据id搜索

上期文章回顾
vue3 antd table表格的增删改查(一)input输入框根据关键字搜索【后台管理系统纯前端filter过滤】

场景复现

纯前端实现关键字搜索,显然很简单,但是在项目中,一般都会编写与搜索相关的接口,将任务功能的实现分工,因此在有接口的情况下,我们也要学会如何使用接口来实现搜索。

通过接口将从后端获取到的数据展现在表格内,现在需要实现根据id的搜索功能

大致功能需求如下:

  • 输入关键字 点击搜索按钮 能够搜索相应的内容
  • 表格能够根据搜索的内容 实时更新数据
  • 当输入框内容清空之后 表格内容能够实时更新优化

解决前的初始状态:初始表格效果

  • 已经完成了对数据的获取与显示
  • 已经完成了对表格的简单处理(表格的处理不难)
  • 可以参考vue3 antd 项目实战——table表格(一文教你实现最简单的table表格)

在这里插入图片描述

准备工作

在解决之前,完成对搜索框和搜索按钮的添加。
template部分:(使用icon之前,切记要从UI组件库引入)

<a-layout-header class="header">
    <a-form :model="searchData.count_down_id" layout="inline">
       <a-input v-model:value="searchData.count_down_id" placeholder="请输入关键字" class="input" allow-clear />
       <a-button type="primary" @click="searchForm()" class="search-btn1">
          <search-outlined />查 询
       </a-button>
   </a-form>
</a-layout-header>

css样式部分:(按需编写即可)

.record .header {
    width: 100%;
    background-color: #ffff;
    margin-top: 5px;
    height: 60px;
    position: relative;
}
.record .content {
    margin-top: 5px;
    width: 100%;
}
.record .header  .input {
    height:40px;
    width: 200px;
    position:absolute;
    bottom: 10px;
    left: 15px;
}
.record .header  .search-btn1 {
    height:40px;
    top: 10px;
    margin-left:175px;
}

实现效果截图:
在这里插入图片描述

接口文件代码截图【根据id模糊搜索】(按需修改使用)
在这里插入图片描述

解决方法

解决方法分为三步:

  • 请求搜索的接口,并在vue文件中按需请求调用
  • 编写搜索函数,在组件中调用
  • 优化处理——监听输入框内容 实时更新

step1 请求接口

request请求部分:(这里url可以采取 字符串拼接 的方式)

url:'接口url'+需要携带的参数
data:需要携带的参数

代码截图:
在这里插入图片描述
源代码:(按需修改使用)

import request from '../utils/request'

export function searchId(id:any) {
    return request({
        url: '/api/v1/tools/web/countdown/countdowndata/'+id,
        method: 'get',
        data:id
    })
}

step2 根据id搜索

template调用函数:
在这里插入图片描述

搜索数据函数 代码截图:
在这里插入图片描述

说明:

  • 使用的还是await async异步请求方法(具体内容见文章开头【知识调用】)
  • 添加了弹窗提醒,请求成功(搜索成功),则弹出弹窗显示 ,失败则弹出失败弹窗。

源代码:(按需修改使用)

// 搜索数据
const searchForm = async() => {
    console.log("222",searchData.count_down_id)
    const { data:res } = await searchId(searchData.count_down_id)
    console.log(res)
    data.value = res.data
    // 弹窗显示
    if(res.code === 20002){ 
        message.success('查询成功!') 
    } else {
        message.error('查询失败!请重试!') 
    }
}

step3 优化处理(输入框监听)

原理:(与纯前端实现搜索的原理一样)

  • 清除输入框输入内容 → 检测输入框内容是否为空 → 为空则重新获取数据 → 更新表格数据

输入框监听函数 源代码:

// 数据监听
watch(
    [() => searchData.count_down_id], // 监听输入框中输入的id
    () => {
        // 如果输入框中的内容为空,则再次请求数据
        if (searchData.count_down_id === "") {
            initGetCount() // 调用接口函数 获取表格中的数据
        }
    }
);

说明:

  • 监听搜索框内容会经常使用,建议写成一个模板,实现按需修改复用

最终实现效果:
🔥输入框输入内容 → 点击搜索按钮 → 表格显示搜索后的数据
在这里插入图片描述
在这里插入图片描述
🔥搜索成功 → 弹出查询成功弹窗
在这里插入图片描述
🔥搜索失败 → 弹出查询失败弹窗
在这里插入图片描述
🔥输入框内容清空 → 页面刷新 → 表格数据实时更新
在这里插入图片描述

补充说明:

  • 在搜索框内容为空,但用户坚持要搜索时,应弹出弹窗,提醒用户搜索框输入内容不能为空。 这个功能的实现很简单,在搜索函数中添加一个判断操作,如果内容为空则启动弹窗。
  • 不难发现,输入框中有一个清除按钮,这个功能的实现也很简单,在input标签中添加allow-clear即可,但这个功能可能会与重置功能起到冲突。本期文章采取的方案是取消重置功能,直接使用清空按钮即可。

以上就是用请求后端接口(即前后端交互的方式实现搜索框根据id搜索的功能的全部内容。

今天的故事到这就结束了。

觉得这篇文章有用的小伙伴们

可以点赞➕收藏➕关注哦~🔥🔥🔥

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SVA】SystemVerilog assertion语法速查

seq与property|->,|>\##[*n ][n ]andintersectorfirst_match![在这里插入图片描述](https://img-blog.csdnimg.cn/015bf766991947e0bbe95356ba2a0036.png)throughoutwithinifended局部变量与赋值在sequence、property中调用display[->1]$rose $fell $isunknow$stable$…

#国产工业软件#外行人看工业软件,接轨还是出轨?

​ 有些人整天特么的自毁自恨&#xff0c;说&#xff1a;“什么我们中国人不追求真理&#xff0c;什么我们中国人没有科学精神&#xff0c;我们大部分科研人员都是混饭吃的&#xff0c;所有人都忙着生活没有人拼搏搞科研。“ 你们这些神经病该歇歇了&#xff0c;要是欧洲社会…

springboot高校学生宿舍水电费报修考勤管理系统

宿舍水电管理系统的开发过程中&#xff0c;采用B / S架构&#xff0c;主要使用jsp技术进行开发&#xff0c;中间件服务器是Tomcat服务器&#xff0c;使用Mysql数据库和Eclipse开发环境。该宿舍水电管理系统包括学生、维修员和管理员。其主要功能包括宿舍公告、维修员、学生、宿…

IBO对中文A文学课程IA有何规定?

又到11月中旬&#xff0c;许多IB学校开始确定IA和EE选题。在IB选课时&#xff0c;IB学生必选语言A&#xff08;母语&#xff09;和语言B。在语言A科目组的课程中&#xff0c;大部分中国的IB学生都会选择IB语文&#xff08;中文A&#xff09;。 众所周知&#xff0c;历经改革&am…

解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题

文章目录1.未报错时nginx配置&#xff1a;2.报错时nginx配置&#xff1a;3.增加配置报错&#xff1a;4.增加配置位置如下&#xff1a;5.解决办法&#xff1a;6.测试&#xff1a;nginx -t1.未报错时nginx配置&#xff1a; #user nginx; user root; worker_processes auto;er…

【C++】STL —— map和set的模拟实现

目录 一、基础铺垫 二、基本结构分析 1. 节点结构分析 2. 模板参数中仿函数分析 三、正向迭代器 四、封装完成的红黑树 五、map的模拟实现 六、set的模拟实现 一、基础铺垫 在前面的博客中我们了解了map和set的基本使用&#xff0c;以及对二叉搜索树、AVL树和红黑树的…

数据结构学习笔记(VI):图

目录 1 图的基本概念 6.1 图的基本概念 1.定义 2.边 3.连通 4.子图 5.连通分量 6. 生成树与森林 7.权 8.特殊的图 2 图的存储 2.1 邻接矩阵法 1.实现 2.性能分析 3.性质 2.2 邻接表法 1.实现 2.对比 2.3 十字链表与邻接多重表 1.十字链表存储有向图 2…

梦开始的地方——C语言柔性数组

文章目录柔性数组什么是柔性数组&#xff1f;柔性数组的使用柔性数组的优点柔性数组 什么是柔性数组&#xff1f; 在C99中&#xff0c;结构体最后一个元素它允许是一个未知大小的数组&#xff0c;这就叫做柔性数组成员。 这个概念听起来可能有点不可以思议&#xff0c;但它的…

KVC原理与数据筛选

作者&#xff1a;宋宏帅 1 前言 在技术论坛中看到一则很有意思的KVC案例&#xff1a; interface Person : NSObject property (nonatomic, copy) NSString *name; property (nonatomic, assign) NSInteger age; end Person *person [Person new]; person.name "Tom&q…

[附源码]计算机毕业设计springboot基于JavaWeb的学校社团活动管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

小知识· Zigbee 简介

1. 介绍 ZigBee是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术 ZigBee建立在IEEE 802.15.4标准&#xff08;定义了PHY和MAC层&#xff09;之上&#xff0c;ZigBee联盟对其网络层和应用层进行了标准化 ZigBee协议栈可分为五层 - 物理层&#xff08;PHY&a…

时间序列建模三部曲

与大多数高级分析解决方案不同&#xff0c;时间序列建模是一种低成本解决方案&#xff0c;可提供强大的洞察力。 本文将介绍构建质量时间序列模型的三个基本步骤&#xff1a;使数据平稳&#xff0c;选择正确的模型并评估模型的准确性。这篇文章中的例子使用了一家主要汽车营销…

[附源码]Python计算机毕业设计SSM旅行网的设计与实现(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

从零搭建开发脚手架 注意Logback多个配置文档导致配置紊乱问题

文章目录背景查找logback内部状态以及生效的配置文件解决背景 最近项目中出现个问题&#xff0c;自定义的logback.xml不生效&#xff0c;排查发现项目中出现了2个logback.xml&#xff0c;另一个在依赖Jar中&#xff0c;使用的在依赖Jar中的logback.xml&#xff0c;导致我们自定…

Azkaban源码阅读与本地调试

1、架构 2、本地源码加载,gradle会下载依赖。 AzkabanWebServer 配置 参数如下: -Dlog4j.configuration=file:///D:\workspace_com\azkaban\azkaban\azkaban-web-server\src\main\resources\conf\log4j.properties -conf D:\\workspace_com\\azkaban\\azkaban\\azkaban-…

Unity实现摄像头录像功能

Unity实现摄像头录像功能 前言 在之前的很多展馆展示的项目中&#xff0c;甲方有很多要求实现用摄像头录像的功能。使用Unity实现调用USB摄像头画面的功能非常容易实现&#xff0c;但是实现录屏的功能有一些困难&#xff0c;我使用了几种方法都没有实现出想要的效果&#xff…

广播实现强制下线功能

实现强制下线功能 强制下线应该是一个比较常用的功能,比如QQ在比的地方被登陆了,就会强制比被挤下线.强制下线的功能还是比较简单的,只需要在界面上弹出一个框,告知用户无法再进行任何操作即可.只能点击确定然后跳转至登录界面.强制下线功能需要关闭所有的Activity,然后返回到…

5 - 2 单选题

1.下列线索二叉树中&#xff08;用虚线表示线索&#xff09;&#xff0c;符合后序线索树定义的是&#xff1a;B 后序线索二叉树的构建流程就是&#xff1a; 1.后序遍历二叉树&#xff1a;d b c a 2.第一个结点的前驱是NULL&#xff0c;即d的前驱&#xff0c;d的左孩子为NULL …

在 Android 中创建静态应用程序快捷方式

您是否在日常应用程序中看到过快捷方式示例?可能像 Instagram、Discord、Medium 等。提供它们是为了帮助我们快速导航到应用程序内部的特定功能、屏幕或部分,而无需逐步浏览它们。 在本文中,我们将逐步实现静态快捷方式。但在我们开始编码之前,我们需要知道这个快捷方式到底…

大数据(9h)FlinkSQL之Lookup Join

文章目录概述pom.xmlMySQL建表对应Flink的建表SQLLookup JoinFlinkSQL完整Java代码概述 lookup join通常是 查询外部系统的数据 来 充实FlinkSQL的主表 例如&#xff1a;事实表 关联 维度表&#xff0c;维度表在外部系统&#xff08;如MySQL&#xff09;要求&#xff1a; 1个表…