前言

之前的增删改查小 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 查询与分页的更多相关文章

  1. Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)

    上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...

  2. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  3. EF 之 MVC 排序,查询,分页 Sorting, Filtering, and Paging For MVC About EF

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    上篇博客我们学习了EF CodeFirst增删改查 ...

  4. MVC3 带查询的分页Helper

    接上篇mvc3 分页Helper. 带查询的分页Helper是在上一篇分页的基础上来的.下面看代码: 首先,在System.Web.Mvc命名空间下的自定义类HtmlPage下面添加一个用于处理“查询 ...

  5. MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页

    前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...

  6. 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

  7. Linq高级查询,分页查询及查询分页结合

    一.高级查询与分页查询 1.以...开头    StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...

  8. 【EF6学习笔记】(三)排序、过滤查询及分页

    本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...

  9. 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

  10. EF6 学习笔记(三):排序、过滤查询及分页

    EF6 学习笔记索引目录页: ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇:EF6 学习笔记(二):操练 CRUD 增删改查 本篇原文地址:Sorting, Filterin ...

随机推荐

  1. GUI随笔

    ####GUI是一个很大的话题,从Win32(windows基础API编程)到MFC,QT再到DuiLib,WPF,Winform再到Html这是一个很漫长的路,下面是我对这个界面库的见解 就对我而言 ...

  2. 【Mybatis】Bonus01 笔记资料

    对原生JDBC程序的问题总结 public void jdbc() { // 声明Connection对象 Connection con; // 驱动程序名 String driver = " ...

  3. git警告信息:Encountered 1 file(s) that may not have been copied correctly on Windows: —— See: `git lfs help smudge` for more details.

    git报警信息: 官方讨论的帖子: https://github.com/git-lfs/git-lfs/issues/2434 说下个人的理解: 在git管理中,对于大文件(一般为压缩后的二进制文件 ...

  4. 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十一章

    图  11.2  import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np plt.axes([0.1, ...

  5. 东北某海滨城市的某高校的某分校区的校园网登录程序,(python3, 模拟浏览器的登入方式)

    前些年写过这个登录程序,过了几年系统有所升级,于是做了一定的修改. 新版本的校园网登录程序依然是模拟浏览器去登录校园网. Python3.7编写. #encoding:UTF-8 from urlli ...

  6. YouTube上的很多时视频就是有问题的,还经常不允许评论,妥妥的双标网站

    过多的事情不说了,这些个外国反华势力的网站真是无时无刻的不在视频中加私货,你想评论吧他还能判断你的个人价值观来预估你的评价倾向然后禁止你评价,十分的气人.要是立场不够坚定的人真的是很容易被带偏,像这种 ...

  7. ubuntu 安装osx 主题 转自linux公社

    繁體 你好,游客 登录 注册 搜索 首页Linux新闻Linux教程数据库技术Linux编程服务器应用Linux安全Linux下载Linux认证Linux主题Linux壁纸Linux软件数码手机电脑 ...

  8. Apache SeaTunnel 4月回顾:明星贡献者与技术突破

    各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 4 月份月报来啦!这里将记录 SeaTunnel 社区每月的重要更新,欢迎关注! 月度 Merge 之星 感谢以下小伙伴 4 月为 ...

  9. mysql 读写分离之主从配置

    #mysql主从复制 ###下载mysql安装包 ###安装master mysql . 检查当前机器是否已经安装mysql yum repolist enabled | grep "mys ...

  10. 细说WebService

    细说WebService 简介 WebService 是一个应用于客户端.服务端,基于http协议的web应用程序,他有一个非常重要的特点,那就是可以跨语言.跨平台进行远程调用,可应用于分布式系统中的 ...