AntDesign-Vue Table 查询与分页
前言
之前的增删改查小 Demo 已经快要进行到最后一步了,这节的任务是将请求数据的方式改为 分页,并且增加 分页条件查询 的功能。
页面布局
<a-table
:data-source="dataSource"
:columns="columns"
:pagination="pagination"
>
<!-- ↑ pagination 是分页功能,传入一个对象 -->
<!-- ↓ 为 a-table 组件添加个表头,里面有一个输入框和一个按钮 -->
<template #title>
<div>
<div>
<!-- 为输入框绑定事件 -->
<a-input :bordered="false" placeholder="请输入水果名称" @keydown.enter="fnc_search" id="search">
</a-input>
<!-- 为按钮绑定事件 -->
<a-button @click="fnc_search">
<!-- ↓ 一个放大镜按钮 -->
<SearchOutlined></SearchOutlined>
</a-button>
</div>
<!-- 在表格中添加数据的按钮,和这篇文章没关系 -->
<a-button @click="showAddModal">添加</a-button>
</div>
</template>
<!-- ↓ 显示图片的 template -->
<template v-slot:bodyCell="{ column, record, index}">
<template v-if="column.dataIndex === 'pic'">
<img :src="record.avatar" @click="checkInfo(record, index)"/>
</template>
</template>
</a-table>

逻辑部分
const keywords = ref("");
// ↑ 用以储存查询关键词的变量
// ↓ 分页对象
const pagination = reactive({
defaultPageSize: 8, // 默认每页显示多少个
defaultCurrent: 1,
total: 0,
current: 1,
onChange: (current: number, size: number) => {
console.log("改变了页数");
console.log("current: ", current);
console.log("size: ", size);
pagination.current = current;
getFruitsRequest(keywords.value, current, dataSource, pagination);
// getFruitsRequest 函数在 api.js 这个文件里,下面会提到
}
})
// 在挂载页面时请求数据,此时 keywords 为空字符串
onMounted(() => {
getFruitsRequest(keywords.value, 1, dataSource, pagination);
})
// ↓ 表格列数据
const columns = [
{
title: '水果名称',
dataIndex: 'fruitName',
key: 'fruitName',
},
{
title: '图片',
dataIndex: 'pic',
key: 'pic',
},
{
title: '价格 (元/公斤)',
dataIndex: 'price',
key: 'price',
},
{
title: '库存(公斤)',
dataIndex: 'stock',
key: 'stock',
},
];
/**
* 点击搜索按钮的回调
*/
function fnc_search() {
// 输入框 id 为 search
// 这里通过 js 拿到 a-input 内的数据
// 如果使用 v-model 方式的话会在输入框内数据发生改变时就改变 keyword 的值
// 导致在输入框中有内容时,没有点击搜索按钮而直接点击翻页按钮也会触发关键词搜索
if ((document.getElementById("search") as any).value === "") {
// ↓ 如果值为空则将 keywords 置空
keywords.value = "";
} else {
// ↓ 前面加一个 '/' 为了拼接 api 接口
// 例如:
// http://www.xx00.com/fruits/1/5
// ↑ 请求分页,第一页,请求五条数据
// http://www.xx00.com/fruits/apple/2/3
// ↑ 请求分页,关键词:apple,第二页,请求三条数据
keywords.value = '/' + (document.getElementById("search") as any).value;
}
getFruitsRequest(keywords.value, 1, dataSource, pagination);
// ↓ 点击搜索后,将当前页数置为1
pagination.current = 1;
}
// api.ts
import axios from "axios";
const fruitApi = axios.create({
// 设置超出响应时间
timeout: 5000
})
/**
* 分页查询
*/
export function getFruitsRequest(keywords = "", currentPage: number, dataSource: any, pagination: any) {
fruitApi({
method: 'get',
url: 'api/fruits' + keywords + '/' + currentPage + '/8'
// 默认请求 8 条数据
})
.then((resp) => {
console.log(resp.data);
// ↓ 分页查询需要 .records
dataSource.value = resp.data.records;
// ↑ 查询完成后替换数据源
pagination.total = resp.data.total;
// ↑ 改变数据总数
})
.catch((e) => {
console.log("e: ", e);
})
}
测试



AntDesign-Vue Table 查询与分页的更多相关文章
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- EF 之 MVC 排序,查询,分页 Sorting, Filtering, and Paging For MVC About EF
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 上篇博客我们学习了EF CodeFirst增删改查 ...
- MVC3 带查询的分页Helper
接上篇mvc3 分页Helper. 带查询的分页Helper是在上一篇分页的基础上来的.下面看代码: 首先,在System.Web.Mvc命名空间下的自定义类HtmlPage下面添加一个用于处理“查询 ...
- MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页
前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...
- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- Linq高级查询,分页查询及查询分页结合
一.高级查询与分页查询 1.以...开头 StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...
- 【EF6学习笔记】(三)排序、过滤查询及分页
本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- EF6 学习笔记(三):排序、过滤查询及分页
EF6 学习笔记索引目录页: ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇:EF6 学习笔记(二):操练 CRUD 增删改查 本篇原文地址:Sorting, Filterin ...
随机推荐
- SpringBoot2.7 霸王硬上弓 Logback1.3 → 不甜但解渴
开心一刻 一大早,她就发消息质问我 她:你给我老实交代,昨晚去哪鬼混了? 我:没有,就哥几个喝了点酒 她:那我给你打了那么多视频,为什么不接? 我:不太方便呀 她:我不信,和你哥们儿喝酒有啥不方便接视 ...
- golang对遍历目录操作的优化
一转眼go1.23都快发布了,时间过得真快. 不过今天我们把时间倒流回三年半之前,来关注一个在go1.16引入的关于处理目录时的优化. 对于go1.16的新变化,大家印象最深的可能是io包的大规模重构 ...
- 使用 `useServerSeoMeta` 优化您的网站 SEO
title: 使用 useServerSeoMeta 优化您的网站 SEO date: 2024/7/31 updated: 2024/7/31 author: cmdragon excerpt: 摘 ...
- 【Java】POI Excel导出 动态行合并
一般情况: Excel导出一般都是一行一行的记录输出 . 这是Controller代码: 标题行的设置: 标题行会设置获取的结果集的字段名,数据会自动根据设置的名称匹配装填 特殊的需求: 如页面的效果 ...
- 搞IT的为什么不建议搞底层(操作系统、编译器、编程语言)——当你搬进你的新家之后,你会在意这个楼是谁打的地基吗?—— 要站在钱流动的地方
文字表达引自:https://www.youtube.com/watch?v=KITqGv1qYg8 当你搬进你的新家之后,你会在意这个楼是谁打的地基吗?你猜猜那些打地基的工人赚多少钱,卖你沙发电视机 ...
- 【转载】 CNN训练Cifar-10技巧
原文地址: https://www.cnblogs.com/neopenx/p/4480701.html ====================================== 关于数据集 Ci ...
- PIL 和 python-opencv 从内存字节码中读取图片并转为np.array格式
把某个RGB格式的图片以字节码的形式读入到内存中,然后使用PIL 和 CV2 来进行读写,并转成np.array 格式. 代码: from PIL import Image import cv2 im ...
- 纪念IE浏览器退役,哈哈哈!!!
网址: https://haokan.baidu.com/v?pd=wisenatural&vid=16024148879625055169 ========================= ...
- Apache DolphinScheduler 3.3.0 版本重磅更新提前看!
Apache DolphinScheduler 3.3.0版本终于要在万众期待中发布啦!本次发版将有重大功能更新,包括架构上的调整. 为了让广大用户提前尝鲜,社区特别准备了直播活动提前揭秘3.3.0版 ...
- jQuery的基本操作总结
什么是jquery? 就是一个用js的插件库 解决了原生dom的操作的兼容性和代码量 使用前需要引入它的js库 以下例子以 jQuery1.12.4.js 这个版本为例 一:jQuery入口函数 ...