微信小程序前台分页(样式可以根据自己实际需要调整),供大家参考,具体内容如下

直接上代码,这个其实也可以调整为后台分页,但是后面会写一个后台分页的例子,根据实际需要选择吧
数据是写在data中没有调用url获取,实际可以修改

1、index.js

// pages/tablePage/index.js
Page({

    /**
     * 页面的初始数据
     */
    
data: {
    frontPage: false,//上一页 存在true,不存在false
    nextPage: false,//下一页 存在true,不存在false
    pages: 0,//所有页
    thisPages: 0,//当前页
    rows: 6,//每页条数
    total: 0,//总条数
    pageData: [],//本页显示的列表数据
    prizeListItem:[
      {name: "测试1", gift:"12"}, 
      {name: "测试2", gift:"34"}, 
      {name: "测试3",  gift:"43"}, 
      {name: "测试4", gift:"21"}, 
      {name: "测试5",  gift:"32"}, 
      {name: "测试6",  gift:"32"}, 
      {name: "测试7",  gift:"12"}, 
      {name: "测试8",  gift:"32"},
      {name: "测试9",  gift:"32"}, 
      {name: "测试10",  gift:"44"}, 
      {name: "测试11", gift:"231"}, 
      {name: "测试12",  gift:"233"}, 
      {name: "测试13",  gift:"233"}
    ],
    myPrize: false,
    tab1: '',
    tab2: 'selected',
  },


   /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    this.setList();
  },
  // 初始化列表分页
  setList() {
    let that = this;
    let thisPages = that.data.thisPages;
    let rows = that.data.rows;
    let prizeListItem = that.data.prizeListItem;
    let pageData = that.data.pageData;
    let pages = that.data.pages;
    if (pageData !== []){
      pageData = prizeListItem.filter(function (item, index, prizeListItem) {
        //元素值,元素的索引,原数组。
        return index >= rows*thisPages && index <= rows*(thisPages 1)-1;  //初始为0,0 < index < 6-1
      });
      let x = 0;
      let y = prizeListItem.length;
      if ( y%rows !== 0){
        x = 1
      };
      pages = parseInt(y/rows)   x; //所有页
      thisPages = thisPages  1; //当前页
      if ( pages > 1){
        that.setData({
          nextPage: true,
        })
      }
      that.setData({
        thisPages: thisPages,
        pageData: pageData,
        pages: pages,
        rows: rows,
      })
    }
  },
//点击下一页
clickNext() {
    let that = this;
    let thisPages = that.data.thisPages;
    let prizeListItem = that.data.prizeListItem;
    let pageData = that.data.pageData;
    let pages = that.data.pages;
    let rows = that.data.rows;
    pageData = prizeListItem.filter(function (item, index, prizeListItem) {
      //元素值,元素的索引,原数组。
      return index >= rows*thisPages && index <= rows*(thisPages 1)-1;  
    });
    thisPages = thisPages   1;
    if ( pages === thisPages){
      that.setData({
        nextPage: false,
      })
    }
    that.setData({
      thisPages: thisPages,
      pageData: pageData,
      frontPage: true,
    })
  },
//点击上一页
clickFront() {
    let that = this;
    let thisPages = that.data.thisPages;
    let prizeListItem = that.data.prizeListItem;
    let pageData = that.data.pageData;
    let rows = that.data.rows;
    pageData = prizeListItem.filter(function (item, index, prizeListItem) {
      //元素值,元素的索引,原数组。
      return index >= rows*(thisPages-2) && index <= rows*(thisPages-1)-1;  
    });
    thisPages = thisPages - 1;
    if ( thisPages === 1){
      that.setData({
        frontPage: false,
      })
    }
    that.setData({
      thisPages: thisPages,
      pageData: pageData,
      nextPage: true,
    })
  },  
})

2、index.wxml

<view class="prizelist">
      <view class="info_con">
        <view class="list" wx:for="{{pageData}}">       
          <view class="list_head">
            <view class="list_name">{{item.name}}</view>
          </view>
          <view class="list_prize">{{item.gift}}</view>
        </view>
      </view>   
      <view class="paging">
        <view class="page_btn">
          <view class="up_page"  wx:if="{{frontPage}}" bindtap="clickFront">上一页</view>
        </view>
        <view class="page_num">第{{thisPages}}页 共{{pages}}页</view>
        <view class="page_btn">
          <view class="down_page" wx:if="{{nextPage}}" bindtap="clickNext">下一页</view>
        </view>
      </view>
</view>

3、index.wxss

.prizelist{
    width: 100%;
    height: max-content;
  }
  .info_con{
    width: 100%;
    height: 787rpx;
  }
  
   .info_con .list{
    height: 108rpx;
    width: 96%;
    margin-top: 20rpx;
    padding-left: 2%;
    border-radius: 10rpx;
    box-shadow: 3px 3px 6px #9c9191;
  }
  .list .wi_prize{
    width: 186rpx;
    height: 69rpx;
    margin: 20rpx 0 0 60rpx;
  }
  .list .prizeinfo{
    width: 350rpx;
    height: 108rpx;
    float: right;
  }
  .list .prizeinfo .prize_name{
    font-size: 28rpx;
    color: #87562e;
    line-height: 42rpx;
    margin-top: 20rpx;
  }
  .list .prizeinfo .prize_state{
    font-size: 20rpx;
    color: #ff2d2d;
    line-height: 25rpx;
  }
  .list .list_bg{
    width: 639rpx;
    height: 108rpx;
    position: absolute;
    left: 56rpx;
    z-index: -1;
  }
  .list .list_head{
    height: 100%;
    width: max-content;
    margin-left: 100rpx;
    float: left;
  }
  .list .list_head .list_headpic{
    border-radius: 50%;
    background-color: rgb(43, 93, 216);
    width: 46rpx;
    height: 46rpx;
    margin: 31rpx 0rpx;
    float: left;
  }
  .list .list_head .list_name{
    color: #000;
    line-height: 108rpx;
    font-size: 28rpx;
    float: left;
    margin-left: 31rpx;
  }
  .list .list_prize{
    height: 100%;
    line-height: 108rpx;
    font-size: 28rpx;
    color: #87562e;
    float: right;
    margin-right: 100rpx;
  }
  
   .paging .page_btn{
    width: 96rpx;
    height: 32rpx;
    font-size: 32rpx;
    font-family: "PingFangSC";
    color: #c79b4a;
    line-height: 36rpx;
    float: left;
    margin: auto 23rpx;
  }
   .page_num{
    font-size: 24rpx;
    font-family: "PingFangSC";
    color: #c79b4a;
    line-height: 36rpx;
    float: left;
    margin: auto 10%;
  }
  .paging{
    width: 100%;
    height: 108rpx;
    font-size: 32rpx;
    font-family: "PingFangSC";
    color: #c79b4a;
    line-height: 36rpx;
    text-align: center;
  }
  .paging .up_page{
    width: 96rpx;
    height: 32rpx;
    float: left;
    margin-left: 72rpx;
  }
   .paging .down_page{
    width: 96rpx;
    height: 32rpx;
    float: right;
    margin-right: 72rpx;
  }
  .con .prizelist .page_num{
    width: 500rpx;
    font-size: 24rpx;
    font-family: "PingFangSC";
    color: #c79b4a;
    line-height: 36rpx;
    margin: auto;
  }

微信小程序后台分页示例

1、index.js

// pages/tableAfterPage/index.js
Page({
    data: {
        allpage:16,//总页数
        nowpage:1,//当前页数
        page1:1,//第一页
        page2:2,//第二页
        page3:3,//
        page4:4,
        step:1,//步长
      },
      /**主要函数*/
      //初始化渲染数据
      onLoad: function (options) {
        var that = this
        wx.request({
            url: 'http://localhost:8080/text/auth/queryTable',
          data: {
          },
          success: function (res) {
           
            if (res.data.data.length != 0) {
              that.setData({
                allworkflow: res.data.data,//初始数据列表
                allpage:res.data.count//数据总页数
              })
            } else {
              wx.showToast({
                title: '暂无待处理工作流!',
                icon: 'none',
                duration: 20000
              })
            }
          }
        })
    
      },
      getPageDate:function(nowpage){
        var that = this
        wx.request({
            url: 'http://localhost:8080/text/auth/queryTableNew',
          data: {
            page: nowpage//当前页数的参
          },
          success: function (res) {
            if (res.data.data.length != 0) {
              that.setData({
                allworkflow: res.data.data,
              })
            } else {
              wx.showToast({
                title: '没有数据的提示!',
                icon: 'none',
                duration: 20000
              })
            }
          }
        })
      },
      /**
       * 上一页
       */
      pu:function(){
        var now = this.data.page1 - this.data.step;
        if(now>0){
          this.setData({
            page1: this.data.page1 - this.data.step,
            page2: this.data.page2 - this.data.step,
            page3: this.data.page3 - this.data.step,
            page4: this.data.page4 - this.data.step,
            nowpage:this.data.nowpage-1
          });
          this.getPageDate(this.data.nowpage);
        }else{
          wx.showToast({
            title: '已为第一页',
            icon: 'none',
            duration: 1000
          })
        }
      },
      /**
       * 下一页
       */
      pd:function(){
        if (this.data.page4 < this.data.allpage) {
          this.setData({
            page1: this.data.page1   this.data.step,
            page2: this.data.page2   this.data.step,
            page3: this.data.page3   this.data.step,
            page4: this.data.page4   this.data.step,
            nowpage:this.data.nowpage 1
          });
          this.getPageDate(this.data.nowpage);
        } else {
          wx.showToast({
            title: '已为最后一页',
            icon: 'none',
            duration: 1000
          })
        }
      },
      /**
       * 点击后页面渲染,重新查询数据页面重新渲染
       */
      dd_status:function(e){
        this.setData({
          nowpage: e.currentTarget.dataset.id,
        });
        this.getPageDate(this.data.nowpage);
      }

})

2、index.wxml

 <!-- 有数据的话循环第一个就欧剋啦 -->
 <view wx:for="{{allworkflow}}" wx:key="{{item}}"   style='margin-top:20rpx;'>
  <view class='outer_container' bindtap='dd_detail' data-id='{{item.id}}'>
    <view class='one'>订单类型:{{item.type}}
      <view class='right'>></view>
    </view>
    <view class='two'>
      订单日期:{{item.yvtime}}
      <view class='right_2'>订单状态:
        <text bindtap='dd_status' data-id='{{item.id}}' wx:if="{{item.sta=='待审核' || item.sta=='审核通过'}}" style='color: rgb(79, 193, 229);'>{{item.sta}}</text>
        <text bindtap='dd_status' wx:else="{{item.sta=='审核失败'}}" style='color:rgb(255,0,0)'>{{item.sta}}</text>
      </view>
    </view>
  </view>
</view>
<view class="nav" >
    <!-- <text  wx:if="{{(page1-step)>0}}" bindtap='pu' style='color: rgb(79, 193, 229);'>
    上一页
    </text> -->
    <text   bindtap='pu' style='color: rgb(79, 193, 229);'>
    上一页
    </text>
    <text bindtap='dd_status' wx:if="{{page1<=allpage}}" data-id='{{page1}}' style='color: rgb(79, 193, 229);'>
    第{{page1}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page2<=allpage}}" data-id='{{page2}}' style='color: rgb(79, 193, 229);'>
    第{{page2}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page3<=allpage}}" data-id='{{page3}}' style='color: rgb(79, 193, 229);'>
    第{{page3}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page4<=allpage}}" data-id='{{page4}}' style='color: rgb(79, 193, 229);'>
    第{{page4}}页
    </text>
    <!-- <text wx:if="{{page4<allpage}}" bindtap='pd' data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    下一页
    </text> -->
     <text bindtap='pd' data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    下一页
    </text>
    
</view>
<view style="text-align:center">
  <text  data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    共{{allpage}}页    当前为第{{nowpage}}页
  </text>
</view>

3、index.wxss

/* pages/tableAfterPage/index.wxss */
.nav{
  background-color: #fff;
  padding: 26rpx 0;
  color: #7b7b7b;
}
.nav>text{
  width: 16.4%;
  text-align: center;
  display: inline-block;
}
.outer_container{
  width:80%;
  margin:0 auto;
  height:200rpx;
  background-color: white;
  padding-left:40rpx;
  padding-right: 40rpx;
  border-bottom:1rpx solid rgb(214, 214, 214);
  color: rgb(79, 193, 229);
  font-size: 24rpx;
}
.one{
  height:100rpx;
  line-height: 100rpx;
  border-bottom:1rpx solid rgb(218,218,218);
}

.two{
  height:100rpx;
  line-height: 100rpx;
  color:rgb(102, 102, 102)
}

.right{
  float:right;
  font-size: 46rpx;
  line-height: 50rpx;
  color:rgb(218, 218, 218);
}

.right_2{
  float:right;
  line-height: 100rpx;
  color:rgb(102, 102, 102);
}


.divLine{
 background: #D4DADD;
 width: 100%;
 height: 4rpx;
}
.right{
  width:25rpx;
  height:25rpx;
  margin-top:20rpx;
  margin-right:20rpx;
  position:relative;
}

后台模块springboot,数据是随机写的,实际编写时需要后台调用jdbc获取,根据实际需求修改,这里只提供模板

package com.example.hello.controller;

import com.example.hello.bean.TableBean;
import com.example.hello.bean.TrafficBean;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.*;

/**
 * 微信小程序数据传送接口
 */
@RestController

@RequestMapping("/text/auth")
public class WxController {
    @RequestMapping("/queryTable")
    public Map  queryTableInfo(){
        String[] types = {"预约存款","预约入户","预约退款"};
        String[] status = {"审核失败","审核通过","待审核"};
        Map<String, Object> result = new HashMap<>();
        List<TableBean> list = new ArrayList<>();
        Random random = new Random();
        for(int i=0;i<4;i  ){
            TableBean bean = new TableBean();
            bean.setId("" (i 1));
            bean.setType(types[random.nextInt(3)]);
            bean.setSta(status[random.nextInt(3)]);
            bean.setYvtime("2022-04-24 10:23:23");
            list.add(bean);
        }
        result.put("count", 100/4);
        result.put("data", list);
        return result;
    }
    @RequestMapping("/queryTableNew")
    public Map  queryTableInfoNew(String page){
        String[] types = {"预约存款","预约入户","预约退款"};
        String[] status = {"审核失败","审核通过","待审核"};
        Map<String, Object> result = new HashMap<>();
        List<TableBean> list = new ArrayList<>();
        Random random = new Random();
        for(int i=0;i<4;i  ){
            TableBean bean = new TableBean();
            bean.setId("" (i 1));
            bean.setType(types[random.nextInt(3)]);
            bean.setSta(status[random.nextInt(3)]);
            bean.setYvtime("2022-04-24 10:23:23");
            list.add(bean);
        }
        result.put("data", list);
        return result;
    }
}
package com.example.hello.bean;

public class TableBean {

    private  String id;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    private String type;

    public String getYvtime() {
        return yvtime;
    }

    public void setYvtime(String yvtime) {
        this.yvtime = yvtime;
    }

    public String getSta() {
        return sta;
    }

    public void setSta(String sta) {
        this.sta = sta;
    }

    private String yvtime;
    private String sta;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

微信小程序实现表格前后台分页的更多相关文章

  1. 微信小程序之html5 canvas绘图并保存到系统相册

    这篇文章主要介绍了微信小程序之html5 canvas绘图并保存到系统相册,需要的朋友可以参考下

  2. ios – UIScrollView的平滑自定义分页

    我在UIScrollView中有两个(可能更多)视图,并希望使用分页.当我尝试使用UIScrollView的默认分页选项时出现问题,因为视图具有不同的宽度,无法正确分页.所以我已经实现了一个有效的自定义分页代码.但是,当滚动较慢时,它不会按预期运行.(它回到没有动画的原始位置.)以下是我目前通过uiscrollviewdelegate进行自定义分页的方法我想要的是:是)我有的:解决方法尝试下面的自

  3. ios – 使用子视图控制器分页滚动视图

    使用分页实现水平滚动视图的最佳做法是什么,每页有一个视图控制器?由于iOS5具有用于视图控制器容器/包含的API,因此PageControl示例仍然是实现此功能的最佳方式吗?

  4. 可可触摸 – 启用预览和分页的UICollectionView

    在AppStore中显示搜索结果时,我正在尝试模仿苹果公司的功能.(参考:http://searchengineland.com/apple-app-search-shows-only-one-result-at-a-time-133818)它显示像卡中的详细应用程序信息,并且它被分页.当中间的一个活动卡片和滚动视图的分页行为仍然完整时,我被困在如何使上一张和第二张卡片显示.我已经尝试使用UICo

  5. ios – 启用了内容插入的UIScrollView分页工作很奇怪

    我创建了具有内容插入的UIScrollView.第一次,scrollView.contentOffset.x为-160.0但是奇怪的问题是当我点击scrollView(黄色区域)时,内容偏移x值将重置为0并显示为这样.我尝试过几次,但是点击滚动视图会将内容偏移量重置为0.我该如何防止这种情况?解决方法UIScrollView分页通过滚动与scrollView宽度相同的页面(在您的情况下为480个宽

  6. UIKit框架-高级控件Swift版本: 10.UIWebView方法/属性详解

    前面我们已经讲解完了UINavigationController的一些常用属性以及方法,现在让我们来看看一个关于网络的UIWebView.1.UIWebView的常用属性常用类型2.UIWebView的代理方法3.代码示范首先我们要使用storyBoard布局界面关联控件遵守代理协议自定义UIWebVIew实现代理方法在ViewDidLoad方法中实现PS:UIWebView继承与UIView,并

  7. swift+storyboard+UIImageview入门

    更新记录:该Storyboard教程由CarolineBegbie更新iOS8和Swift相关内容。Storyboard是最先在iOS5引入的一项振奋人心的特性,大幅缩减构建App用户界面所需的时间。要介绍Storyboard是什么,我打算从这张图讲起。这就是使用Storyboard的力量。Storyboard通过新的原型表项和静态表项特性,让处理表视图的工作更加轻松。Storyboard使自动布局更易用。接下来我们看一下Storyboard,点击项目浏览器中的Main.storyboard就可以在Int

  8. 使用RxSwift进行分页API调用

    如何实现这一点的任何建议将非常感谢…

  9. 微信小程序如何获取图片宽度与高度

    这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. react中useState使用:如何实现在当前表格直接更改数据

    这篇文章主要介绍了react中useState的使用:如何实现在当前表格直接更改数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部