vue3 antd table表格的增删改查(二)input输入框根据关键字搜索【后台管理系统 请求后端接口 前后端交互】
创始人
2024-02-29 05:28:19

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组件库引入)

查 询

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搜索的功能的全部内容。

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

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

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

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...