【分页】Spring Boot 列表分页 + javaScript前台展示

news/2024/10/3 11:54:04 标签: spring boot, javascript

后端:

准备好查询实体与分页实体

1、分页工具实体

package com.ruoyi.dms.config;

import com.alibaba.nacos.api.model.v2.Result;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author 宁兴星
 * @description: 列表返回结果集
 */
@Data
public class PageResult<T> implements Serializable {
    /**
     * 总条数
     */
    private long total;
    /**
     * 结果集合
     */
    private List<T> list;
    public PageResult() {
    }
    public PageResult(long total, List<T> list) {
        this.total = total;
        this.list = list;
    }
    public static <T> PageResult<T> toPageResult(long total, List<T> list){
        return new PageResult(total , list);
    }
    public static <T> Result<PageResult<T>> toResult(long total, List<T> list){
        return Result.success(PageResult.toPageResult(total,list));
    }
}

2、列表请求对象实体:

package com.ruoyi.dms.domain.req;

import lombok.Data;

/**
 * @author: 宁兴星
 * Date: 2024/9/28 10:29
 * Description:
 */
@Data
public class EquipmentCategoryRequest {

    /**
     * 设备类目名称
     */
    private String equipmentCategoryName;
    /**
     * 是否启用
     */
    private Integer status;

    /**
     * 分页参数
     */
    private Integer pageNum;
    /**
     * 每页条数
     */
    private Integer pageSize;
}

Controller

 /**
     * 设备类目管理列表
     */
    @GetMapping("/ec/list")
    public R<PageResult<EquipmentCategoryVo>> list(EquipmentCategoryRequest request){
        PageResult<EquipmentCategoryVo> list = ecService.list(request);
        return R.ok(list);
    }

Service

 PageResult<EquipmentCategoryVo> list(EquipmentCategoryRequest request);

ServiceImpl

 @Override
    public PageResult<EquipmentCategoryVo> list(EquipmentCategoryRequest request) {
        // 分页
        PageHelper.startPage(request.getPageNum(), request.getPageSize());
        // 查询
        List<EquipmentCategoryVo> list = ecMapper.list(request);
        // 封装分页信息
        PageInfo<EquipmentCategoryVo> pageInfo = new PageInfo<EquipmentCategoryVo>(list);
        // 返回分页结果
        return PageResult.toPageResult(pageInfo.getTotal(), pageInfo.getList());
    }

Mapper

List<EquipmentCategoryVo> list(@Param("request") EquipmentCategoryRequest request);

前端:

前端使用实现分页vue2

链接: 饿了么UI

1、api/xxx/xxx.js 中

javascript">export function esList(equipmentCategoryRequest) {
  return request({
    url: '/dms/ec/list' ,
    method: 'get',
    params: equipmentCategoryRequest,
  })
}

2、view/xxx/xxx.vue 中

javascript"><template>
	<div>
	 <label for="category-name" style="margin-left: 20px">类目名称:</label>
      <el-input
        id="category-name"
        type="text"
        placeholder="请输入名称"
        v-model="searchForm.equipmentCategoryName"
        clearable
        style="width: 200px;margin-bottom: 20px;margin-right: 10px "
      />
      <label for="category-name">状态:</label>
      <el-select v-model="searchForm.status" placeholder="请选择状态" style="width: 200px; margin-right: 10px" clearable>
        <el-option label="停用" value="0"></el-option>
        <el-option label="启用" value="1"></el-option>
      </el-select>
<!--      搜索按钮-->
      <el-button @click="esList"
                 style="color: #1482f0"
                 class="el-icon-search"
      >搜索</el-button>


		<div class="block" style="margin-top: 10%;text-align: center;">
	        <el-pagination
	          @size-change="handleSizeChange"
	          @current-change="handleCurrentChange"
	          :current-page="searchForm.pageNum"
	          :page-sizes="[3, 5, 10, 30]"
	          :page-size="searchForm.pageSize"
	          layout="total, sizes, prev, pager, next, jumper"
	          :total="total">
	        </el-pagination>
	      </div>
      </div>
</template>
........data() {
	    return {
	      searchForm: {
	        pageNum: 1,
	        pageSize: 3,
	      },
     	 total: 0,
     	}
     },
	methods: {
	  	//列表
	   esList(){
	     esList(this.searchForm).then(response => {
	       this.equipmentCaTableData = response.data.list;
	       this.total = response.data.total;
	     })
	   },
	    handleSizeChange(val) {
	      this.searchForm.pageSize = val;
	      this.esList();
	    },
	    handleCurrentChange(val) {
	      this.searchForm.pageNum = val;
	      this.esList();
	    },
	},

效果:

在这里插入图片描述
在这里插入图片描述


http://www.niftyadmin.cn/n/5688310.html

相关文章

linux中bashrc和profile环境变量在Shell编程变量的传递作用

在 Linux 系统中&#xff0c;.bashrc文件和.profile文件都是用于配置用户环境的重要文件&#xff0c;它们之间有以下关联&#xff1a; 一、作用相似性 环境设置&#xff1a;两者都用于设置用户的环境变量和启动应用程序的配置。例如&#xff0c;它们可以定义路径变量&#xf…

数字化转型案例深度解析:基于TOGAF框架的成功经验与实践指导

数字化转型的紧迫性与机遇 在当今快速发展的技术驱动时代&#xff0c;数字化转型已不再是可选项&#xff0c;而是企业在全球竞争中保持竞争力的必要条件。无论是制造、零售还是金融等行业&#xff0c;企业都在积极寻求数字化变革&#xff0c;以提高运营效率、优化客户体验并推…

征程6 工具链常用工具和 API 整理(含新手示例)

1.引言 征程6 工具链目前已经提供了比较丰富的集成化工具和接口来支持模型的移植和量化部署&#xff0c;本帖将整理常用的工具/接口以及使用示例来供大家参考&#xff0c;相信这篇文章会提升大家对 征程6 工具链的使用理解以及效率。 干货满满&#xff0c;欢迎访问 2.hb_con…

VR、AR、MR、XR 领域最新科研资讯获取指南

随着虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、混合现实&#xff08;MR&#xff09;以及扩展现实&#xff08;XR&#xff09;技术的迅猛发展&#xff0c;科研界和科技行业涌现了大量创新和前沿研究。对于研究人员、开发者以及行业从业者来说&a…

计算机网络:计算机网络体系结构 —— 专用术语总结

文章目录 专用术语实体协议服务服务访问点 SAP 服务原语 SP 协议数据单元 PDU服务数据单元 SDU 专用术语 实体 实体是指任何可以发送或接收信息的硬件或软件进程 对等实体是指通信双方处于相同层次中的实体&#xff0c;如通信双方应用层的浏览器进程和 Web 服务器进程。 协…

Python脚本示例,你可以使用这个脚本来自动化登录网站、选择页面元素和提交表单

devtools 元素页面可以选择元素&#xff0c;copy xpath用于查找 python编程&#xff1a;1、浏览器登录https://58.xxx/ 账号:xxx 密码:FN123456 2、选择“技能训练” 3、选择“云网智能运维员培训相关资料” 4、选择“L1-Linux操作系统与运维题库” 5、依次选择1-50题目&#x…

Excel下拉菜单制作及选项修改

Excel下拉菜单 1、下拉菜单制作2、下拉菜单修改 下拉框&#xff08;选项菜单&#xff09;是十分常见的功能。Excel支持下拉框制作&#xff0c;通过预设选项进行菜单选择&#xff0c;可以避免手动输入错误和重复工作&#xff0c;提升数据输入的准确性和效率 1、下拉菜单制作 步…

【分别为微服务云原生】9分钟ActiveMQ延时消息队列:定时任务的革命与Quartz的较量

ActiveMQ延时消息队列&#xff1a;定时任务的革命与Quartz的较量 摘要&#xff1a; 在现代的消息驱动架构中&#xff0c;ActiveMQ的延迟消息队列功能为定时任务提供了一种新的解决方案。本文将详细介绍ActiveMQ延迟消息队列的功能、应用场景&#xff0c;并与Quartz定时任务进行…