研究一下前端列表分页列表数据是怎么传给后端的 后端又是如何处理的

devtools/2024/11/20 8:46:41/

前端表单呈现

我们在前端是用的组件化编程 直接用组件绑定的数据结构

我们在vue里面是绑定的这个表单

searchParams

这个searchParams是定义成一个对象

ref 是 vue中一种灵活绑定数据的方式

我们在官方文档中查看

接下来我们查看一下searchParams对象

const searchParams = ref<QuestionSubmitQueryRequest>({questionId: undefined,language: undefined,pageSize: 10,current: 1,
});

其中QuestionSubmitQueryRequest是对象中的属性

我们查看一下typescript的书写形式

/* generated using openapi-typescript-codegen -- do not edit */
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
export type QuestionSubmitQueryRequest = {current?: number;language?: string;pageSize?: number;questionId?: number;sortField?: string;sortOrder?: string;status?: number;userId?: number;
};

这里有八项属性

我们需要关注的是这两项

表示的是当前页展示的数据条数 和当前页

我们在发起请求的时候

会把searchParams这个对象里面的数据带过去 顺便带上 sortField 和  sortOrder

一个是用来排序的字段 一个是排序规则

我们查询组件库的官方文档

 const res = await QuestionControllerService.listQuestionSubmitByPageUsingPost({...searchParams.value,sortField: "createTime",sortOrder: "descend",});

让我们再看看这个post请求

  public static listQuestionSubmitByPageUsingPost(questionSubmitQueryRequest: QuestionSubmitQueryRequest,): CancelablePromise<BaseResponse_Page_QuestionSubmitVO_ | any> {return __request(OpenAPI, {method: 'POST',url: '/question/question_submit/list/page',body: questionSubmitQueryRequest,errors: {401: `Unauthorized`,403: `Forbidden`,404: `Not Found`,},});}

传给后端的参数列表

我们去后端接口打个断点看一下

我们塞得数据确实过来了

接下来是从数据库中查询原始的题目提交的分页信息

     // 从数据库中查询原始的题目提交分页信息Page<QuestionSubmit> questionSubmitPage = questionSubmitService.page(new Page<>(current, size),questionSubmitService.getQueryWrapper(questionSubmitQueryRequest));

我在后端用的是Mb-PLUS框架

调用里面的page方法

传入两个参数 

一个是new Page<>()

一个是通过getQueryWrapper方法查出来的QueryWrapper

然后就能获得分页信息

最后我们进行视图层脱敏就能返回给前端

最终送去脱敏的是这样的数据

 

附带service层脱敏代码

 用List,Map和stream流

 /** 多条数据* */@Overridepublic Page<QuestionSubmitVO> getQuestionSubmitVOPage(Page<QuestionSubmit> questionSubmitPage, User loginUser) {List<QuestionSubmit> questionSubmitList = questionSubmitPage.getRecords();Page<QuestionSubmitVO> questionSubmitVOPage = new Page<>(questionSubmitPage.getCurrent(),questionSubmitPage.getSize(),questionSubmitPage.getTotal());if (CollectionUtils.isEmpty(questionSubmitList)) {return questionSubmitVOPage;}List<QuestionSubmitVO> questionSubmitVOList = questionSubmitList.stream().map(questionSubmit -> getQuestionSubmitVO(questionSubmit, loginUser)).collect(Collectors.toList());questionSubmitVOPage.setRecords(questionSubmitVOList);return questionSubmitVOPage;}

http://www.ppmy.cn/devtools/135432.html

相关文章

计算机视觉(CV):让机器看懂世界

引言 计算机视觉&#xff08;Computer Vision, CV&#xff09;是人工智能的重要领域&#xff0c;致力于让机器能够“看懂”世界。CV技术广泛应用于自动驾驶、医疗影像、安防监控和娱乐领域&#xff0c;正在改变我们的生活方式。 本文将从基本概念、技术方法、应用场景和发展方向…

【高阶数据结构】B树

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是B树&#xff0c;并能简单的模拟实现。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专…

在openi平台 基于华为顶级深度计算平台 openmind 动手实践

大家可能一直疑问&#xff0c;到底大模型在哪里有用。 本人从事的大模型有几个方向的业务。 基于生成式语言模型的海事航行警告结构化解析。 基于生成式语言模型的航空航行警告结构化解析。 基于生成式生物序列&#xff08;蛋白质、有机物、rna、dna、mrna&#xff09;的多模态…

计算机组成与原理(2) basic of computer architecture

Instruction Set Architecture (ISA) 和 Hardware System Architecture (HSA) 是计算机体系结构中两个重要的层次&#xff0c;它们各自的职责和作用如下&#xff1a; Instruction Set Architecture (ISA) 定义 ISA是指令集体系结构&#xff0c;是硬件和软件之间的接口。它定义…

移远通信5G RedCap模组RG255C-CN通过中国电信5G Inside终端生态认证

近日&#xff0c;移远通信5G RedCap模组RG255C-CN荣获中国电信颁发的5G Inside终端生态认证证书。这表明&#xff0c;该产品在5G基本性能、网络兼容性、安全特性等方面已经过严格评测且表现优异&#xff0c;将进一步加速推动5G行业终端规模化应用。 中国电信5G Inside终端生态认…

CSS常用尺寸单位有哪些?应用场景?

CSS常用尺寸单位有哪些&#xff1f;应用场景&#xff1f; 像素&#xff08;px&#xff09;: 应用场景: 用于定义非常具体的屏幕尺寸&#xff0c;尤其是当需要精确控制元素大小时。常用于网页设计中的图像尺寸、字体大小和边框宽度。 百分比&#xff08;%&#xff09;: 应用场景…

idea关于git插件操作

idea关于git插件操作 一、获取所有的分支列表 二、切换分支 找到要拉取的分支,右键,选择CheckOut,拉取分支代码 三、分支代码合并 例如要将cpq-v4.0.0的代码合并到cpq-v4.1.1的代码上 首先要将代码切换到cpq-v4.1.1上 然后选中要同步代码的分支,cpq-v4.0.0,右键 选中Mer…

【Linux】网络命令ping netstat pidof

目录 ping命令 netstat命令 pidof命令 ping命令 使用ping命令来检测两个主机之间是否能够连通&#xff0c;检测对应的IP地址或网址。 比如&#xff0c;我们要检测这台主机能不能连接www.baidu.com&#xff0c; 如果能看到这样的字段&#xff0c;就表示这台主机可以连接这个…