微信小程序订单页面下拉刷新上拉分页加载

微信小程序开发交流qq群   581478349

   承接微信小程序开发。扫码加微信。

正文:

效果图:

 

代码:

json代码:

{
  "enablePullDownRefresh": true,
  "backgroundColor": "#19ad19"
}

js代码:

// pages/my_order/my_order.js
var config = require('../../../config.js');
var util = require('../../../utils/util.js');
var app = getApp();
var in_length = 0;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tab_two_click_item: 0,
    _data: [],

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.show_data(0, in_length);
  },
  /**
   * 页面下拉刷新的处理函数
   */
  onPullDownRefresh() {
    in_length = 0;
    this.show_data(this.data.tab_two_click_item, in_length)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    this.show_data(this.data.tab_two_click_item, in_length)
  },
  // 加载数据
  show_data: function(_item, _length) {
    var that = this;
    app.promise.then(resolve => {
      let data = {
        token: app.token,
        status: _item, //0 全部 1 成功 2 失败
        index: _length
      }
      var url = config.HTTP_URL + '/v1/order/list.do';
      util.request(url, 'post', data, '正在加载订单', function(res) {
        var _data = res.data.body;
        if (in_length == 0) {
          that.setData({
            _data: _data
          })
          in_length = _data.length;
        } else {
          let arr = [];
          let __data = that.data._data.concat(_data);
          if (that.data.tab_two_click_item == 0) {
            that.setData({
              _data: __data
            })
            in_length = __data.length;
          } else {
            for (let i = 0; i < __data.length; i++) {
              console.log(__data[i])
              if (__data[i].orderStatus == that.data.tab_two_click_item) {
                console.log('__data[i]', __data[i])
                arr = arr.concat(__data[i])
              }
            }
            in_length = arr.length;
            that.setData({
              _data: arr
            })
          }
        }
        console.log('in_length', in_length)
      })
    })
  },

  // 点击切换tab
  tab_two_click: function(e) {
    in_length = 0;
    this.setData({
      tab_two_click_item: e.target.id
    })
    this.show_data(e.target.id, in_length);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})

wxml代码

<!--pages/my_order/my_order.wxml-->
<view class='page_row'>
  <view class='tab_two'>
    <view bindtap='tab_two_click' id='0' class='tab_two_click_item {{tab_two_click_item==0?"tab_on":""}}'>全部</view>
  </view>
  <view class='tab_two'>
    <view bindtap='tab_two_click' id='1' class='tab_two_click_item {{tab_two_click_item==1?"tab_on":""}}'>成功</view>
  </view>
  <view class='tab_two'>
    <view bindtap='tab_two_click' id='2' class='tab_two_click_item {{tab_two_click_item==2?"tab_on":""}}'>失败</view>
  </view>
</view>
<view class='order_list'>
  <block wx:for='{{_data}}' wx:key='index'>
    <view class='money'>{{item.productName}}
      <text>{{item.createTime}}</text>
    </view>
    <image wx:if='{{item.orderStatus==1}}' src='/images/change_version/stutas_succ.png'></image>
    <image wx:if='{{item.orderStatus==0}}' src='/images/change_version/stutas_fail.png'></image>
    <view class='detail'>
      <text style='color: #d0d0d0;'>账号</text> {{item.number}}</view>
    <view class='detail' style='margin-top: 20rpx;'>
      <text style='color: #d0d0d0;'>金额</text> ¥
      <text style='font-size:60rpx;'>{{item.payFee}}</text>
    </view>

    <view class='division'></view>
    <view class='page_row' style='width:100%;'>
      <navigator url='order_query/order_query' wx:if='{{item.orderStatus==0}}'>
        <button class='btn_kf btn_ts' style='margin-left: 30rpx;'>投诉</button>
      </navigator>
      <button class='btn_kf' wx:if='{{item.orderStatus==0}}'>联系客服</button>
      <button class='btn' style='{{item.orderStatus==0?"left: 0rpx;":"left: 480rpx;"}}'>再次充值</button>
    </view>
    <view class='division2'></view>
  </block>
</view>

wxss代码

/* pages/my_order/my_order.wxss */
page{
  
  background: #F6F6F6;
}
.tab_two{
  background: #fff;
  font-weight: 600;
  width: 50%;
  text-align: center;
  height: 100rpx;
  line-height: 100rpx;
  padding-bottom: 10rpx;
  border-bottom: 1px solid #E8E8E8;
  position: relative;
}
.tab_two_click_item{
  width: 180rpx;
  position: relative;
  left: 50%;
  margin-left: -90rpx;
}
.tab_on{
  border-bottom: 10rpx solid #19ad19;
}
.order_list{
  background: #fff;
  width: 95%;
  position: relative;
  margin: 20rpx 20rpx 20rpx 20rpx;

}
.order_list .money{
  border-bottom: 1px solid #f2f2f2;
  padding:  20rpx 20rpx 20rpx 40rpx;
}
.order_list .money text{
  color: #666;
  font-size: 28rpx;
  float: right;
  line-height: 50rpx;
  margin-right: 20rpx;
}
.order_list .detail{
  margin-top: 50rpx;
  margin-left: 30rpx;
  font-size: 35rpx;
  
}
.order_list .detail text{
  margin-right: 30rpx;
  font-size: 35rpx;
  
}
.order_list image{
  width: 150rpx;
  height: 150rpx;
  border-radius: 50%;
  margin-top: 50rpx;
  margin-left: 480rpx;
  position: absolute
}
.division{
  width: 100%;
  height: 1px;
  background: #f2f2f2;
  margin-top: 70rpx;
}
.btn{
  background: #1AAD1A;
  color: white;
  border-radius: 10rpx;
  margin-top: 20rpx;
  width: 200rpx;
  height: 60rpx;
  font-size: 30rpx;
  line-height: 57rpx;
  position: relative;
  
  margin-left: 10rpx;
}
.btn_kf{
  background: #fff;
  margin-left: 10rpx;
  color: #19ad19;
  border-radius: 10rpx;
  margin-top: 20rpx;
  font-size: 30rpx;
  width: 200rpx;
  height: 60rpx;
  position: relative;
  left: 20rpx;
  line-height: 57rpx;
  border: 1px solid #19ad19;
}
.btn_ts{
  left: 10rpx;
}
.division2{
  width: 100%;
  height: 20rpx;
  background: #f2f2f2;
  margin-top: 20rpx;
}
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
老规矩,先看本节效果图我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。核心代码就下面这些一,创建一个云开发小程序关于如何创建云开发小程序,这里我就不再做具体讲解。不知道怎么创建云开发小程序的同学,可以去翻看我之前的文章,或者看下我录制的视频:https://edu.csdn.net/course/play/9604/204528创建云开发小程序有几点注意的1,一定不要忘记在app.js里初始化云开发环境。2,创建完云函数后,一定要记得上传二, 创建支付的云函数1,创建云函数pay三,引入三方依赖tenpay我们这里引入三方依赖的目的,是创建我们支付时需要的一些参数。我们安装依赖是使用里npm 而npm必须安装node,关于如何安装node,我这里不做讲解,百度一下,网上一大堆。1,首先右键pay,然后选择在终端中打开2,我们使用npm来安装这个依赖。在命令行里执行 npm i tenpay安装完成后,我们的pay云函数会多出一个package.json 文件到这里我们的tenpay依赖就安装好了。四,编写云函数pay完整代码如下//云开发实现支付 const cloud = require('wx-server-sdk')cloud.init() //1,引入支付的三方依赖 const tenpay = require('tenpay'); //2,配置支付信息 const config = ;exports.main = async(event, context) => 一定要注意把appid,mchid,partnerKey换成你自己的。到这里我们获取小程序支付所需参数的云函数代码就编写完成了。不要忘记上传这个云函数。出现下图就代表上传成功五,写一个简单的页面,用来提交订单,调用pay云函数。这个页面很简单,1,自己随便编写一个订单号(这个订单号要大于6位)2,自己随便填写一个订单价(单位是分)3,点击按钮,调用pay云函数。获取支付所需参数。下图是官方支付api所需要的一些必须参数。下图是我们调用pay云函数获取的参数,和上图所需要的是不是一样。六,调用wx.requestPayment实现支付下图是官方的示例代码这里不在做具体讲解了,完整的可以看视频。实现效果1,调起支付键盘2,支付完成3,log日志,可以看出不同支付状态的回调上图是支付成功的回调,我们可以在支付成功回调时,改变订单支付状态。下图是支付失败的回调,下图是支付完成的状态。到这里我们就轻松的实现微信小程序的支付功能了。是不是很简单啊,完整的讲解可以看视频。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a_靖

对你有帮助吗?打赏鼓励一下?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值