当前位置: 首页 > news >正文

微信小程序:点击按钮实现数据加载(带模糊查询)

效果图

代码 

wxml:

<!-- 搜索框-->
<form action="" bindsubmit="search_all_productiond"><view class="search_position"><view class="search"><view class="search_left">工单号:</view><view class="search_right"><input name="wip_entity_name" type="text" /></view></view></view><view class="search_position"><view class="search"><view class="search_left">工序名:</view><view class="search_right"><input name="operation_code" type="text" /></view></view></view><view class="search_position"><view class="search"><view class="search_left">料号:</view><view class="search_right"><input name="item_no" type="text" /></view></view></view><view class="search_position"><view class="search"><view class="search_left">料号名称:</view><view class="search_right"><input name="item_name" type="text" /></view></view></view><view class="search_position"><button class="button" form-type="submit">查询</button></view>
</form>
<!-- 表格 -->
<scroll-view scroll-x="true" style="overflow-x: scroll; white-space: nowrap;margin-right:15%;"><view style="padding:15px 5px;"><view class="table"><view class="table-tr"><view class="table-th1">工单号</view><view class="table-th1">料号</view><view class="table-th1">料号名称</view><view class="table-th1">工序</view><view class="table-th1">单位</view><view class="table-th1">生产日期</view><view class="table-th1">工号</view><view class="table-th1">生产人员</view><view class="table-th1">生产数量</view><view class="table-th1">不良数量</view><view class="table-th1">开始时间</view><view class="table-th1">结束时间</view><view class="table-th1">生产小时</view><view class="table-th1">备注</view></view><view class="table-tr" wx:for="{{list}}" wx:key="unique"><view class="table-td3">{{item.wip_entity_name}}</view><view class="table-td2">{{item.item_no}}</view><view class="table-td2">{{item.item_name}}</view><view class="table-td2">{{item.operation_code}}</view><view class="table-td2">{{item.uom}}</view><view class="table-td2">{{item.transaction_date}}</view><view class="table-td2">{{item.employee_num}}</view><view class="table-td2">{{item.employee_name}}</view><view class="table-td2">{{item.transaction_quantity}}</view><view class="table-td2">{{item.bad_quantity}}</view><view class="table-td2">{{item.begin_date}}</view><view class="table-td2">{{item.end_date}}</view><view class="table-td2">{{item.hours_diff}}</view><view class="table-td2" wx:if="{{item.remark}}">{{item.remark}}</view><view class="table-td2" wx:else></view></view></view></view>
</scroll-view>
<button class="last" bindtap="bindMore" wx:if="{{!allDataLoaded}}">点击获取更多</button>

增加按钮

<button class="last" bindtap="bindMore" wx:if="{{!allDataLoaded}}">点击获取更多</button>

js:

const app = getApp()
Page({data: {search: app.globalData.icon + 'index/search.png',list: [], page: 1,pageSize: 20,allDataLoaded: false,wip_entity_name:'',operation_code:'',item_no:'',item_name:'',},// 进入页面显示onLoad: function () {this.loadData();},// //模糊查询待排程信息search_all_productiond(e) {let wip_entity_name = e.detail.value.wip_entity_name //工单号let operation_code = e.detail.value.operation_code //工序let item_no = e.detail.value.item_no //料号let item_name = e.detail.value.item_name //料号this.setData({wip_entity_name:wip_entity_name,operation_code:operation_code,item_no:item_no,item_name:item_name,})this.setData({list: [],page: 1,allDataLoaded: false});this.loadData();},// 加载数据loadData: function () {wx.request({url: app.globalData.position + 'Produce/search_all_productiond',data: {username: app.globalData.username,page: this.data.page, // 传递页码和每页数量pageSize: this.data.pageSize,wip_entity_name:this.data.wip_entity_name,operation_code:this.data.operation_code,item_no:this.data.item_no,item_name:this.data.item_name,},header: {"Content-Type": "application/x-www-form-urlencoded"},method: 'POST',dataType: 'json',success: res => {console.log(res.data);const data = res.data;//检查data.info是否存在并且是一个数组if (Array.isArray(data.info)) {// 判断是否还有更多数据console.log('data.info.length'+data.info.length)console.log('this.pageSize'+this.data.pageSize)if (data.info.length < this.data.pageSize) {this.hasMoreData = false;this.setData({allDataLoaded: true //标志着数据全部加载完毕})}} else {this.setData({allDataLoaded: false //标志着数据全部加载完毕})}// 拼接新数据const newList = this.data.list.concat(data.info);this.setData({list: newList,count: data.count});},fail(res) {console.log("查询失败");},complete: () => {// 停止下拉刷新wx.stopPullDownRefresh();}});},// 滚动到底部触发加载更多数据loadMoreData: function () {if (!this.data.allDataLoaded) {this.setData({page: this.data.page + 1});this.loadData();}},//加载按钮bindMore: function () {if (!this.data.allDataLoaded) {this.setData({page: this.data.page + 1});this.loadData();}},//刷新onPullDownRefresh() {this.onLoad(); //需要再次调用接口的函数 setTimeout(function () {// 不加这个方法真机下拉会一直处于刷新状态,无法复位wx.stopPullDownRefresh()}, 3000)},onShareAppMessage:function(){//清空登录信息wx.removeStorageSync('username');//返回登录页面return {title: '标品杰生产系统',path: '/pages/login/main/main',imageUrl: '/images/share/title.png',}},
})

wxss:

/* 表格 */
/* 表格样式 */
.table {font-size:85%;display: table;width: 200%;border-collapse: collapse;box-sizing: border-box;
}
.table-tr {display: table-row;
}
.table-th1 {width:40%;display: table-cell;font-weight: bold;border: 1rpx solid gray;background-color:#51aad6;text-align: center;vertical-align: middle;padding: 5px 0;overflow: hidden;text-overflow: ellipsis;word-break: break-all;
}
.table-th2 {width:40%;display: table-cell;font-weight: bold;border: 1rpx solid gray;background-color:#51aad6;text-align: center;vertical-align: middle;padding: 5px 0;overflow: hidden;text-overflow: ellipsis;word-break: break-all;
}
.table-th3 {width:40%;display: table-cell;font-weight: bold;border: 1rpx solid gray;background-color:#51aad6;text-align: center;vertical-align: middle;padding: 5px 0;overflow: hidden;text-overflow: ellipsis;word-break: break-all;
}
.table-td1{width:40%;display: table-cell;border: 1rpx solid gray;text-align: center;vertical-align: middle;padding: 5px 0;overflow: hidden;text-overflow: ellipsis;word-break: break-all;
}
.table-td2 {width:40%;display: table-cell;border: 1rpx solid gray;text-align: center;vertical-align: middle;padding: 5px 0;overflow: hidden;text-overflow: ellipsis;word-break: break-all;
}
.table-td3 {width:40%;display: table-cell;border: 1rpx solid gray;text-align: center;vertical-align: middle;overflow: hidden;text-overflow: ellipsis;word-break: break-all;/* padding: 5px 0; */
}
/* 超链接 */
.a{color:rgb(20, 119, 185);
}
/* 搜索框 */
.search_position{display: flex;align-items: center;justify-content: center;width:100%;margin:5% 0;
}
.search{width:90%;/* border:1px solid black; */display: flex;
}
.search_left{font-size:105%;font-weight: bold;color:rgb(90, 90, 90);width:30%;
}
.search_right{border-bottom:1px solid rgb(95, 95, 95);width:70%;
}
.button{margin:5%;background-color:#40A4D6;color:#fff;
}

后端thinkphp:

 public function search_all_productiond(){$username = input('post.username');$wip_entity_name = input('post.wip_entity_name');$operation_code = input('post.operation_code');$item_no = input('post.item_no');$item_name = input('post.item_name');$page = input('post.page', 1, 'intval'); // 每页显示数量$pageSize = input('post.pageSize', 10, 'intval'); // 每页显示数量$data['info'] = db::table('wip_operation_plan');$employee_num = db::table('fa_account_info')->where(['username' => $username])->value('employee_num');//数据$data['info'] = db::table('wip_transactions')->alias('d') //设置wip_jobs_all的别名->join(['wip_jobs_all' => 'a'], 'd.wip_entity_name=a.wip_entity_name')// ->join(['so_lines_all' => 'e'], 'a.so_header_number=e.order_number AND a.so_line_number=e.line')// ->join(['so_headers_all' => 'b'], 'b.order_number=e.order_number')->join(['sf_item_no' => 'c'], 'a.primary_item=c.item_no')->field('d.*,c.item_no as item_no,c.item_name as item_name,c.units as uom')->where(['employee_num' => $employee_num])->where(['d.wip_entity_name'  =>  ['like', '%' . $wip_entity_name . '%'],'d.operation_code'  =>  ['like', '%' . $operation_code . '%'],'c.item_name'  =>  ['like', '%' . $item_name . '%'],'c.item_no'  =>  ['like', '%' . $item_no . '%'],])->order(array('end_date' => 'desc'))->limit(($page - 1) * $pageSize, $pageSize)->select();//不加分页条件的总数量$data['count'] = db::table('wip_transactions')->alias('d') //设置wip_jobs_all的别名->join(['wip_jobs_all' => 'a'], 'd.wip_entity_name=a.wip_entity_name')// ->join(['so_lines_all' => 'e'], 'a.so_header_number=e.order_number AND a.so_line_number=e.line')// ->join(['so_headers_all' => 'b'], 'b.order_number=e.order_number')->join(['sf_item_no' => 'c'], 'a.primary_item=c.item_no')->field('d.*,c.item_no as item_no,c.item_name as item_name,c.units as uom')->where(['employee_num' => $employee_num])->where(['d.wip_entity_name'  =>  ['like', '%' . $wip_entity_name . '%'],'d.operation_code'  =>  ['like', '%' . $operation_code . '%'],'c.item_name'  =>  ['like', '%' . $item_name . '%'],'c.item_no'  =>  ['like', '%' . $item_no . '%'],])->order(array('end_date' => 'desc'))->count();for ($i = 0; $i < count($data['info']); $i++) {//计算时差$data['info'][$i]['hours_diff'] = number_format(($data['info'][$i]['end_date'] - $data['info'][$i]['begin_date']) / 3600, 4);if ($data['info'][$i]['transaction_type'] != '良品') {$data['info'][$i]['hours_diff'] = '';}//处理时间$data['info'][$i]['transaction_date'] = date('Y-m-d', $data['info'][$i]['transaction_date']);$data['info'][$i]['begin_date'] = date('Y-m-d H:i:s', $data['info'][$i]['begin_date']);$data['info'][$i]['end_date'] = date('Y-m-d H:i:s', $data['info'][$i]['end_date']);if (!$data['info'][$i]['transaction_quantity']) {$data['info'][$i]['transaction_quantity'] = '';}//员工姓名$data['info'][$i]['employee_name'] = db::table('hr_employees')->where(['employee_num' => $data['info'][$i]['employee_num']])->value('employee_name');}echo json_encode($data);}

相关文章:

微信小程序:点击按钮实现数据加载(带模糊查询)

效果图 代码 wxml: <!-- 搜索框--> <form action"" bindsubmit"search_all_productiond"><view class"search_position"><view class"search"><view class"search_left">工单号:</view…...

2023-2029年中国烘焙工坊市场经营管理风险与未来竞争优势分析报告

2023-2029年中国烘焙工坊市场经营管理风险与未来竞争优势分析报告 ################################### 《报告编号》: BG460671 《出版时间》: 2023年8月 《出版机构》: 中智正业研究院 免费售后 服务一年&#xff0c;具体内容及订购流程欢迎咨询客服人员 内容简介&…...

用Rust实现23种设计模式之适配器

关注我&#xff0c;学习Rust不迷路 在 Rust 中&#xff0c;可以使用结构体和 trait 来实现适配器模式。适配器模式是一种结构型设计模式&#xff0c;它允许将一个类的接口转换为客户端所期望的另一个接口。下面是一个使用 Rust 实现适配器模式的示例&#xff0c;带有详细的注释…...

替换开源LDAP,西井科技用宁盾目录统一身份,为业务敏捷提供支撑

客户介绍 上海西井科技股份有限公司成立于2015年&#xff0c;是一家深耕于大物流领域的人工智能公司&#xff0c;旗下无人驾驶卡车品牌Q-Truck开创了全球全时无人驾驶新能源商用车的先河&#xff0c;迄今为止已为全球16个国家和地区&#xff0c;120余家客户打造智能化升级体验…...

靶形数独

题目描述 小城和小华都是热爱数学的好学生&#xff0c;最近&#xff0c;他们不约而同地迷上了数独游戏&#xff0c;好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了&#xff0c;于是他们向 Z 博士请教&#xff0c;Z 博士拿出了他最近发明的“靶形数独”&am…...

C语言阶段性测试题

【前言】&#xff1a;本部分是C语言初阶学完阶段性测试题&#xff0c;最后一道编程题有一定的难度&#xff0c;需要多去揣摩&#xff0c;代码敲多了&#xff0c;自然就感觉不难了&#xff0c;加油&#xff0c;铁汁们&#xff01;&#xff01;&#xff01; 一、选择题 1.下面程…...

java工厂设计模式

Java中的工厂设计模式是一种创建型设计模式&#xff0c;它提供了一种将对象的创建逻辑抽象出来的方法&#xff0c;使得客户端代码不需要直接实例化具体的类&#xff0c;而是通过一个共同的接口来创建对象。这样可以降低代码之间的耦合性&#xff0c;提高代码的可维护性和可扩展…...

idea运行web老项目

idea打开老项目 首先你要用idea打开老项目&#xff0c;这里看我之前发的文章就可以啦 运行web项目 1. 编辑配置 2. 添加tomcat项目 3. 设置tomcat参数 选择本地tomcat&#xff0c;注意有的tomcat版本&#xff0c;不然运行不了设置-Dfile.encodingUTF-8 启动&#xff0c;这样…...

JS进阶-Day3

&#x1f954;&#xff1a;永远做自己的聚光灯 JS进阶-Day1——点击此处&#xff08;作用域、函数、解构赋值等&#xff09; JS进阶-Day2——点击此处&#xff08;深入对象之构造函数、实例成员、静态成员等&#xff1b;内置构造函数之引用类型、包装类型等&#xff09; 更多JS…...

springboot后端用WebSocket每秒向前端传递数据,python接收数据

1 springboot 1.1 加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 1.2 WebSocketConfig 后端设置前端请求的网址,注册请求的信息 import org.…...

记录uniapp 滚动后溢出显示空白的办法

写了一个横向滚动&#xff0c;超出可视区域图片空白&#xff0c;上下滚动页面可视区域图片显示&#xff0c;不可见区域滚动出来变成空白 错误css如下 width: 678rpx;height: 264rpx;background: #ffffff;border-radius: 16rpx;margin: 64rpx 18rpx 10rpx 18rpx;overflow-y: hid…...

设计原则学习之里氏替换原则

以下内容均来自抖音号【it楠老师教java】的设计模式课程。 1、原理概述 子类对象&#xff08;objectofsubtype/derivedclass&#xff09;能够替换程序&#xff08;program&#xff09;中父类对象&#xff08;objectofbase/parentclass&#xff09;出现的任何地方&#xff0c…...

排序进行曲-v4.0

文章目录 小程一言快速排序步骤详细解释具体步骤 举例总结 复杂度分析时间复杂度分析&#xff1a;空间复杂度分析&#xff1a;注意 应用场景总结 实际举例结果总结 代码实现结果解释 小程一言 这篇文章是在排序进行曲3.0之后的续讲&#xff0c; 这篇文章主要是对快速排序进行细…...

Flink 系列四 Flink 运行时架构

目录 前言 介绍 1、程序结构 1.1、Source 1.2、Transformation 1.3、Sink 1.4、数据流 2、Flink运行时组件 2.1、Dispatcher 2.2、JobManager 2.3、TaskManager 2.4、ResourceManager 3、任务提交流程 3.1、standalone 模式 3.2、yarn 模式 4、任务调度原理 4…...

14-3_Qt 5.9 C++开发指南_QUdpSocket实现 UDP 通信_UDP 单播和广播

文章目录 1.UDP通信概述2. UDP 单播和广播2.1 UDP 通信实例程序功能2.2 主窗口类定义和构造函数2.3 UDP通信的实现2.4 源码2.4.1 可视化UI设计2.4.2 mainwindow.h2.4.3 mainwindow.cpp 1.UDP通信概述 UDP(User Datagram Protocol&#xff0c;用户数据报协议)是轻量的、不可靠的…...

【知识图谱】图数据库Neo4jDesktop的安装图文详解(小白适用)

neo4j 的安装需要有jdk环境的支持。因此在安装Neo4j之前&#xff0c;需要安装Java JDK。 一.安装JDK 参考文章https://blog.csdn.net/weixin_41824534/article/details/104147067?spm1001.2014.3001.5502 二.Neo4j下载 进入Neo4j官网 选择下载中心 下滑选择Neo4j Deskto…...

kafka中幂等性producer和事务性producer

幂等性producer 在Kafka中,“幂等性生产者”的概念是指一种特性,它确保消息在生产者的发送操作被重试时仅发送一次。幂等性是一种重要的特性,因为在分布式系统中,网络问题或其他故障可能导致生产者发送的消息在传输过程中失败,从而需要重新发送。如果生产者没有幂等性保证…...

静态路由 (华为设备)

默认路由&#xff1a;当路由器 收到目标地址不在路由表中的数据包时&#xff0c;将会 全部 发送 到 默认路由所定义的吓一跳 &#xff0c;作为位置地址 数据包的 最后求助方式&#xff0c;这就是默认路由器的功能&#xff0c;默认路由的使用&#xff0c;可以大大的节省系统资源…...

Django学习笔记-默认的用户认证系统(auth)

一、Django默认的用户认证系统 Django 自带一个用户验证系统。它负责处理用户账号、组、权限和基于cookie的用户会话。 Django 验证系统处理验证和授权。简单来说&#xff0c;验证检验用户是否是他们的用户&#xff0c;授权决定已验证用户能做什么。这里的术语验证用于指代这…...

[SQL挖掘机] - 存储过程

介绍: 当你在sql中需要多次执行相同的一组sql语句时&#xff0c;存储过程是一个非常有用的工具。它是一段预先定义好的sql代码块&#xff0c;可以被命名并保存在数据库中&#xff0c;以便重复使用。 存储过程可以包含多个sql语句、逻辑流程、条件判断和循环等&#xff0c;可以…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...