uni-app:实现点击按钮,进行数据累加展示(解决数据过多,导致出错)
效果

代码
核心代码
一、标签显示
<!-- 加载更多 -->
<view class="load_more" v-if="info.length >= pageNum * pageSize" @tap="loadMore">加载更多
</view>
v-if="info.length >= pageNum * pageSize":这是一个条件渲染的指令,当满足条件时才会渲染该元素。条件是判断当前已加载的元素数量是否达到了当前页码乘以每页的元素数量。@tap="loadMore":这是一个点击事件绑定的指令,当用户点击该元素时,会触发loadMore方法。
二、变量设置
data() {return {search: getApp().globalData.icon + 'index/search.png',add: getApp().globalData.icon + 'index/index/add.png',info: [],pageNum: 1,//默认初始页码pageSize: 3,//一页显示的条数like_trans_num:'',//模糊查询的单号}
},
定义变量pageNum默认初始页码;pageSize一页显示的条数
三、加载更多
loadMore() {this.pageNum++;this.requestData();
},
点击加载更多按钮,执行内容: 页码数+1,再次执行获取数据的函数
四、获取数据
requestData() {uni.request({url: getApp().globalData.position + 'Warehouse/select_inhouse',data: {page: this.pageNum,pageSize: this.pageSize,like_trans_num:this.like_trans_num},header: {"Content-Type": "application/x-www-form-urlencoded"},method: 'POST',dataType: 'json',success: res => {if (res.data.info.length > 0) {this.info = this.info.concat(res.data.info);} else {// 没有更多数据// 可以在界面上显示相应提示}},fail(res) {console.log("查询失败") }});
}
- 将页码、每次查询数量、模糊查询数据传入后端作为条件,获取数据库中数据
- if (res.data.info.length > 0) {this.info = this.info.concat(res.data.info);}:判断是满足本页长度是否大于0,如果大于0,进行数据的拼接
五、后端
$page = input('post.page', 1);//获取前端传来的页码数,如果不存在默认为1
$pageSize = input('post.pageSize', 10);//获取前端传来的每页数量,如果不存在默认为10
$start = ($page - 1) * $pageSize; // 查询起始位置
->limit($start,$pageSize)//查询数据库时,作为查询条件
全部代码
前端
<template><view><!--新增--><image class='img' :src="add" @tap='add_inhouse'></image><!-- 搜索框 --><view class="top"><view class="search"><view class="search_in"><image :src="search"></image><input type="text" placeholder="请输入工单信息" placeholder-style="color:#CCCCCC"@confirm="search_inhouse" /></view></view></view><!-- 主干内容 --><view class="item_info" v-for="(item, index) in info" :key="index"><view class="all_content" :data-id="item.trans_num" @tap="detail_inhouse"><view class="all_position"><!-- 第一行 --><view class="line1"><!-- 单号 --><view class="line1_left">{{item.trans_num}}</view><view class="line1_right">{{item.created_by}}</view></view><view class="line2"><!-- 供应商名称 --><view class="line2_item">交易类型:{{item.transaction_type}}</view><view class="line2_item">仓库名称:{{item.subinventory_from}}</view><view class="line2_item"> 创建时间:{{item.creation_date}}</view></view></view></view></view><!-- 加载更多 --><view class="load_more" v-if="info.length >= pageNum * pageSize" @tap="loadMore">加载更多</view></view>
</template><script>export default {data() {return {search: getApp().globalData.icon + 'index/search.png',add: getApp().globalData.icon + 'index/index/add.png',info: [],pageNum: 1,//默认初始页码pageSize: 3,//一页显示的条数like_trans_num:'',//模糊查询的单号}},methods: {//查询杂项入库的详情页detail_inhouse(e){// console.log(e.currentTarget.dataset.id)var trans_num = e.currentTarget.dataset.iduni.navigateTo({url: '../detail_inhouse/detail_inhouse?trans_num='+trans_num,})},//新增采购入库add_inhouse(){uni.navigateTo({url: '../add_inhouse/add_inhouse',})},loadMore() {this.pageNum++;this.requestData();},//模糊查询search_inhouse(e){this.info=[];this.pageNum= 1;this.pageSize=3;// console.log(e.target.value);this.like_trans_num = e.target.value;this.requestData();},requestData() {uni.request({url: getApp().globalData.position + 'Warehouse/select_inhouse',data: {page: this.pageNum,pageSize: this.pageSize,like_trans_num:this.like_trans_num},header: {"Content-Type": "application/x-www-form-urlencoded"},method: 'POST',dataType: 'json',success: res => {// console.log(res.data.info)// console.log(res.data.all_count)if (res.data.info.length > 0) {this.info = this.info.concat(res.data.info);} else {// 没有更多数据// 可以在界面上显示相应提示}},fail(res) {console.log("查询失败") }});}},onLoad() {this.requestData();}}
</script><style>/* 主体内容 */.all_content {margin-top: 25rpx;/* border: 1px solid black; */width: 100%;background-color: #ffffff;display: flex;justify-content: center;}.all_position {width: 92%;/* border: 1px solid red; */}.line1 {display: flex;width: 100%;padding: 20rpx 0;border-bottom: 4rpx solid #e5e5e5;}.line1_left {width: 50%;}.line1_right {width: 50%;text-align: right;}.line2 {/* border: 1px solid red; */padding: 20rpx 0 20rpx 0;}.line2_item {/* border: 1px solid red; */padding: 10rpx 0;}/* 背景色 */page {background-color: #F0F4F7; }/* 悬浮按钮 */.img {float: right;position: fixed;bottom: 6%;right: 2%;width: 100rpx;height: 100rpx;}/* 搜索框 */.search {display: flex;align-items: center;justify-content: center;background-color: #ffffff;/* border:1px solid black; */width: 100%;height: 100rpx;}.search .search_in {display: flex;align-items: center;justify-content: space-between;padding: 0 20rpx;box-sizing: border-box;height: 70rpx;width: 90%;background-color: #F0F4F7;border-radius: 10rpx;/* border:1px solid black; */}.search_in image {height: 40rpx;width: 45rpx;margin-right: 20rpx;}.search input {width: 100%;}/* 加载更多 */.load_more {text-align: center;padding: 20rpx 0;color: #999999;font-size: 28rpx;}
</style>
后端
public function select_inhouse() {$page = input('post.page', 1);$pageSize = input('post.pageSize', 10);$like_trans_num = input('post.like_trans_num', '');$start = ($page - 1) * $pageSize; // 查询起始位置$subQuery = db::table('inv_transactions_all')->field('trans_num, subinventory_from, transaction_type, creation_date')->where('trans_num', 'like', 'ZR%')->where(['trans_num'=>['like', '%' . $like_trans_num . '%'],])->order('creation_date DESC')->group('trans_num, subinventory_from, transaction_type, creation_date')->limit($start,$pageSize)->buildSql();$data['info'] = db::table([$subQuery => 't'])->select();// 格式化时间foreach ($data['info'] as &$item) {$item['creation_date'] = date('Y-m-d H:i:s', $item['creation_date']);}// 格式化时间echo json_encode($data);}
相关文章:
uni-app:实现点击按钮,进行数据累加展示(解决数据过多,导致出错)
效果 代码 核心代码 一、标签显示 <!-- 加载更多 --> <view class"load_more" v-if"info.length > pageNum * pageSize" tap"loadMore">加载更多 </view> v-if"info.length > pageNum * pageSize"…...
群晖6.X便捷的安装cpolar内网穿透
群晖6.X便捷的安装cpolar内网穿透 文章目录 群晖6.X便捷的安装cpolar内网穿透前言1. 下载cpolar的群晖套件1.1 打开群晖套件中心1.2 选择“手动安装”1.3 选择下载cpolar套件位置 2. 打开cpolar的Web-UI界面3. 注册会员 前言 随着硬件设备和软件技术的发展,以及数据…...
ffmpeg 4.4版本对MP4文件进行AES-CTR加密,和流式加密
对于ffmpeg的AES-CTR加密有两种方式,一个是普通的整个视频做加密,另一个是对视频做切片处理,然后进行加密。 一、对于普通的加密方式 直接使用下面的命令就行 ffmpeg -i animal.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes…...
软件测试基础篇——Docker
1、docker技术概述 docker描述:docker是一项虚拟化的容器技术(类似于虚拟机),docker技术给使用者提供一个平台,在该平台上可以利用提供的容器,对每一个应用程序进行单独的封装隔离,每一个应用程…...
MySQL刷题遇到的盲点(五)窗口函数
窗口函数 语法: <窗口函数> over (partition by <用于分组的列名>order by <用于排序的列名>) partition by:用来对表分组( partition 子句可以省略,省略就是不指定分组) order by:是…...
【java】基础——多态
多态基本知识思维导图 多态的代码实现,注意父类对象引用指向子类对象引用(向上转型)的方法,父类就可以调用子类重写的方法和派生的方法,但不能调用子类特有的方法: class Animal {public void makeSound()…...
Go语言使用cron/v3实现定时任务
一、获取cron/v3包 go get github.com/robfig/cron/v3v3.0.0安装v3版本的cron包。 二、创建cron调度器 使用cron.New()创建一个新的Cron调度器: c : cron.New()三、添加定时任务 使用AddFunc方法添加定时任务,参数是cron表达式和任务函数: c.AddFunc("* * * * *&quo…...
photoshop PS 查看像素坐标、像素颜色、像素HSB颜色
方法一 photoshop 菜单栏 窗口菜单->信息菜单项(F8), 在信息窗口里会有当前的 x,y坐标 方法二 photoshop 菜单栏 视图菜单->标尺菜单项(ctrlR) 宽度和高度边上都有标尺,默认的是厘米,右键单机宽度和高度边上…...
SpringCloud实用篇3----Docker
1.初识Docker 1.1 什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致…...
使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统
阿里云百科分享使用阿里云服务器建站教程,本文是搭建Discuz论坛,Discuz!是一款通用的社区论坛软件系统,它采用PHP和MySQL组合的基础架构,为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…...
gitee(码云)如何生成并添加公钥配置用户信息
一,简介 在使用Gitee的时候,公钥是必须的,无论是克隆还是上传。本文主要介绍如何本地生成和添加公钥到服务器,然后配置自己的用户信息,方便日后拉取与上传代码。 二,步骤介绍 2.1 本地生成公钥 打开git ba…...
C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用
文章目录 创建一个QT快速应用创建项目创建主视图添加应用逻辑为视图添加动画素材文件 参考文章 创建一个QT快速应用 本教程使用内置的QML类型,介绍了Qt Quick的基本概念。有关可以选择的用户界面选项的更多信息,请参阅用户界面。 本教程描述了如何使用…...
用友时空KSOA SQL注入漏洞复现(HW0day)
0x01 产品简介 用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业最前沿的I需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话,帮助流通企业保护原有的IT投资,简化IT管理&#…...
java中编写代码:如何以sftp的形式把文件从服务器上面下载下来?(有账号和密码)
在Java中,你可以使用JSch库来实现通过SFTP协议下载文件。以下是一个简单的示例代码: import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SFTPDownloa…...
【24择校指南】南京大学计算机考研考情分析
南京大学(A) 考研难度(☆☆☆☆☆) 内容:23考情概况(拟录取和复试分数人数统计)、院校概况、23初试科目、23复试详情、参考书目、各科目考情分析、各专业考情分析。 正文2178字,预计阅读:6分…...
IL汇编 ldarg 指令学习
IL汇编代码, .assembly extern mscorlib {} .assembly MathLib {.ver 1 : 0 : 1 : 0 }.module MathLib.dll.namespace MyMath { .class public ansi auto MathClass extends [mscorlib]System.Object{ .method public int32 GetSquare(int32) c…...
【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介绍】
文章目录 ARMv9 系列CoreARM Cortex-A510 介绍ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心设计,三款新CPU分别是旗舰核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU,三款新GPU核心则…...
章节7:Burp Intruder模块
章节7:Burp Intruder模块 参考资料 https://portswigger.net/burp/documentation/desktop/tools/intruder 01 Intruder模块作用与原理 原理 http://xxx.xx.com/bbs/index.php?namewuyanzu&mottogo 对请求参数进行修改,分析响应内容࿰…...
vue pc端项目el-upload上传图片时加水印
html代码: <a-uploadclass"avatar-uploader"list-type"picture-card":file-list"uploadFileList":custom-request"uploadDoneHandle":before-upload"beforeUpload":remove"removeHandle"v-decorat…...
ubuntu中redis+mysql安装使用
pip -V 回车(大写V):python包库安装路径 python -m site: python查找路径 1、redis ubuntu安装redis System has not been booted with systemd as init system (PID 1). Cant operate;该问题是systemctl start redis报错&#…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
