微信小程序 上拉加载

2024-04-24 00:32
文章标签 加载 程序 微信 上拉

本文主要是介绍微信小程序 上拉加载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景需求

OA系统中,领导要对员工的的申请进行审批,如此多的员工,不可能一下子都显示出来,需要后台进行分页,每次上拉触底加载一页,每次上拉触底加载一页。

注:因为各方面原因,不能上传源代码,只提供思路和伪代码

伪代码(Javascript)

data: {// 是否有待审批数据和已审批数据pending_noData:false,approved_noData: false,// 默认显示第几个菜单导航 pending是待领导审批的,approved是领导已审批的currentTab: 'pending',// 每一页显示多少条数据pageSize: 5,// 领导待审批列表、待审批的总页数和当前页数pendingList: [],pendingPageNumber: 1,pendingTotalPage: 100,// 领导已审批列表、已审批的当前页和总页数approvedList: [],approvedPageNumber: 1,approvedTotalPage: 100,
},
onLoad: function (options) {// 1、从后台获取数据,给两个列表、两个列表总页数赋值、并设置当前页数为1 
},
onReachBottom: function () {// 1、如果选择了pending栏// 1.1 当前页数=当前页数+1// 1.2 如果当前页数小于等于总页数(因为先加1了),向后台发起请求新一页的数据// 1.3 将新数据push到pendingList数组中// 2、如果选择了approved栏// 2.1 当前页数=当前页数+1// 2.2 如果当前页数小于等于总页数(因为先加1了),向后台发起请求新一页的数据// 3.3 将新数据push到approvedList数组中
}

核心代码(Javascript)

init: function () {let that = this;if (that.data.pendingList == undefined || that.data.pendingList.length == 0) {util.showLoading("正在加载");}this.setData({pendingPageNumber: 1,approvedPageNumber: 1,clickSearch: false});// 待我审批的-URLwx.request({url: defaultApprovingURL,data: {nowPage: 1,pageSize: that.data.pageSize,openId: wx.getStorageSync('openId')},method: "GET",success: function (res) {that.setData({pending_noData: res.data.data.list.length === 0,pendingList: res.data.data.list || [],pendingTotalPage: Math.ceil(parseInt(res.data.data.pagesize) / parseInt(that.data.pageSize)),pendingNumber: res.data.data.pagesize});wx.hideLoading();},fail: function (res) {console.log("获取待审批列表--fail");}});// 我已审批的-URLwx.request({url: defaultApprovedURL,data: {nowPage: 1,pageSize: that.data.pageSize,openId: wx.getStorageSync('openId')},method: "GET",success: function (res) {that.setData({approved_noData: res.data.data.list.length === 0,approvedList: res.data.data.list || [],approvedTotalPage: Math.ceil(parseInt(res.data.data.pagesize) / parseInt(that.data.pageSize)),approvedNumber: res.data.data.pagesize,});},fail: function (res) {console.log("获取已审批列表--fail");util.showError(that, '网络错误,请稍后重试');}});
},
onLoad: function () {this.init();
},
onReachBottom: function () {let that = this;let currentTab = that.data.currentTab;if (currentTab == "pending") {let pendingPageNumber= that.data.pendingPageNumber+ 1;if (pendingPageNumber<= that.data.pendingTotalPage) {that.setData({pendingPageNumber: pendingPageNumber});wx.showLoading({title: "加载中"});wx.request({url: defaultApprovingURL,data: {nowPage: that.data.pendingPageNumber,pageSize: that.data.pageSize,openId: wx.getStorageSync('openId')},method: "GET",success: function (res) {wx.hideLoading();that.setData({pendingList: that.data.pendingList.concat(res.data.data.list)});},fail: function (res) {wx.hideLoading();}});}} else if (currentTab == "approved") {let approvedPageNumber = that.data.approvedPageNumber + 1;let approvedTotalPage = that.data.approvedTotalPage;if (approvedPageNumber <= approvedTotalPage) {that.setData({approvedPageNumber: approvedPageNumber});wx.showLoading({title: "加载中"});let data = {};data.nowPage = that.data.approvedPageNumber;data.pageSize = that.data.pageSize;data.openId = wx.getStorageSync('openId');wx.request({url: defaultApprovedURL,data: data,method: "GET",success: function (res) {wx.hideLoading();that.setData({approvedList: that.data.approvedList.concat(res.data.data.list)});},fail: function (res) {wx.hideLoading();}});}} }

这篇关于微信小程序 上拉加载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930298

相关文章

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

SpringBoot加载profile全面解析

《SpringBoot加载profile全面解析》SpringBoot的Profile机制通过多配置文件和注解实现环境隔离,支持开发、测试、生产等不同环境的灵活配置切换,无需修改代码,关键点包括配置文... 目录题目详细答案什么是 Profile配置 Profile使用application-{profil

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.