微信小程序 上拉加载

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

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图