好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

微信小程序实现表格前后台分页

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

直接上代码,这个其实也可以调整为后台分页,但是后面会写一个后台分页的例子,根据实际需要选择吧
数据是写在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;
? ? }
}

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

查看更多关于微信小程序实现表格前后台分页的详细内容...

  阅读:43次